*** 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 majord...@freebsd.org
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to