From: Andreas Gruenbacher Subject: Remove redundant may_create() argument Signed-off-by: Andreas Gruenbacher --- fs/namei.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) --- a/fs/namei.c +++ b/fs/namei.c @@ -1462,16 +1462,15 @@ static int may_delete(struct inode *dir, * 3. We should have write and exec permissions on dir * 4. We can't do it if dir is immutable (done in permission()) */ -static inline int may_create(struct inode *dir, struct dentry *child, - struct nameidata2 *nd) +static inline int may_create(struct nameidata2 *nd, struct dentry *child) { if (child->d_inode) return -EEXIST; - if (IS_DEADDIR(dir)) + if (IS_DEADDIR(nd->dentry->d_inode)) return -ENOENT; if (nd) nd->flags |= LOOKUP_CONTINUE; - return permission(dir,MAY_WRITE | MAY_EXEC, nd); + return permission(nd->dentry->d_inode, MAY_WRITE | MAY_EXEC, nd); } /* @@ -1537,7 +1536,7 @@ void unlock_rename(struct dentry *p1, st int vfs_create(struct nameidata2 *nd, struct dentry *dentry, int mode) { struct inode *dir = nd->dentry->d_inode; - int error = may_create(dir, dentry, nd); + int error = may_create(nd, dentry); if (error) return error; @@ -1883,7 +1882,7 @@ EXPORT_SYMBOL_GPL(lookup_create); int vfs_mknod(struct nameidata2 *nd, struct dentry *dentry, int mode, dev_t dev) { struct inode *dir = nd->dentry->d_inode; - int error = may_create(dir, dentry, nd); + int error = may_create(nd, dentry); if (error) return error; @@ -1963,7 +1962,7 @@ asmlinkage long sys_mknod(const char __u int vfs_mkdir(struct nameidata2 *nd, struct dentry *dentry, int mode) { struct inode *dir = nd->dentry->d_inode; - int error = may_create(dir, dentry, nd); + int error = may_create(nd, dentry); if (error) return error; @@ -2232,7 +2231,7 @@ int vfs_symlink(struct nameidata2 *nd, s const char *oldname, int mode) { struct inode *dir = nd->dentry->d_inode; - int error = may_create(dir, dentry, nd); + int error = may_create(nd, dentry); if (error) return error; @@ -2304,7 +2303,7 @@ int vfs_link(struct nameidata2 *old_nd, if (!inode) return -ENOENT; - error = may_create(dir, new_dentry, new_parent); + error = may_create(new_parent, new_dentry); if (error) return error; @@ -2522,7 +2521,7 @@ int vfs_rename(struct nameidata2 *old_nd return error; if (!new_dentry->d_inode) - error = may_create(new_dir, new_dentry, new_nd); + error = may_create(new_nd, new_dentry); else error = may_delete(new_dir, new_dentry, is_dir); if (error)