chiark / gitweb /
fstab,mount: detect rbind as bind mount
[elogind.git] / src / fstab-generator / fstab-generator.c
index 2b67bb612d9cdb03e3a340a44bf793f2783e1418..9db4123530096f5d3be656d7f4ba22a75026234f 100644 (file)
@@ -33,6 +33,7 @@
 #include "special.h"
 #include "mkdir.h"
 #include "virt.h"
+#include "fileio.h"
 
 static const char *arg_dest = "/tmp";
 static bool arg_enabled = true;
@@ -177,7 +178,9 @@ static bool mount_is_bind(struct mntent *me) {
 
         return
                 hasmntopt(me, "bind") ||
-                streq(me->mnt_type, "bind");
+                streq(me->mnt_type, "bind") ||
+                hasmntopt(me, "rbind") ||
+                streq(me->mnt_type, "rbind");
 }
 
 static bool mount_is_network(struct mntent *me) {
@@ -494,8 +497,8 @@ static int parse_new_root_from_proc_cmdline(void) {
 
         if (what) {
 
-                log_debug("Found entry what=%s where=/new_root type=%s", what, type);
-                r = add_mount(what, "/new_root", type, opts, 0, wait, false, false,
+                log_debug("Found entry what=%s where=/sysroot type=%s", what, type);
+                r = add_mount(what, "/sysroot", type, opts, 0, wait, false, false,
                               false, false, false, "/proc/cmdline");
 
                 if (r < 0)