]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
bootspec: stat() on an autofs mount point doesn't trigger it, let's hence do it expli...
authorLennart Poettering <lennart@poettering.net>
Fri, 8 Feb 2019 16:18:48 +0000 (17:18 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 1 Mar 2019 11:41:32 +0000 (12:41 +0100)
src/shared/bootspec.c

index 2db6425f2f593cc5e4ed13485d13149356c48e0f..53ab042404674a208dac87b21a134055cc751ff0 100644 (file)
@@ -874,12 +874,18 @@ static int verify_fsroot_dir(
                 dev_t *ret_dev) {
 
         struct stat st, st2;
-        const char *t2;
+        const char *t2, *trigger;
         int r;
 
         assert(path);
         assert(ret_dev);
 
+        /* So, the ESP and XBOOTLDR partition are commonly located on an autofs mount. stat() on the
+         * directory won't trigger it, if it is not mounted yet. Let's hence explicitly trigger it here,
+         * before stat()ing */
+        trigger = strjoina(path, "/trigger"); /* Filename doesn't matter... */
+        (void) access(trigger, F_OK);
+
         if (stat(path, &st) < 0)
                 return log_full_errno((searching && errno == ENOENT) ||
                                       (unprivileged_mode && errno == EACCES) ? LOG_DEBUG : LOG_ERR, errno,