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

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

Diff for /src/sys/ufs/ufs/ufs_lookup.c between version 1.91.6.1 and 1.91.6.2

version 1.91.6.1, 2007/11/06 23:35:24 version 1.91.6.2, 2008/01/09 01:58:35
Line 154  ufs_lookup(void *v)
Line 154  ufs_lookup(void *v)
         /*          /*
          * Check accessiblity of directory.           * Check accessiblity of directory.
          */           */
         if ((error = VOP_ACCESS(vdp, VEXEC, cred, cnp->cn_lwp)) != 0)          if ((error = VOP_ACCESS(vdp, VEXEC, cred)) != 0)
                 return (error);                  return (error);
   
         if ((flags & ISLASTCN) && (vdp->v_mount->mnt_flag & MNT_RDONLY) &&          if ((flags & ISLASTCN) && (vdp->v_mount->mnt_flag & MNT_RDONLY) &&
Line 425  notfound:
Line 425  notfound:
                  * Access for write is interpreted as allowing                   * Access for write is interpreted as allowing
                  * creation of files in the directory.                   * creation of files in the directory.
                  */                   */
                 error = VOP_ACCESS(vdp, VWRITE, cred, cnp->cn_lwp);                  error = VOP_ACCESS(vdp, VWRITE, cred);
                 if (error)                  if (error)
                         goto out;                          goto out;
                 /*                  /*
Line 514  found:
Line 514  found:
                 /*                  /*
                  * Write access to directory required to delete files.                   * Write access to directory required to delete files.
                  */                   */
                 error = VOP_ACCESS(vdp, VWRITE, cred, cnp->cn_lwp);                  error = VOP_ACCESS(vdp, VWRITE, cred);
                 if (error)                  if (error)
                         goto out;                          goto out;
                 /*                  /*
Line 567  found:
Line 567  found:
          * regular file, or empty directory.           * regular file, or empty directory.
          */           */
         if (nameiop == RENAME && (flags & ISLASTCN)) {          if (nameiop == RENAME && (flags & ISLASTCN)) {
                 error = VOP_ACCESS(vdp, VWRITE, cred, cnp->cn_lwp);                  error = VOP_ACCESS(vdp, VWRITE, cred);
                 if (error)                  if (error)
                         goto out;                          goto out;
                 /*                  /*
Line 763  ufs_direnter(struct vnode *dvp, struct v
Line 763  ufs_direnter(struct vnode *dvp, struct v
   
         error = 0;          error = 0;
         cr = cnp->cn_cred;          cr = cnp->cn_cred;
         l = cnp->cn_lwp;          l = curlwp;
   
         dp = VTOI(dvp);          dp = VTOI(dvp);
         newentrysize = DIRSIZ(0, dirp, 0);          newentrysize = DIRSIZ(0, dirp, 0);
Line 847  ufs_direnter(struct vnode *dvp, struct v
Line 847  ufs_direnter(struct vnode *dvp, struct v
                                 return (error);                                  return (error);
                         if (tvp != NULL)                          if (tvp != NULL)
                                 VOP_UNLOCK(tvp, 0);                                  VOP_UNLOCK(tvp, 0);
                         error = VOP_FSYNC(dvp, l->l_cred, FSYNC_WAIT, 0, 0, l);                          error = VOP_FSYNC(dvp, l->l_cred, FSYNC_WAIT, 0, 0);
                         if (tvp != 0)                          if (tvp != 0)
                                 vn_lock(tvp, LK_EXCLUSIVE | LK_RETRY);                                  vn_lock(tvp, LK_EXCLUSIVE | LK_RETRY);
                         return (error);                          return (error);
Line 1009  ufs_direnter(struct vnode *dvp, struct v
Line 1009  ufs_direnter(struct vnode *dvp, struct v
                 if (dp->i_dirhash != NULL)                  if (dp->i_dirhash != NULL)
                         ufsdirhash_dirtrunc(dp, dp->i_endoff);                          ufsdirhash_dirtrunc(dp, dp->i_endoff);
 #endif  #endif
                 (void) UFS_TRUNCATE(dvp, (off_t)dp->i_endoff, IO_SYNC, cr, l);                  (void) UFS_TRUNCATE(dvp, (off_t)dp->i_endoff, IO_SYNC, cr);
                 if (DOINGSOFTDEP(dvp) && (tvp != NULL))                  if (DOINGSOFTDEP(dvp) && (tvp != NULL))
                         vn_lock(tvp, LK_EXCLUSIVE | LK_RETRY);                          vn_lock(tvp, LK_EXCLUSIVE | LK_RETRY);
         }          }

Legend:
Removed from v.1.91.6.1  
changed lines
  Added in v.1.91.6.2

CVSweb <webmaster@jp.NetBSD.org>