--- /usr/src/sys/gnu/fs/xfs/FreeBSD/xfs_vnode.c 2008-07-03 15:17:19.000000000 +0200 +++ src/sys/gnu/fs/xfs/FreeBSD/xfs_vnode.c 2008-07-17 16:26:05.000000000 +0200 @@ -104,13 +104,11 @@ vp = vmap->v_vp; - error = vget(vp, 0, curthread); - if (error) { - vdrop(vp); + error = vget(vp, LK_EXCLUSIVE, curthread); + vdrop(vp); + if (error) return (NULL); - } - vdrop(vp); if (vp->v_data != xfs_vp) { vput(vp); return (NULL); --- /usr/src/sys/kern/vfs_subr.c 2008-05-31 23:42:15.000000000 +0200 +++ src/sys/kern/vfs_subr.c 2008-07-17 16:28:15.000000000 +0200 @@ -2038,6 +2038,8 @@ error = 0; VFS_ASSERT_GIANT(vp->v_mount); + VNASSERT((flags & LK_TYPE_MASK) != 0, vp, + ("vget: invalid lock operation")); if ((flags & LK_INTERLOCK) == 0) VI_LOCK(vp); vholdl(vp);