From 55ae0e9238e1979f0200700ec5dbd0df8d32f7a2 Mon Sep 17 00:00:00 2001 From: Lauri Kasanen Date: Mon, 31 Jan 2011 06:27:35 +0100 Subject: df,find_mount_point: optionally don't ignore rootfs Signed-off-by: Lauri Kasanen Signed-off-by: Denys Vlasenko --- 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 -- cgit v1.1