Commit 902a339c authored by Lennart Poettering's avatar Lennart Poettering

readahead-replay: delay ready notification until we queued first read

parent 41a598e2
......@@ -54,6 +54,7 @@
*
* - detect ssd/lvm/... on btrfs
* - read ahead directories
* - sd_readahead_cancel
*/
static int btrfs_defrag(int fd) {
......
......@@ -114,7 +114,7 @@ static int replay(const char *root) {
char line[LINE_MAX];
int r = 0;
char *pack_fn = NULL, c;
bool on_ssd;
bool on_ssd, ready = false;
int prio;
assert(root);
......@@ -168,9 +168,7 @@ static int replay(const char *root) {
if (ioprio_set(IOPRIO_WHO_PROCESS, getpid(), prio) < 0)
log_warning("Failed to set IDLE IO priority class: %m");
sd_notify(0,
"READY=1\n"
"STATUS=Replaying readahead data");
sd_notify(0, "STATUS=Replaying readahead data");
log_debug("Replaying...");
......@@ -181,8 +179,18 @@ static int replay(const char *root) {
r = k;
goto finish;
}
if (!ready) {
/* We delay the ready notification until we
* queued at least one read */
sd_notify(0, "READY=1");
ready = true;
}
}
if (!ready)
sd_notify(0, "READY=1");
if (ferror(pack)) {
log_error("Failed to read pack file.");
r = -EIO;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment