Updates from both Vladimir and Larry
[oweals/busybox.git] / mount.c
diff --git a/mount.c b/mount.c
index 0295fabc69896c46ef48372da3676399eb98428b..e40d75f794856e9ae1059526e0eb555729f1f821 100644 (file)
--- a/mount.c
+++ b/mount.c
@@ -70,6 +70,7 @@ enum {
        S_IMMUTABLE = 512,     /* Immutable file */
        MS_NOATIME = 1024,    /* Do not update access times. */
        MS_NODIRATIME = 2048,    /* Do not update directory access times */
+       MS_BIND = 4096,    /* Use the new linux 2.4.x "mount --bind" feature */
 };
 
 
@@ -112,6 +113,7 @@ static const struct mount_options mount_options[] = {
        {"rw", ~MS_RDONLY, 0},
        {"suid", ~MS_NOSUID, 0},
        {"sync", ~0, MS_SYNCHRONOUS},
+       {"bind", ~0, MS_BIND},
        {0, 0, 0}
 };
 
@@ -319,10 +321,14 @@ void show_mounts()
                while ((m = getmntent(mountTable)) != 0) {
                        char *blockDevice = m->mnt_fsname;
                        if (strcmp(blockDevice, "/dev/root") == 0) {
-                               find_real_root_device_name( blockDevice);
+                               blockDevice = find_real_root_device_name(blockDevice);
                        }
                        printf("%s on %s type %s (%s)\n", blockDevice, m->mnt_dir,
                                   m->mnt_type, m->mnt_opts);
+#ifdef BB_FEATURE_CLEAN_UP
+                       if(blockDevice != m->mnt_fsname)
+                               free(blockDevice);
+#endif
                }
                endmntent(mountTable);
        } else {