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.
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
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;
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)
; /* 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, '/'))
/* 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. */
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; }