From: Christoph Hellwig Date: Wed, 6 Oct 2010 08:47:47 +0000 (+0200) Subject: fs: move permission check back into __lookup_hash X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=81fca444001e5a41ab80ce8cf9a5734c00ec6546;p=mv-sheeva.git fs: move permission check back into __lookup_hash The caller that didn't need it is gone. Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro --- diff --git a/fs/namei.c b/fs/namei.c index 24896e83356..f1ef97dbc6c 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -1121,11 +1121,13 @@ int vfs_path_lookup(struct dentry *dentry, struct vfsmount *mnt, static struct dentry *__lookup_hash(struct qstr *name, struct dentry *base, struct nameidata *nd) { + struct inode *inode = base->d_inode; struct dentry *dentry; - struct inode *inode; int err; - inode = base->d_inode; + err = exec_permission(inode); + if (err) + return ERR_PTR(err); /* * See if the low-level filesystem might want @@ -1161,11 +1163,6 @@ out: */ 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); } @@ -1213,9 +1210,6 @@ struct dentry *lookup_one_len(const char *name, struct dentry *base, int len) if (err) return ERR_PTR(err); - err = exec_permission(base->d_inode); - if (err) - return ERR_PTR(err); return __lookup_hash(&this, base, NULL); }