core/mount: fail early if directory cannot be created
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 2 Feb 2022 05:05:45 +0000 (14:05 +0900)
committerLuca Boccassi <bluca@debian.org>
Tue, 15 Feb 2022 01:13:47 +0000 (01:13 +0000)
Prompted by #22334.

(cherry picked from commit e4de58c8231e47509ffeb3aa47620ca42f22d7f6)
(cherry picked from commit 1d7e0b68048ba0760f8fdf6a26c7a5017ac38569)

src/core/mount.c

index af39db214b6192d057970d77cc1598226209d6e0..673eec32b8ca3937b8a5bdb64dabfb4b55edec90 100644 (file)
@@ -1035,8 +1035,10 @@ static void mount_enter_mounting(Mount *m) {
                 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. */
-                if (r < 0 && r != -EEXIST)
+                if (r < 0 && r != -EEXIST) {
                         log_unit_error_errno(UNIT(m), r, "Failed to make bind mount source '%s': %m", p->what);
+                        goto fail;
+                }
         }
 
         if (p) {