提交 201f956e 编写于 作者: A Al Viro

fs/namei.c: don't pass namedata to lookup_dcache()

just the flags...
Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
上级 4ce16ef3
...@@ -1039,7 +1039,7 @@ static void follow_dotdot(struct nameidata *nd) ...@@ -1039,7 +1039,7 @@ static void follow_dotdot(struct nameidata *nd)
* dir->d_inode->i_mutex must be held * dir->d_inode->i_mutex must be held
*/ */
static struct dentry *lookup_dcache(struct qstr *name, struct dentry *dir, static struct dentry *lookup_dcache(struct qstr *name, struct dentry *dir,
struct nameidata *nd, bool *need_lookup) unsigned int flags, bool *need_lookup)
{ {
struct dentry *dentry; struct dentry *dentry;
int error; int error;
...@@ -1050,7 +1050,7 @@ static struct dentry *lookup_dcache(struct qstr *name, struct dentry *dir, ...@@ -1050,7 +1050,7 @@ static struct dentry *lookup_dcache(struct qstr *name, struct dentry *dir,
if (d_need_lookup(dentry)) { if (d_need_lookup(dentry)) {
*need_lookup = true; *need_lookup = true;
} else if (dentry->d_flags & DCACHE_OP_REVALIDATE) { } else if (dentry->d_flags & DCACHE_OP_REVALIDATE) {
error = d_revalidate(dentry, nd ? nd->flags : 0); error = d_revalidate(dentry, flags);
if (unlikely(error <= 0)) { if (unlikely(error <= 0)) {
if (error < 0) { if (error < 0) {
dput(dentry); dput(dentry);
...@@ -1104,7 +1104,7 @@ static struct dentry *__lookup_hash(struct qstr *name, ...@@ -1104,7 +1104,7 @@ static struct dentry *__lookup_hash(struct qstr *name,
bool need_lookup; bool need_lookup;
struct dentry *dentry; struct dentry *dentry;
dentry = lookup_dcache(name, base, nd, &need_lookup); dentry = lookup_dcache(name, base, nd ? nd->flags : 0, &need_lookup);
if (!need_lookup) if (!need_lookup)
return dentry; return dentry;
...@@ -2356,7 +2356,7 @@ static int lookup_open(struct nameidata *nd, struct path *path, ...@@ -2356,7 +2356,7 @@ static int lookup_open(struct nameidata *nd, struct path *path,
bool need_lookup; bool need_lookup;
*opened &= ~FILE_CREATED; *opened &= ~FILE_CREATED;
dentry = lookup_dcache(&nd->last, dir, nd, &need_lookup); dentry = lookup_dcache(&nd->last, dir, nd->flags, &need_lookup);
if (IS_ERR(dentry)) if (IS_ERR(dentry))
return PTR_ERR(dentry); return PTR_ERR(dentry);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册