[git commit master 1/1] df, find_mount_point: optionally don't ignore rootfs

Denys Vlasenko vda.linux at googlemail.com
Mon Jan 31 05:27:35 UTC 2011


commit: http://git.busybox.net/busybox/commit/?id=55ae0e9238e1979f0200700ec5dbd0df8d32f7a2
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Lauri Kasanen <curaga at operamail.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 coreutils/df.c           |    2 +-
 libbb/Config.src         |   19 +++++++++++++++++++
 libbb/find_mount_point.c |    2 +-
 3 files changed, 21 insertions(+), 2 deletions(-)

diff --git a/coreutils/df.c b/coreutils/df.c
index af9b77b..70fd1f4 100644
--- a/coreutils/df.c
+++ b/coreutils/df.c
@@ -160,7 +160,7 @@ int df_main(int argc UNUSED_PARAM, char **argv)
 			}
 
 			/* GNU coreutils 6.10 skips certain mounts, try to be compatible.  */
-			if (strcmp(device, "rootfs") == 0)
+			if (ENABLE_FEATURE_SKIP_ROOTFS && strcmp(device, "rootfs") == 0)
 				continue;
 
 #ifdef WHY_WE_DO_IT_FOR_DEV_ROOT_ONLY
diff --git a/libbb/Config.src b/libbb/Config.src
index 85892d3..dfb897d 100644
--- a/libbb/Config.src
+++ b/libbb/Config.src
@@ -161,6 +161,25 @@ config FEATURE_COPYBUF_KB
 	  Bigger buffers will be allocated with mmap, with fallback to 4 kb
 	  stack buffer if mmap fails.
 
+config FEATURE_SKIP_ROOTFS
+	bool "Skip rootfs in mount table"
+	default y
+	help
+	  Ignore rootfs entry in mount table.
+
+	  In Linux, kernel has a special filesystem, rootfs, which is initially
+	  mounted on /. It contains initramfs data, if kernel is configured
+	  to have one. Usually, another file system is mounted over / early
+	  in boot process, and therefore most tools which manipulate
+	  mount table, such as df, will skip rootfs entry.
+
+	  However, some systems do not mount anything on /.
+	  If you need to configure busybox for one of these systems,
+	  you may find useful to turn this option off to make df show
+	  initramfs statistic.
+
+	  Otherwise, choose Y.
+
 config MONOTONIC_SYSCALL
 	bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
 	default n
diff --git a/libbb/find_mount_point.c b/libbb/find_mount_point.c
index 361698a..56637ad 100644
--- a/libbb/find_mount_point.c
+++ b/libbb/find_mount_point.c
@@ -43,7 +43,7 @@ struct mntent* FAST_FUNC find_mount_point(const char *name, int subdir_too)
 		/* rootfs mount in Linux 2.6 exists always,
 		 * and it makes sense to always ignore it.
 		 * Otherwise people can't reference their "real" root! */
-		if (strcmp(mountEntry->mnt_fsname, "rootfs") == 0)
+		if (ENABLE_FEATURE_SKIP_ROOTFS && strcmp(mountEntry->mnt_fsname, "rootfs") == 0)
 			continue;
 
 		if (strcmp(name, mountEntry->mnt_dir) == 0
-- 
1.7.3.4



More information about the busybox-cvs mailing list