Loading fs/ecryptfs/inode.c +1 −1 Original line number Diff line number Diff line Loading @@ -830,7 +830,7 @@ out: static int ecryptfs_permission(struct inode *inode, int mask) { return permission(ecryptfs_inode_to_lower(inode), mask, NULL); return inode_permission(ecryptfs_inode_to_lower(inode), mask); } /** Loading fs/namei.c +9 −13 Original line number Diff line number Diff line Loading @@ -227,13 +227,9 @@ int generic_permission(struct inode *inode, int mask, return -EACCES; } int permission(struct inode *inode, int mask, struct nameidata *nd) int inode_permission(struct inode *inode, int mask) { int retval; struct vfsmount *mnt = NULL; if (nd) mnt = nd->path.mnt; if (mask & MAY_WRITE) { umode_t mode = inode->i_mode; Loading Loading @@ -293,7 +289,7 @@ int permission(struct inode *inode, int mask, struct nameidata *nd) */ int vfs_permission(struct nameidata *nd, int mask) { return permission(nd->path.dentry->d_inode, mask, nd); return inode_permission(nd->path.dentry->d_inode, mask); } /** Loading @@ -310,7 +306,7 @@ int vfs_permission(struct nameidata *nd, int mask) */ int file_permission(struct file *file, int mask) { return permission(file->f_path.dentry->d_inode, mask, NULL); return inode_permission(file->f_path.dentry->d_inode, mask); } /* Loading Loading @@ -1262,7 +1258,7 @@ static struct dentry *lookup_hash(struct nameidata *nd) { int err; err = permission(nd->path.dentry->d_inode, MAY_EXEC, nd); err = inode_permission(nd->path.dentry->d_inode, MAY_EXEC); if (err) return ERR_PTR(err); return __lookup_hash(&nd->last, nd->path.dentry, nd); Loading Loading @@ -1310,7 +1306,7 @@ struct dentry *lookup_one_len(const char *name, struct dentry *base, int len) if (err) return ERR_PTR(err); err = permission(base->d_inode, MAY_EXEC, NULL); err = inode_permission(base->d_inode, MAY_EXEC); if (err) return ERR_PTR(err); return __lookup_hash(&this, base, NULL); Loading Loading @@ -1400,7 +1396,7 @@ static int may_delete(struct inode *dir,struct dentry *victim,int isdir) BUG_ON(victim->d_parent->d_inode != dir); audit_inode_child(victim->d_name.name, victim, dir); error = permission(dir,MAY_WRITE | MAY_EXEC, NULL); error = inode_permission(dir, MAY_WRITE | MAY_EXEC); if (error) return error; if (IS_APPEND(dir)) Loading Loading @@ -1437,7 +1433,7 @@ static inline int may_create(struct inode *dir, struct dentry *child, return -EEXIST; if (IS_DEADDIR(dir)) return -ENOENT; return permission(dir,MAY_WRITE | MAY_EXEC, nd); return inode_permission(dir, MAY_WRITE | MAY_EXEC); } /* Loading Loading @@ -2543,7 +2539,7 @@ static int vfs_rename_dir(struct inode *old_dir, struct dentry *old_dentry, * we'll need to flip '..'. */ if (new_dir != old_dir) { error = permission(old_dentry->d_inode, MAY_WRITE, NULL); error = inode_permission(old_dentry->d_inode, MAY_WRITE); if (error) return error; } Loading Loading @@ -2897,7 +2893,7 @@ EXPORT_SYMBOL(page_symlink); EXPORT_SYMBOL(page_symlink_inode_operations); EXPORT_SYMBOL(path_lookup); EXPORT_SYMBOL(vfs_path_lookup); EXPORT_SYMBOL(permission); EXPORT_SYMBOL(inode_permission); EXPORT_SYMBOL(vfs_permission); EXPORT_SYMBOL(file_permission); EXPORT_SYMBOL(unlock_rename); Loading fs/nfsd/nfsfh.c +1 −1 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ static int nfsd_acceptable(void *expv, struct dentry *dentry) /* make sure parents give x permission to user */ int err; parent = dget_parent(tdentry); err = permission(parent->d_inode, MAY_EXEC, NULL); err = inode_permission(parent->d_inode, MAY_EXEC); if (err < 0) { dput(parent); break; Loading fs/nfsd/vfs.c +2 −2 Original line number Diff line number Diff line Loading @@ -1953,12 +1953,12 @@ nfsd_permission(struct svc_rqst *rqstp, struct svc_export *exp, return 0; /* This assumes NFSD_MAY_{READ,WRITE,EXEC} == MAY_{READ,WRITE,EXEC} */ err = permission(inode, acc & (MAY_READ|MAY_WRITE|MAY_EXEC), NULL); err = inode_permission(inode, acc & (MAY_READ|MAY_WRITE|MAY_EXEC)); /* Allow read access to binaries even when mode 111 */ if (err == -EACCES && S_ISREG(inode->i_mode) && acc == (NFSD_MAY_READ | NFSD_MAY_OWNER_OVERRIDE)) err = permission(inode, MAY_EXEC, NULL); err = inode_permission(inode, MAY_EXEC); return err? nfserrno(err) : 0; } Loading fs/utimes.c +1 −1 Original line number Diff line number Diff line Loading @@ -96,7 +96,7 @@ static int utimes_common(struct path *path, struct timespec *times) goto mnt_drop_write_and_out; if (!is_owner_or_cap(inode)) { error = permission(inode, MAY_WRITE, NULL); error = inode_permission(inode, MAY_WRITE); if (error) goto mnt_drop_write_and_out; } Loading Loading
fs/ecryptfs/inode.c +1 −1 Original line number Diff line number Diff line Loading @@ -830,7 +830,7 @@ out: static int ecryptfs_permission(struct inode *inode, int mask) { return permission(ecryptfs_inode_to_lower(inode), mask, NULL); return inode_permission(ecryptfs_inode_to_lower(inode), mask); } /** Loading
fs/namei.c +9 −13 Original line number Diff line number Diff line Loading @@ -227,13 +227,9 @@ int generic_permission(struct inode *inode, int mask, return -EACCES; } int permission(struct inode *inode, int mask, struct nameidata *nd) int inode_permission(struct inode *inode, int mask) { int retval; struct vfsmount *mnt = NULL; if (nd) mnt = nd->path.mnt; if (mask & MAY_WRITE) { umode_t mode = inode->i_mode; Loading Loading @@ -293,7 +289,7 @@ int permission(struct inode *inode, int mask, struct nameidata *nd) */ int vfs_permission(struct nameidata *nd, int mask) { return permission(nd->path.dentry->d_inode, mask, nd); return inode_permission(nd->path.dentry->d_inode, mask); } /** Loading @@ -310,7 +306,7 @@ int vfs_permission(struct nameidata *nd, int mask) */ int file_permission(struct file *file, int mask) { return permission(file->f_path.dentry->d_inode, mask, NULL); return inode_permission(file->f_path.dentry->d_inode, mask); } /* Loading Loading @@ -1262,7 +1258,7 @@ static struct dentry *lookup_hash(struct nameidata *nd) { int err; err = permission(nd->path.dentry->d_inode, MAY_EXEC, nd); err = inode_permission(nd->path.dentry->d_inode, MAY_EXEC); if (err) return ERR_PTR(err); return __lookup_hash(&nd->last, nd->path.dentry, nd); Loading Loading @@ -1310,7 +1306,7 @@ struct dentry *lookup_one_len(const char *name, struct dentry *base, int len) if (err) return ERR_PTR(err); err = permission(base->d_inode, MAY_EXEC, NULL); err = inode_permission(base->d_inode, MAY_EXEC); if (err) return ERR_PTR(err); return __lookup_hash(&this, base, NULL); Loading Loading @@ -1400,7 +1396,7 @@ static int may_delete(struct inode *dir,struct dentry *victim,int isdir) BUG_ON(victim->d_parent->d_inode != dir); audit_inode_child(victim->d_name.name, victim, dir); error = permission(dir,MAY_WRITE | MAY_EXEC, NULL); error = inode_permission(dir, MAY_WRITE | MAY_EXEC); if (error) return error; if (IS_APPEND(dir)) Loading Loading @@ -1437,7 +1433,7 @@ static inline int may_create(struct inode *dir, struct dentry *child, return -EEXIST; if (IS_DEADDIR(dir)) return -ENOENT; return permission(dir,MAY_WRITE | MAY_EXEC, nd); return inode_permission(dir, MAY_WRITE | MAY_EXEC); } /* Loading Loading @@ -2543,7 +2539,7 @@ static int vfs_rename_dir(struct inode *old_dir, struct dentry *old_dentry, * we'll need to flip '..'. */ if (new_dir != old_dir) { error = permission(old_dentry->d_inode, MAY_WRITE, NULL); error = inode_permission(old_dentry->d_inode, MAY_WRITE); if (error) return error; } Loading Loading @@ -2897,7 +2893,7 @@ EXPORT_SYMBOL(page_symlink); EXPORT_SYMBOL(page_symlink_inode_operations); EXPORT_SYMBOL(path_lookup); EXPORT_SYMBOL(vfs_path_lookup); EXPORT_SYMBOL(permission); EXPORT_SYMBOL(inode_permission); EXPORT_SYMBOL(vfs_permission); EXPORT_SYMBOL(file_permission); EXPORT_SYMBOL(unlock_rename); Loading
fs/nfsd/nfsfh.c +1 −1 Original line number Diff line number Diff line Loading @@ -51,7 +51,7 @@ static int nfsd_acceptable(void *expv, struct dentry *dentry) /* make sure parents give x permission to user */ int err; parent = dget_parent(tdentry); err = permission(parent->d_inode, MAY_EXEC, NULL); err = inode_permission(parent->d_inode, MAY_EXEC); if (err < 0) { dput(parent); break; Loading
fs/nfsd/vfs.c +2 −2 Original line number Diff line number Diff line Loading @@ -1953,12 +1953,12 @@ nfsd_permission(struct svc_rqst *rqstp, struct svc_export *exp, return 0; /* This assumes NFSD_MAY_{READ,WRITE,EXEC} == MAY_{READ,WRITE,EXEC} */ err = permission(inode, acc & (MAY_READ|MAY_WRITE|MAY_EXEC), NULL); err = inode_permission(inode, acc & (MAY_READ|MAY_WRITE|MAY_EXEC)); /* Allow read access to binaries even when mode 111 */ if (err == -EACCES && S_ISREG(inode->i_mode) && acc == (NFSD_MAY_READ | NFSD_MAY_OWNER_OVERRIDE)) err = permission(inode, MAY_EXEC, NULL); err = inode_permission(inode, MAY_EXEC); return err? nfserrno(err) : 0; } Loading
fs/utimes.c +1 −1 Original line number Diff line number Diff line Loading @@ -96,7 +96,7 @@ static int utimes_common(struct path *path, struct timespec *times) goto mnt_drop_write_and_out; if (!is_owner_or_cap(inode)) { error = permission(inode, MAY_WRITE, NULL); error = inode_permission(inode, MAY_WRITE); if (error) goto mnt_drop_write_and_out; } Loading