Index: nfs_serv.c =================================================================== RCS file: /home/ncvs/src/sys/nfsserver/nfs_serv.c,v retrieving revision 1.156 diff -u -r1.156 nfs_serv.c --- nfs_serv.c 17 Apr 2005 16:25:36 -0000 1.156 +++ nfs_serv.c 26 Oct 2005 13:13:25 -0000 @@ -2092,6 +2092,8 @@ tl = nfsm_dissect_nonblock(u_int32_t *, NFSX_UNSIGNED); vtyp = nfsv3tov_type(*tl); if (vtyp != VCHR && vtyp != VBLK && vtyp != VSOCK && vtyp != VFIFO) { + NFSD_UNLOCK(); + mtx_lock(&Giant); /* VFS */ error = NFSERR_BADTYPE; goto out; } @@ -2108,6 +2110,8 @@ * Iff doesn't exist, create it. */ if (nd.ni_vp) { + NFSD_UNLOCK(); + mtx_lock(&Giant); /* VFS */ error = EEXIST; goto out; }