Date: Sun, 31 Jul 2005 21:27:43 -0400 (EDT) From: rick@snowhite.cis.uoguelph.ca To: kris@obsecurity.org Cc: fs@freebsd.org, openbsd-nfsv4@sfobug.org Subject: re: FreeBSD6.0-BETA1 panics Message-ID: <200508010127.VAA29962@snowhite.cis.uoguelph.ca>
next in thread | raw e-mail | index | archive | help
I've just put a little patch up ftp://ftp.cis.uoguelph.ca/pub/nfsv4/patch2-freebsd6.0-bet1.diffc (which is also appended to this message) that seems to fix the panics that I reproduced when testing with: option DEBUG_VFS_LOCKS option DEBUG_LOCKS I will be doing further testing on FreeBSD6.0-BETA1 and will cut new tarballs, but you can try the patch in the meantime, since I think it fixes the panic you saw. rick ps: I've got a hunch similar fixes are needed for the older versions of FreeBSD, but I'll check into that and create separate patches, as required. --- patch diffc --- *** newnfs/nfs/nfsport.h.orig Sun Jul 31 21:17:25 2005 --- newnfs/nfs/nfsport.h Sun Jul 31 21:19:54 2005 *************** *** 433,439 **** /* * Defined as the VOP_ISLOCKED macro. */ ! #define NFSVOPISLOCKED(v, p) VOP_ISLOCKED((v), (p)) /* * Increment the fp count. --- 433,439 ---- /* * Defined as the VOP_ISLOCKED macro. */ ! #define NFSVOPISLOCKED(v, p) (VOP_ISLOCKED((v), (p)) == LK_EXCLUSIVE) /* * Increment the fp count. *** newnfs/nfsd/nfsd_srv4root.c.orig Sun Jul 31 21:14:36 2005 --- newnfs/nfsd/nfsd_srv4root.c Sun Jul 31 21:15:03 2005 *************** *** 294,303 **** if (cnp->cn_nameiop != LOOKUP && (flags & ISLASTCN)) cnp->cn_flags |= SAVENAME; *(ap->a_vpp) = newvp; - if (!lockparent || !(flags & ISLASTCN)) { - VOP_UNLOCK(nfsv4root_vp, 0, p); - cnp->cn_flags |= PDIRUNLOCK; - } return (0); } cp += dp->d_reclen; --- 294,299 ----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200508010127.VAA29962>