diff options
-rw-r--r-- | NEWS | 4 | ||||
-rw-r--r-- | doc/coreutils.texi | 9 | ||||
-rw-r--r-- | src/df.c | 20 | ||||
-rwxr-xr-x | tests/df/skip-rootfs.sh | 12 |
4 files changed, 14 insertions, 31 deletions
@@ -73,9 +73,7 @@ GNU coreutils NEWS -*- outline -*- df now properly outputs file system information with bind mounts present on the system by skipping duplicate entries (identified by the device number). - - df now elides any entry with the early-boot pseudo file system type - "rootfs" unless either the -a option or "-t rootfs" is specified. + Consequently, df also elides the early-boot pseudo file system type "rootfs". nl no longer supports the --page-increment option, which has been deprecated since coreutils-7.5. Use --line-increment instead. diff --git a/doc/coreutils.texi b/doc/coreutils.texi index 1d508c996..eac8d52bb 100644 --- a/doc/coreutils.texi +++ b/doc/coreutils.texi @@ -10588,13 +10588,14 @@ Normally the disk space is printed in units of Non-integer quantities are rounded up to the next higher unit. For bind mounts and without arguments, @command{df} only outputs the statistics -for the first occurrence of that device in the list of file systems +for that device with the shortest mount point name in the list of file systems (@var{mtab}), i.e., it hides duplicate entries, unless the @option{-a} option is specified. -By default, @command{df} omits the early-boot pseudo file system type -@samp{rootfs}, unless the @option{-a} option is specified or that file system -type is explicitly to be included by using the @option{-t} option. +With the same logic, @command{df} elides a mount entry of a dummy pseude device +if there is another mount entry of a real block device for that mount point with +the same device number, e.g. the early-boot pseudo file system @samp{rootfs} is +not shown per default when already the real root device has been mounted. @cindex disk device file @cindex device file, disk @@ -63,12 +63,6 @@ static bool show_local_fs; command line argument -- even if it's a dummy (automounter) entry. */ static bool show_listed_fs; -/* If true, include rootfs in the output. */ -static bool show_rootfs; - -/* The literal name of the initial root file system. */ -static char const *ROOTFS = "rootfs"; - /* Human-readable options for output. */ static int human_output_opts; @@ -608,8 +602,7 @@ excluded_fstype (const char *fstype) In the case of duplicities - based on to the device number - the mount entry with a '/' in its me_devname (i.e. not pseudo name like tmpfs) wins. If both have a real devname (e.g. bind mounts), then that with the shorter - me_mountdir wins. - Finally, do not filter out a rootfs entry if -trootfs is specified. */ + me_mountdir wins. */ static void filter_mount_list (void) @@ -630,16 +623,6 @@ filter_mount_list (void) ; /* Stat failed - add ME to be able to complain about it later. */ } else - if (show_rootfs - && ( STREQ (me->me_mountdir, "/") - || STREQ (me->me_type, ROOTFS))) - { - /* Df should show rootfs (due to -trootfs). - Add this ME both if it is the rootfs entry itself or "/" - (as that must not replace the rootfs entry in the devlist). */ - ; - } - else { /* If the device name is a real path name ... */ if (strchr (me->me_devname, '/')) @@ -1383,7 +1366,6 @@ main (int argc, char **argv) /* Accept -F as a synonym for -t for compatibility with Solaris. */ case 't': add_fs_type (optarg); - show_rootfs = selected_fstype (ROOTFS); break; case 'v': /* For SysV compatibility. */ diff --git a/tests/df/skip-rootfs.sh b/tests/df/skip-rootfs.sh index 7b9632bbb..9c5d0a9f2 100755 --- a/tests/df/skip-rootfs.sh +++ b/tests/df/skip-rootfs.sh @@ -29,12 +29,14 @@ grep '^rootfs' out || skip_ "no rootfs in mtab" df >out || fail=1 grep '^rootfs' out && { fail=1; cat out; } -# Ensure that the rootfs is shown when explicitly specifying "-t rootfs". -df -t rootfs >out || fail=1 -grep '^rootfs' out || { fail=1; cat out; } +# Ensure that rootfs is yet skipped when explicitly specifying "-t rootfs". +# As df emits "no file systems processed" in this case, it would be a failure +# if df exited with status Zero. +df -t rootfs >out && fail=1 +grep '^rootfs' out && { fail=1; cat out; } -# Ensure that the rootfs is shown when explicitly specifying "-t rootfs", -# even when the -a option is specified. +# Ensure that the rootfs is shown when explicitly both specifying "-t rootfs" +# and the -a option. df -t rootfs -a >out || fail=1 grep '^rootfs' out || { fail=1; cat out; } |