GNU bug report logs -
#21372
df prioritizes some bind mounts over real ones.
Previous Next
Reported by: Dave Chiluk <chiluk <at> canonical.com>
Date: Fri, 28 Aug 2015 21:09:02 UTC
Severity: normal
Done: Pádraig Brady <P <at> draigBrady.com>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
Fixes an issue where bind mounts with shorter mount directories than the
original mount are prioritized when running df. The root cause of this
is that /proc/self/mountinfo now lists the filesystem device with bind
mounts rather than the source directory. With /etc/mtab the source
device was listed as the originating directory so this was not an issue.
More information is available here.
https://bugs.launchpad.net/ubuntu/+source/coreutils/+bug/1432871
---
src/df.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/df.c b/src/df.c
index 2e541b9..4a3afa2 100644
--- a/src/df.c
+++ b/src/df.c
@@ -652,9 +652,14 @@ filter_mount_list (bool devices_only)
else if ((strchr (me->me_devname, '/')
/* let "real" devices with '/' in the name win. */
&& ! strchr (devlist->me->me_devname, '/'))
- /* let a shorter mountdir win. */
- || (strlen (devlist->me->me_mountdir)
+ /* let a shorter mountdir win. If it's mntroot is */
+ /* also shorter. i.e. not a bind mount. */
+ || ((strlen (devlist->me->me_mountdir)
> strlen (me->me_mountdir))
+ && (devlist->me->me_mntroot == NULL
+ || me->me_mntroot == NULL
+ || (strlen (devlist->me->me_mntroot)
+ >= strlen(me->me_mntroot))))
/* let an entry overmounted on a new device win... */
|| (! STREQ (devlist->me->me_devname, me->me_devname)
/* ... but only when matching an existing mnt point,
--
1.9.1
This bug report was last modified 9 years and 241 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.