summaryrefslogtreecommitdiff
path: root/src/df.c
diff options
context:
space:
mode:
authorPádraig Brady <P@draigBrady.com>2014-06-17 00:18:47 +0100
committerPádraig Brady <P@draigBrady.com>2014-06-18 18:05:16 +0100
commit4f8d74eb1b2ba17ef05f81c1c725e60a65cf8293 (patch)
tree9e25e4d598dac5bcceb5bd49d9543edf9ee18824 /src/df.c
parent5ad16c2a0f11e48f1b1e3968b7b390591ce6f908 (diff)
downloadcoreutils-4f8d74eb1b2ba17ef05f81c1c725e60a65cf8293.tar.xz
df: use all of the last device details provided
* src/df.c (filter_mount_list): Recent commit v8.22-108-g25a2c94 failed to copy file system type along with the updated device name. Therefore simply replace the existing mount entry with the current one with all the latest device details. Note the name, even if not shorter in this entry, will be replaced with a shorter name in a subsequent mount entry. * tests/df/skip-duplicates.sh: Add a test case.
Diffstat (limited to 'src/df.c')
-rw-r--r--src/df.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/src/df.c b/src/df.c
index 747d138b8..10047cea1 100644
--- a/src/df.c
+++ b/src/df.c
@@ -642,7 +642,9 @@ filter_mount_list (void)
if ((strchr (me->me_devname, '/')
&& ! strchr (devlist->me->me_devname, '/'))
|| (strlen (devlist->me->me_mountdir)
- > strlen (me->me_mountdir)))
+ > strlen (me->me_mountdir))
+ /* or one overmounted on a different device. */
+ || ! STREQ (devlist->me->me_devname, me->me_devname))
{
/* Discard mount entry for existing device. */
discard_me = devlist->me;
@@ -652,17 +654,6 @@ filter_mount_list (void)
{
/* Discard mount entry currently being processed. */
discard_me = me;
-
- /* We might still want the devname from this mount entry as
- the dev_num might not correlate with st_dev if another
- device is subsequently overmounted at mountdir, so honor
- the order of the presented list and replace with the
- latest devname encountered. */
- if (! STREQ (devlist->me->me_devname, me->me_devname))
- {
- free (devlist->me->me_devname);
- devlist->me->me_devname = xstrdup (me->me_devname);
- }
}
}