]> git.ipfire.org Git - thirdparty/coreutils.git/commit
df: improve mount point selection with inaccurate mount list
authorPádraig Brady <P@draigBrady.com>
Mon, 18 Aug 2014 16:59:26 +0000 (17:59 +0100)
committerPádraig Brady <P@draigBrady.com>
Tue, 19 Aug 2014 17:43:07 +0000 (18:43 +0100)
commited1a495b3ccb2665a13229ca866f2115bd768d17
tree2c6e3872a19c5ac9196f826990e84a75f8c83f5c
parent65d8e6906ae8752358b4f96153f7a1c5ccec3789
df: improve mount point selection with inaccurate mount list

v8.23 has a test failure on Fedora rawhide build servers
in tests/df/skip-duplicate.sh.  This was due to no '/'
entry being output by df.  That was due to an inaccurate
/proc/mounts on the build environment as stat(/mnt/point)
identified all these /proc/mounts entries as having the
same device id:

  /                    rootfs
  /                    /dev/md1
  /dev                 devtmpfs
  /run                 tmpfs
  /boot                /dev/md0
  /proc/filesystems    /dev/md1

Since the device name on the right changes for a given id,
that causes the entries to be continually replaced, thus
resulting in no '/' entry.  I'm guessing this is due to
the mock environment bind mounting unneeded or sensitive
items to a dummy file on the host / (/dev/md1) though
have not looked into those details.

So rather than relying on an accurate /proc/mounts,
the attached patch takes a more conservative replacement
approach and only swaps a new device entry when the
mount point matches.  That should handle all practical
cases while also avoiding this situation.

* src/df.c (filter_mount_list): Only replace entries with
different device names when the mount point also matches.
src/df.c