[Bug 224851] Bug in getmntinfo(3) / getfsstat(2) ?

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Jan 2 23:15:19 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224851

            Bug ID: 224851
           Summary: Bug in getmntinfo(3) / getfsstat(2) ?
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: jamie at catflap.org

Created attachment 189351
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=189351&action=edit
test file to demonstrate the problem

There appears to be a bug in the system call related to getmntinfo(3) /
getfsstat(2), when if the "automount" flag is set on "nullfs" mounts, it is not
returned on a getfsstat "WAIT" call. The non-refreshed, non-blocking
"MNT_NOWAIT" produces the correct result.

I first noticed this when debugging why my nullfs autofs partitions weren't
being automatically unmounted. (FreeBSD current and release)

If this is actually intended behaviour, please reassign this as something that
needs to be worked around in the autofs code (I think this is similar in this
regard to #195161 )

The somewhat hacked attached snippet from automount.c in the example below
demonstrates this - When called with no parameters, it performs a MNT_WAIT
request, otherwise a MNT_NOWAIT request is performed. The results are:


| 14:24 [2] (1) "autofs" root at thompson# df
 | Filesystem        1K-blocks     Used      Avail Capacity  Mounted on
 | /dev/ada1p2         5061628   707264    3949436    15%    /
 | devfs                     1        1          0   100%    /dev
 | /dev/ada1p4         5061628   535004    4121696    11%    /var
 | /dev/ada1p5       978973296 21689416  878966020     2%    /usr
 |
 | 14:24 [2] (2) "autofs" root at thompson# mount
 | /dev/ada1p2 on / (ufs, local)
 | devfs on /dev (devfs, local, multilabel)
 | /dev/ada1p4 on /var (ufs, local, soft-updates)
 | /dev/ada1p5 on /usr (ufs, local, soft-updates)
 |
 | 14:25 [2] (3) "autofs" root at thompson# mkdir /tmp/automounted /tmp/manual
 |
 | 14:25 [2] (4) "autofs" root at thompson# mount -t nullfs -o ro /usr/src
/tmp/manual
 |
 | 14:25 [2] (5) "autofs" root at thompson# mount -t nullfs -o ro,automounted
/usr/src /tmp/automounted/
 |
 | 14:26 [2] (6) "autofs" root at thompson# df
 | Filesystem        1K-blocks     Used      Avail Capacity  Mounted on
 | /dev/ada1p2         5061628   707264    3949436    15%    /
 | devfs                     1        1          0   100%    /dev
 | /dev/ada1p4         5061628   535004    4121696    11%    /var
 | /dev/ada1p5       978973296 21689420  878966016     2%    /usr
 | /usr/src          978973296 21689420  878966016     2%    /tmp/manual
 | /usr/src          978973296 21689420  878966016     2%    /tmp/automounted
 |
 | 14:26 [2] (7) "autofs" root at thompson# mount
 | /dev/ada1p2 on / (ufs, local)
 | devfs on /dev (devfs, local, multilabel)
 | /dev/ada1p4 on /var (ufs, local, soft-updates)
 | /dev/ada1p5 on /usr (ufs, local, soft-updates)
 | /usr/src on /tmp/manual (nullfs, local, read-only)
 | /usr/src on /tmp/automounted (nullfs, local, read-only, automounted)
 |
 | 14:26 [2] (8) "autofs" root at thompson# ./a.out
 | skipping /, not automounted
 | skipping /dev, not automounted
 | skipping /var, not automounted
 | skipping /usr, not automounted
 | skipping /tmp/manual, not automounted
 | skipping /tmp/automounted, not automounted
 |
 | 14:26 [2] (9) "autofs" root at thompson# ./a.out x
 | skipping /, not automounted
 | skipping /dev, not automounted
 | skipping /var, not automounted
 | skipping /usr, not automounted
 | skipping /tmp/manual, not automounted
 | /tmp/automounted IS automounted!!!!!!!!!

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list