]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/mount: downgrade log level about several mkdir failures 24122/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 26 Jul 2022 14:23:01 +0000 (23:23 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 26 Jul 2022 16:13:27 +0000 (01:13 +0900)
src/core/mount.c

index 015a77221afb2aa3c971058a4e449678c70c27ba..d22e7dec5939d68e93a402438fcddc095227a02f 100644 (file)
@@ -1053,9 +1053,13 @@ static void mount_enter_mounting(Mount *m) {
         if (p && mount_is_bind(p)) {
                 r = mkdir_p_label(p->what, m->directory_mode);
                 /* mkdir_p_label() can return -EEXIST if the target path exists and is not a directory - which is
-                 * totally OK, in case the user wants us to overmount a non-directory inode. */
+                 * totally OK, in case the user wants us to overmount a non-directory inode. Also -EROFS can be
+                 * returned on read-only filesystem. Moreover, -EACCES (and also maybe -EPERM?) may be returned
+                 * when the path is on NFS. See issue #24120. All such errors will be logged in the debug level. */
                 if (r < 0 && r != -EEXIST)
-                        log_unit_error_errno(UNIT(m), r, "Failed to make bind mount source '%s': %m", p->what);
+                        log_unit_full_errno(UNIT(m),
+                                            (r == -EROFS || ERRNO_IS_PRIVILEGE(r)) ? LOG_DEBUG : LOG_WARNING,
+                                            r, "Failed to make bind mount source '%s', ignoring: %m", p->what);
         }
 
         if (p) {