Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] kill nameidata passing to permission(), rename to inode_permission()

Incidentally, the name that gives hundreds of false positives on grep
is not a good idea...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro f419a2e3 30524472

+17 -21
+1 -1
fs/ecryptfs/inode.c
··· 830 830 static int 831 831 ecryptfs_permission(struct inode *inode, int mask) 832 832 { 833 - return permission(ecryptfs_inode_to_lower(inode), mask, NULL); 833 + return inode_permission(ecryptfs_inode_to_lower(inode), mask); 834 834 } 835 835 836 836 /**
+9 -13
fs/namei.c
··· 227 227 return -EACCES; 228 228 } 229 229 230 - int permission(struct inode *inode, int mask, struct nameidata *nd) 230 + int inode_permission(struct inode *inode, int mask) 231 231 { 232 232 int retval; 233 - struct vfsmount *mnt = NULL; 234 - 235 - if (nd) 236 - mnt = nd->path.mnt; 237 233 238 234 if (mask & MAY_WRITE) { 239 235 umode_t mode = inode->i_mode; ··· 289 293 */ 290 294 int vfs_permission(struct nameidata *nd, int mask) 291 295 { 292 - return permission(nd->path.dentry->d_inode, mask, nd); 296 + return inode_permission(nd->path.dentry->d_inode, mask); 293 297 } 294 298 295 299 /** ··· 306 310 */ 307 311 int file_permission(struct file *file, int mask) 308 312 { 309 - return permission(file->f_path.dentry->d_inode, mask, NULL); 313 + return inode_permission(file->f_path.dentry->d_inode, mask); 310 314 } 311 315 312 316 /* ··· 1258 1262 { 1259 1263 int err; 1260 1264 1261 - err = permission(nd->path.dentry->d_inode, MAY_EXEC, nd); 1265 + err = inode_permission(nd->path.dentry->d_inode, MAY_EXEC); 1262 1266 if (err) 1263 1267 return ERR_PTR(err); 1264 1268 return __lookup_hash(&nd->last, nd->path.dentry, nd); ··· 1306 1310 if (err) 1307 1311 return ERR_PTR(err); 1308 1312 1309 - err = permission(base->d_inode, MAY_EXEC, NULL); 1313 + err = inode_permission(base->d_inode, MAY_EXEC); 1310 1314 if (err) 1311 1315 return ERR_PTR(err); 1312 1316 return __lookup_hash(&this, base, NULL); ··· 1396 1400 BUG_ON(victim->d_parent->d_inode != dir); 1397 1401 audit_inode_child(victim->d_name.name, victim, dir); 1398 1402 1399 - error = permission(dir,MAY_WRITE | MAY_EXEC, NULL); 1403 + error = inode_permission(dir, MAY_WRITE | MAY_EXEC); 1400 1404 if (error) 1401 1405 return error; 1402 1406 if (IS_APPEND(dir)) ··· 1433 1437 return -EEXIST; 1434 1438 if (IS_DEADDIR(dir)) 1435 1439 return -ENOENT; 1436 - return permission(dir,MAY_WRITE | MAY_EXEC, nd); 1440 + return inode_permission(dir, MAY_WRITE | MAY_EXEC); 1437 1441 } 1438 1442 1439 1443 /* ··· 2539 2543 * we'll need to flip '..'. 2540 2544 */ 2541 2545 if (new_dir != old_dir) { 2542 - error = permission(old_dentry->d_inode, MAY_WRITE, NULL); 2546 + error = inode_permission(old_dentry->d_inode, MAY_WRITE); 2543 2547 if (error) 2544 2548 return error; 2545 2549 } ··· 2893 2897 EXPORT_SYMBOL(page_symlink_inode_operations); 2894 2898 EXPORT_SYMBOL(path_lookup); 2895 2899 EXPORT_SYMBOL(vfs_path_lookup); 2896 - EXPORT_SYMBOL(permission); 2900 + EXPORT_SYMBOL(inode_permission); 2897 2901 EXPORT_SYMBOL(vfs_permission); 2898 2902 EXPORT_SYMBOL(file_permission); 2899 2903 EXPORT_SYMBOL(unlock_rename);
+1 -1
fs/nfsd/nfsfh.c
··· 51 51 /* make sure parents give x permission to user */ 52 52 int err; 53 53 parent = dget_parent(tdentry); 54 - err = permission(parent->d_inode, MAY_EXEC, NULL); 54 + err = inode_permission(parent->d_inode, MAY_EXEC); 55 55 if (err < 0) { 56 56 dput(parent); 57 57 break;
+2 -2
fs/nfsd/vfs.c
··· 1953 1953 return 0; 1954 1954 1955 1955 /* This assumes NFSD_MAY_{READ,WRITE,EXEC} == MAY_{READ,WRITE,EXEC} */ 1956 - err = permission(inode, acc & (MAY_READ|MAY_WRITE|MAY_EXEC), NULL); 1956 + err = inode_permission(inode, acc & (MAY_READ|MAY_WRITE|MAY_EXEC)); 1957 1957 1958 1958 /* Allow read access to binaries even when mode 111 */ 1959 1959 if (err == -EACCES && S_ISREG(inode->i_mode) && 1960 1960 acc == (NFSD_MAY_READ | NFSD_MAY_OWNER_OVERRIDE)) 1961 - err = permission(inode, MAY_EXEC, NULL); 1961 + err = inode_permission(inode, MAY_EXEC); 1962 1962 1963 1963 return err? nfserrno(err) : 0; 1964 1964 }
+1 -1
fs/utimes.c
··· 96 96 goto mnt_drop_write_and_out; 97 97 98 98 if (!is_owner_or_cap(inode)) { 99 - error = permission(inode, MAY_WRITE, NULL); 99 + error = inode_permission(inode, MAY_WRITE); 100 100 if (error) 101 101 goto mnt_drop_write_and_out; 102 102 }
+1 -1
fs/xattr.c
··· 63 63 return -EPERM; 64 64 } 65 65 66 - return permission(inode, mask, NULL); 66 + return inode_permission(inode, mask); 67 67 } 68 68 69 69 int
+1 -1
include/linux/fs.h
··· 1770 1770 extern sector_t bmap(struct inode *, sector_t); 1771 1771 #endif 1772 1772 extern int notify_change(struct dentry *, struct iattr *); 1773 - extern int permission(struct inode *, int, struct nameidata *); 1773 + extern int inode_permission(struct inode *, int); 1774 1774 extern int generic_permission(struct inode *, int, 1775 1775 int (*check_acl)(struct inode *, int)); 1776 1776
+1 -1
ipc/mqueue.c
··· 638 638 return ERR_PTR(-EINVAL); 639 639 } 640 640 641 - if (permission(dentry->d_inode, oflag2acc[oflag & O_ACCMODE], NULL)) { 641 + if (inode_permission(dentry->d_inode, oflag2acc[oflag & O_ACCMODE])) { 642 642 dput(dentry); 643 643 mntput(mqueue_mnt); 644 644 return ERR_PTR(-EACCES);