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 bug report
#19570: bug: df and bind mounts
which was filed against the coreutils package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 19570 <at> debbugs.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)]
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.
[Message part 3 (message/rfc822, inline)]
[Message part 4 (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)]
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.