Skip site navigation (1)Skip section navigation (2)
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>