[BACK]Return to nfs_serv.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / nfs

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/nfs/nfs_serv.c between version 1.168 and 1.169

version 1.168, 2013/12/14 22:04:03 version 1.169, 2014/01/17 10:55:02
Line 1549  nfsrv_create(struct nfsrv_descript *nfsd
Line 1549  nfsrv_create(struct nfsrv_descript *nfsd
                                 pathbuf_destroy(nd.ni_pathbuf);                                  pathbuf_destroy(nd.ni_pathbuf);
                                 nd.ni_pathbuf = NULL;                                  nd.ni_pathbuf = NULL;
                         }                          }
                         vput(nd.ni_dvp);  
                         error = ENXIO;                          error = ENXIO;
                         abort = 0;                          abort = 0;
                 }                  }
Line 1561  nfsrv_create(struct nfsrv_descript *nfsd
Line 1560  nfsrv_create(struct nfsrv_descript *nfsd
                         nd.ni_pathbuf = NULL;                          nd.ni_pathbuf = NULL;
                 }                  }
                 vp = nd.ni_vp;                  vp = nd.ni_vp;
                 if (nd.ni_dvp == vp)  
                         vrele(nd.ni_dvp);  
                 else  
                         vput(nd.ni_dvp);  
                 abort = 0;                  abort = 0;
                 if (!error && va.va_size != -1) {                  if (!error && va.va_size != -1) {
                         error = nfsrv_access(vp, VWRITE, cred,                          error = nfsrv_access(vp, VWRITE, cred,
Line 1586  nfsrv_create(struct nfsrv_descript *nfsd
Line 1581  nfsrv_create(struct nfsrv_descript *nfsd
                         error = VOP_GETATTR(vp, &va, cred);                          error = VOP_GETATTR(vp, &va, cred);
                 vput(vp);                  vput(vp);
         }          }
           if (nd.ni_dvp == vp)
                   vrele(nd.ni_dvp);
           else
                   vput(nd.ni_dvp);
         if (v3) {          if (v3) {
                 if (exclusive_flag && !error) {                  if (exclusive_flag && !error) {
                         /*                          /*
Line 1721  nfsrv_mknod(struct nfsrv_descript *nfsd,
Line 1720  nfsrv_mknod(struct nfsrv_descript *nfsd,
                 error = EEXIST;                  error = EEXIST;
 abort:  abort:
                 VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd);                  VOP_ABORTOP(nd.ni_dvp, &nd.ni_cnd);
                 if (nd.ni_dvp == nd.ni_vp)  
                         vrele(nd.ni_dvp);  
                 else  
                         vput(nd.ni_dvp);  
                 if (nd.ni_vp)                  if (nd.ni_vp)
                         vput(nd.ni_vp);                          vput(nd.ni_vp);
                 if (nd.ni_pathbuf != NULL) {                  if (nd.ni_pathbuf != NULL) {
Line 1758  out:
Line 1753  out:
                         error = VOP_GETATTR(vp, &va, cred);                          error = VOP_GETATTR(vp, &va, cred);
                 vput(vp);                  vput(vp);
         }          }
           if (nd.ni_dvp == nd.ni_vp)
                   vrele(nd.ni_dvp);
           else
                   vput(nd.ni_dvp);
         if (dirp) {          if (dirp) {
                 vn_lock(dirp, LK_SHARED | LK_RETRY);                  vn_lock(dirp, LK_SHARED | LK_RETRY);
                 diraft_ret = VOP_GETATTR(dirp, &diraft, cred);                  diraft_ret = VOP_GETATTR(dirp, &diraft, cred);
Line 2350  abortop:
Line 2349  abortop:
                 vput(nd.ni_vp);                  vput(nd.ni_vp);
             }              }
         }          }
           vput(nd.ni_dvp);
 out:  out:
         if (pathcp)          if (pathcp)
                 free(pathcp, M_TEMP);                  free(pathcp, M_TEMP);
Line 2475  nfsrv_mkdir(struct nfsrv_descript *nfsd,
Line 2475  nfsrv_mkdir(struct nfsrv_descript *nfsd,
                         error = VOP_GETATTR(vp, &va, cred);                          error = VOP_GETATTR(vp, &va, cred);
                 vput(vp);                  vput(vp);
         }          }
           vput(nd.ni_dvp);
 out:  out:
         if (dirp) {          if (dirp) {
                 if (v3) {                  if (v3) {

Legend:
Removed from v.1.168  
changed lines
  Added in v.1.169

CVSweb <webmaster@jp.NetBSD.org>