Subject: Solved (Re: df fails to show all mounted file systems)
From: Vesa-Matti J Kari <[email-masked]>
To: [email-masked]
Date: Thu, 26 Feb 2015 17:41:31 +0200 (EET)
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

On Thu, 26 Feb 2015, Vesa-Matti J Kari wrote:

> [...] starting from coreutils-8.21 (i.e. the bug exist in 8.22 and 8.23
> too), lots of NFS mounts are missing:
>
> vmkari@cedi:/var/tmp/vmk$ coreutils-8.21/src/df
> Filesystem                1K-blocks       Used Available Use% Mounted on
> /dev/mapper/rvg-root        5134336    4334584    799752  85% /
> devtmpfs                    8118888          0   8118888   0% /dev
> tmpfs                       8128372          0   8128372   0% /dev/shm
> tmpfs                       8128372      18860   8109512   1% /run
> tmpfs                       8128372          0   8128372   0% /sys/fs/cgroup
> /dev/sda1                    520876     190144    330732  37% /boot
> machine-1:/ua/group      1459291104 1113208544 271954816  81% /h/group
> machine-1:/b/scratch      101721248   75860064  20618816  79% /b/scratch
> machine-1:/h/a           1001028384  746104672 204068672  79% /h/a
> machine-1:/usr/local/yht  113402880   78201856  29433856  73% /usr/local/yht
> machine-1:/q/q            113402528   78201952  29433536  73% /q/q
> machine-2:/var/spool/mail    230608384   83144160 135929888  38% /var/spool/mail
>
> The contents /etc/mtab are correct and "mount" command also works
> correctly. Could you look into this issue please?

Wow. I just spent about three hours investigating and came up with this
little patch for coreutils-8.20:

----------- sample starts -------------------------------

--- coreutils-8.21/src/df.c	2013-02-05 01:40:31.000000000 +0200
+++ coreutils-8.21-patched/src/df.c	2015-02-26 17:02:41.849872767 +0200
@@ -624,8 +624,8 @@ filter_mount_list (void)
         }
       else
         {
-          /* If the device name is a real path name ...  */
-          if (strchr (me->me_devname, '/'))
+          /* If the device name is a real path name and not an NFS-mount ...  */
+          if (strchr (me->me_devname, '/') && !strchr (me->me_devname, ':'))
             {
               /* ... try to find its device number in the devlist.  */
               for (devlist = devlist_head; devlist; devlist = devlist->next)

----------- sample ends ------------------------------

And all in vain because the 'df' utility in the latest coreutils git-repo
already works correctly. :-)

So sorry for the noise.

Do you have plans to release coreutils-8.24 soon? The
coreutils-8.22.11.el7 on Red Hat Enterprise Linux 7 / CentOS 7 is
currently broken.

Regards,
vmk
-- 
************************************************************************
               Tietotekniikkakeskus / Helsingin yliopisto
                 IT department / University of Helsinki
************************************************************************