[BACK]Return to efs_vnops.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / fs / efs

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

Diff for /src/sys/fs/efs/efs_vnops.c between version 1.24 and 1.24.4.3

version 1.24, 2011/05/19 03:11:56 version 1.24.4.3, 2013/01/16 05:33:38
Line 73  efs_lookup(void *v)
Line 73  efs_lookup(void *v)
         if (err)          if (err)
                 return (err);                  return (err);
   
         err = cache_lookup(ap->a_dvp, ap->a_vpp, cnp);          if (cache_lookup(ap->a_dvp, cnp->cn_nameptr, cnp->cn_namelen,
         if (err != -1)                           cnp->cn_nameiop, cnp->cn_flags, NULL, ap->a_vpp)) {
                 return (err);                  return *ap->a_vpp == NULLVP ? ENOENT : 0;
           }
   
         /*          /*
          * Handle the three lookup types: '.', '..', and everything else.           * Handle the three lookup types: '.', '..', and everything else.
Line 102  efs_lookup(void *v)
Line 103  efs_lookup(void *v)
                 err = efs_inode_lookup(VFSTOEFS(ap->a_dvp->v_mount),                  err = efs_inode_lookup(VFSTOEFS(ap->a_dvp->v_mount),
                     EFS_VTOI(ap->a_dvp), ap->a_cnp, &ino);                      EFS_VTOI(ap->a_dvp), ap->a_cnp, &ino);
                 if (err) {                  if (err) {
                         if (err == ENOENT && (cnp->cn_flags & MAKEENTRY) &&                          if (err == ENOENT && nameiop != CREATE)
                             nameiop != CREATE)                                  cache_enter(ap->a_dvp, NULL, cnp->cn_nameptr,
                                 cache_enter(ap->a_dvp, NULL, cnp);                                              cnp->cn_namelen, cnp->cn_flags);
                         if (err == ENOENT && (nameiop == CREATE ||                          if (err == ENOENT && (nameiop == CREATE ||
                             nameiop == RENAME)) {                              nameiop == RENAME)) {
                                 err = VOP_ACCESS(ap->a_dvp, VWRITE,                                  err = VOP_ACCESS(ap->a_dvp, VWRITE,
Line 121  efs_lookup(void *v)
Line 122  efs_lookup(void *v)
                 *ap->a_vpp = vp;                  *ap->a_vpp = vp;
         }          }
   
         if (cnp->cn_flags & MAKEENTRY)          cache_enter(ap->a_dvp, *ap->a_vpp, cnp->cn_nameptr, cnp->cn_namelen,
                 cache_enter(ap->a_dvp, *ap->a_vpp, cnp);                      cnp->cn_flags);
   
         return (0);          return 0;
 }  }
   
 static int  static int
Line 148  efs_check_permitted(struct vnode *vp, st
Line 149  efs_check_permitted(struct vnode *vp, st
     kauth_cred_t cred)      kauth_cred_t cred)
 {  {
   
         return genfs_can_access(vp->v_type, eip->ei_mode, eip->ei_uid,          return kauth_authorize_vnode(cred, kauth_access_action(mode,
             eip->ei_gid, mode, cred);              vp->v_type, eip->ei_mode), vp, NULL, genfs_can_access(vp->v_type,
               eip->ei_mode, eip->ei_uid, eip->ei_gid, mode, cred));
 }  }
   
 static int  static int

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.24.4.3

CVSweb <webmaster@jp.NetBSD.org>