chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
gnome-ask-password-agent: require libnotify >= 0.7.0
[elogind.git]
/
src
/
readahead-replay.c
diff --git
a/src/readahead-replay.c
b/src/readahead-replay.c
index cd89654f983d105e7731b9d2dd7ae4ec7a9ad7ba..65011ac4be3996d0ff41f92f44e889fdf3cb289a 100644
(file)
--- a/
src/readahead-replay.c
+++ b/
src/readahead-replay.c
@@
-41,6
+41,7
@@
#include "sd-daemon.h"
#include "ioprio.h"
#include "readahead-common.h"
#include "sd-daemon.h"
#include "ioprio.h"
#include "readahead-common.h"
+#include "virt.h"
static off_t arg_file_size_max = READAHEAD_FILE_SIZE_MAX;
static off_t arg_file_size_max = READAHEAD_FILE_SIZE_MAX;
@@
-94,7
+95,7
@@
static int unpack_file(FILE *pack) {
any = true;
if (fd >= 0)
any = true;
if (fd >= 0)
- if (posix_fadvise(fd, b *
PAGE_SIZE, (c - b) * PAGE_SIZE
, POSIX_FADV_WILLNEED) < 0) {
+ if (posix_fadvise(fd, b *
page_size(), (c - b) * page_size()
, POSIX_FADV_WILLNEED) < 0) {
log_warning("posix_fadvise() failed: %m");
goto finish;
}
log_warning("posix_fadvise() failed: %m");
goto finish;
}
@@
-122,7
+123,8
@@
static int replay(const char *root) {
FILE *pack = NULL;
char line[LINE_MAX];
int r = 0;
FILE *pack = NULL;
char line[LINE_MAX];
int r = 0;
- char *pack_fn = NULL, c;
+ char *pack_fn = NULL;
+ int c;
bool on_ssd, ready = false;
int prio;
int inotify_fd = -1;
bool on_ssd, ready = false;
int prio;
int inotify_fd = -1;
@@
-192,7
+194,7
@@
static int replay(const char *root) {
log_debug("Replaying...");
log_debug("Replaying...");
- if (access("/
dev/.
systemd/readahead/noreplay", F_OK) >= 0) {
+ if (access("/
run/
systemd/readahead/noreplay", F_OK) >= 0) {
log_debug("Got termination request");
goto done;
}
log_debug("Got termination request");
goto done;
}
@@
-333,14
+335,19
@@
static int parse_argv(int argc, char *argv[]) {
int main(int argc, char*argv[]) {
int r;
int main(int argc, char*argv[]) {
int r;
+ const char *root;
log_set_target(LOG_TARGET_SYSLOG_OR_KMSG);
log_parse_environment();
log_open();
log_set_target(LOG_TARGET_SYSLOG_OR_KMSG);
log_parse_environment();
log_open();
+ umask(0022);
+
if ((r = parse_argv(argc, argv)) <= 0)
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
if ((r = parse_argv(argc, argv)) <= 0)
return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;
+ root = optind < argc ? argv[optind] : "/";
+
if (!enough_ram()) {
log_info("Disabling readahead replay due to low memory.");
return 0;
if (!enough_ram()) {
log_info("Disabling readahead replay due to low memory.");
return 0;
@@
-357,7
+364,7
@@
int main(int argc, char*argv[]) {
shared->replay = getpid();
__sync_synchronize();
shared->replay = getpid();
__sync_synchronize();
- if (replay(
optind < argc ? argv[optind] : "/"
) < 0)
+ if (replay(
root
) < 0)
return 1;
return 0;
return 1;
return 0;