Recursive nullfs mounts and r224655

b. f. bf1783 at
Sun Aug 7 00:11:33 UTC 2011

On 8/6/11, Kostik Belousov <kostikbel at> wrote:
> On Sat, Aug 06, 2011 at 04:44:25AM -0400, b. f. wrote:
>> Recent changes to the kernel (sys/kern/vfs_mount.c, in r224655?)
>> between r224550 and r224655 have broken my tinderbox setup.  It had a
>> tmpfs filesystem mounted at /T and a UFS filesystem mounted at /U,
>> and, when setting up the tinderbox, performed:
>> mkdir /U/u1
>> mkdir /U/u2
>> mkdir /T/t1
>> mount -t nullfs /T/t1 /U/u1
>> mkdir-p /U/u1/u3/u4
>> mount -t nullfs /U/u2 /U/u1/u3/u4
>> ...
>> This worked at r224550 and before.  It now fails at the second nullfs
>> mount, with ENOENT("mount_nullfs: No such file or directory").
> r224615 and r224655 must be reverted.
> The reason for your trouble is that nullfs cannot cache any vnodes,
> thus reclaiming anything that get reference count of 0. This interacts
> badly with VOP_VNTOCNP() which has to operate on the vnodes with
> zero refcount, since we cannot decrement refcount under the namecache
> lock.
> Trying to update vptocnp(9) interface is too intrusive change for freeze
> period.

Thank you for the analysis, it will make fixing this problem locally a
bit easier, while you sort it out.  Does 224614 have a bearing on this
problem, as well as 224615?


More information about the freebsd-current mailing list