fs: move permission check back into __lookup_hash

The caller that didn't need it is gone.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Christoph Hellwig 2010-10-06 10:47:47 +02:00 committed by Al Viro
parent 72e58063d6
commit 81fca44400
1 changed files with 4 additions and 10 deletions

View File

@ -1121,11 +1121,13 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt,
static struct dentry *__lookup_hash(struct qstr *name, static struct dentry *__lookup_hash(struct qstr *name,
struct dentry *base, struct nameidata *nd) struct dentry *base, struct nameidata *nd)
{ {
struct inode *inode = base->d_inode;
struct dentry *dentry; struct dentry *dentry;
struct inode *inode;
int err; int err;
inode = base->d_inode; err = exec_permission(inode);
if (err)
return ERR_PTR(err);
/* /*
* See if the low-level filesystem might want * See if the low-level filesystem might want
@ -1161,11 +1163,6 @@ out:
*/ */
static struct dentry *lookup_hash(struct nameidata *nd) static struct dentry *lookup_hash(struct nameidata *nd)
{ {
int err;
err = exec_permission(nd->path.dentry->d_inode);
if (err)
return ERR_PTR(err);
return __lookup_hash(&nd->last, nd->path.dentry, nd); return __lookup_hash(&nd->last, nd->path.dentry, nd);
} }
@ -1213,9 +1210,6 @@ struct dentry *lookup_one_len(const char *name, struct dentry *base, int len)
if (err) if (err)
return ERR_PTR(err); return ERR_PTR(err);
err = exec_permission(base->d_inode);
if (err)
return ERR_PTR(err);
return __lookup_hash(&this, base, NULL); return __lookup_hash(&this, base, NULL);
} }