Nicolas Thery <[email protected]> wrote: > 2009/1/7 Sascha Wildner <[email protected]>: >> >> Sascha Wildner <[email protected]> added the comment: >> >> Yes it's reproducible still. Could it be that it happens because this is >> a HAMMER filesystem and /usr is already a null mount? > > Maybe as I tried on UFS.
I just tried it in a vkernel and the problem occurs if the null-mounted directory is on HAMMER. In that case during the second mount_null call, VFS_ROOT(mp, &newdp) called from checkdirs() in turn called from sys_mount() tries to acquire the same lock, that was already acquired by vn_lock() from sys_mount() directly. Doing checkdirs() after vn_unlock(vp) makes the problem go away, but of course it might not be allowed to call checkdirs() without the lock protection. Johannes
