Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Jun 1999 16:07:03 -0400 (EDT)
From:      "David E. Cross" <crossd@cs.rpi.edu>
To:        crossd@cs.rpi.edu, freebsd-hackers@freebsd.org, schimken@cs.rpi.edu
Subject:   oops, here's the patch
Message-ID:  <199906142007.QAA62362@wobble.cs.rpi.edu>

next in thread | raw e-mail | index | archive | help
*** nfs_serv.c	Tue Jun  8 15:53:11 1999
--- /cs/crossd/nfs_serv.c	Mon Jun 14 16:05:45 1999
***************
*** 1343,1348 ****
--- 1343,1349 ----
  	fhandle_t *fhp;
  	u_quad_t frev, tempsize;
  	u_char cverf[NFSX_V3CREATEVERF];
+ 	int eexistdebug=0;
  
  #ifndef nolint
  	rdev = 0;
***************
*** 1380,1385 ****
--- 1381,1387 ----
  		case NFSV3CREATE_GUARDED:
  			if (nd.ni_vp) {
  				error = EEXIST;
+ 				eexistdebug=1;
  				break;
  			}
  		case NFSV3CREATE_UNCHECKED:
***************
*** 1489,1497 ****
  		vrele(nd.ni_startdir);
  		zfree(namei_zone, nd.ni_cnd.cn_pnbuf);
  		vp = nd.ni_vp;
! 		if (nd.ni_dvp == vp)
  			vrele(nd.ni_dvp);
! 		else
  			vput(nd.ni_dvp);
  		VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd);
  		if (vap->va_size != -1) {
--- 1491,1499 ----
  		vrele(nd.ni_startdir);
  		zfree(namei_zone, nd.ni_cnd.cn_pnbuf);
  		vp = nd.ni_vp;
! 		if (nd.ni_dvp == vp) 
  			vrele(nd.ni_dvp);
! 		else 
  			vput(nd.ni_dvp);
  		VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd);
  		if (vap->va_size != -1) {
***************
*** 1505,1513 ****
  				error = VOP_SETATTR(vp, vap, cred,
  					 procp);
  			}
! 			if (error)
  				vput(vp);
  		}
  	}
  	if (!error) {
  		bzero((caddr_t)fhp, sizeof(nfh));
--- 1507,1516 ----
  				error = VOP_SETATTR(vp, vap, cred,
  					 procp);
  			}
! 			if (error) 
  				vput(vp);
  		}
+ 		if (eexistdebug)  vput(vp);
  	}
  	if (!error) {
  		bzero((caddr_t)fhp, sizeof(nfh));


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199906142007.QAA62362>