GNU bug report logs -
#19570
bug: df and bind mounts
Previous Next
Reported by: Vladimir A. Pavlov <pv4 <at> bk.ru>
Date: Sun, 11 Jan 2015 23:54: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
[Message part 1 (text/plain, inline)]
Your message dated Fri, 26 Jun 2015 18:29:33 +0100
with message-id <558D8BFD.3020505 <at> draigBrady.com>
and subject line Re: bug#19570: bug: df and bind mounts
has caused the debbugs.gnu.org bug report #19570,
regarding bug: df and bind mounts
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
19570: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19570
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
Hello,
I have an issue with df (both in version 8.23 and in master branch).
I have tmpfs mounted as /run . There is /run/cgs/httpd subdirectory in
/run (just a subdirectory, not a tmpfs or another mount). This
/run/cgs/httpd is bind-mounted to /usr/cgs/httpd/run.
The current algorithm in df.c:filter_mount_list() chooses the bind
mountpoint since it has the leading slash in the "device" name
("/run/cgs/httpd" vs "run") which is wrong in my setup.
The similar (but not the same) issue is fixed by commit:
http://git.savannah.gnu.org/cgit/coreutils.git/commit/src/df.c?id=ed1a495b3ccb2665a13229ca866f2115bd768d17
I guess the "let real devices with / in the name win" replacement branch
should only be applied if mountpoints are the same as well.
Below is the data to reproduce the bug.
=== /etc/mtab (partial) ===
run /run tmpfs rw,noatime,nodiratime,nodev,noexec,mode=0755,size=1m 0 0
/run/cgs/httpd /usr/cgs/httpd/run none rw,bind 0 0
======
=== Real output (git) ===
Filesystem Size Used Avail Use% Mounted on
/run/cgs/httpd 1.0M 8.0K 1016K 1% /usr/cgs/httpd/run
======
=== Expected output (with the attached patch applied) ===
Filesystem Size Used Avail Use% Mounted on
run 1.0M 8.0K 1016K 1% /run
======
--
Vladimir A. Pavlov
[coreutils-8.23-df_bindmount_fix.patch (application/x-patch, attachment)]
[Message part 5 (message/rfc822, inline)]
On 12/01/15 01:31, Pádraig Brady wrote:
> On 11/01/15 23:36, Vladimir A. Pavlov wrote:
>> Hello,
>>
>> I have an issue with df (both in version 8.23 and in master branch).
>>
>> I have tmpfs mounted as /run . There is /run/cgs/httpd subdirectory in
>> /run (just a subdirectory, not a tmpfs or another mount). This
>> /run/cgs/httpd is bind-mounted to /usr/cgs/httpd/run.
>>
>> The current algorithm in df.c:filter_mount_list() chooses the bind
>> mountpoint since it has the leading slash in the "device" name
>> ("/run/cgs/httpd" vs "run") which is wrong in my setup.
>>
>> The similar (but not the same) issue is fixed by commit:
>> http://git.savannah.gnu.org/cgit/coreutils.git/commit/src/df.c?id=ed1a495b3ccb2665a13229ca866f2115bd768d17
>>
>> I guess the "let real devices with / in the name win" replacement branch
>> should only be applied if mountpoints are the same as well.
>>
>> Below is the data to reproduce the bug.
>>
>> === /etc/mtab (partial) ===
>> run /run tmpfs rw,noatime,nodiratime,nodev,noexec,mode=0755,size=1m 0 0
>> /run/cgs/httpd /usr/cgs/httpd/run none rw,bind 0 0
>> ======
>>
>> === Real output (git) ===
>> Filesystem Size Used Avail Use% Mounted on
>> /run/cgs/httpd 1.0M 8.0K 1016K 1% /usr/cgs/httpd/run
>> ======
>>
>> === Expected output (with the attached patch applied) ===
>> Filesystem Size Used Avail Use% Mounted on
>> run 1.0M 8.0K 1016K 1% /run
>> ======
>>
>
> Thanks for the analysis and patch,
> Current tests pass at least with it.
> I'll analyse a little more, add tests and probably push.
df v8.24 will read /proc/self/mountinfo if available
and so won't hit this issue in practise as the
bind mount location won't be passed to, or presented by df.
I.E. the "Filesystem" for a particular device id will
not switch representations.
thanks,
Pádraig.
This bug report was last modified 9 years and 335 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.