}
this.hash = end_name_hash(hash);
-- return lookup_hash_it(&this, base, NULL);
-+ return lookup_hash_it(&this, base, it);
+- return lookup_hash_it(&this, base, NULL, NULL);
++ return lookup_hash_it(&this, base, NULL, it);
access:
return ERR_PTR(-EACCES);
}
+static struct dentry *lookup_it(struct inode *inode, struct dentry * dentry)
+{
+ if (inode->i_op->lookup_it)
-+ return inode->i_op->lookup_it(inode, dentry, NULL, 0);
++ return inode->i_op->lookup_it(inode, dentry, NULL, NULL, 0);
+ else
+ return inode->i_op->lookup(inode, dentry);
+
+ int err = 0;
+
+ if (dentry && dentry->d_op && dentry->d_op->d_revalidate_it) {
-+ if (!dentry->d_op->d_revalidate_it(dentry, 0, it) &&
++ if (!dentry->d_op->d_revalidate_it(dentry, 0, NULL, it) &&
+ !d_invalidate(dentry)) {
+ dput(dentry);
+ err = -EINVAL;
extern struct dentry * lookup_one_len(const char *, struct dentry *, int);
+extern struct dentry * lookup_one_len_it(const char *, struct dentry *, int,
+ struct lookup_intent *);
- extern struct dentry * lookup_hash(struct qstr *, struct dentry *);
+ extern struct dentry * lookup_hash(struct qstr *, struct dentry *, struct nameidata *);
#define user_path_walk(name,nd) __user_walk(name, LOOKUP_FOLLOW|LOOKUP_POSITIVE, nd)
#define user_path_walk_link(name,nd) __user_walk(name, LOOKUP_POSITIVE, nd)
@@ -1382,6 +1390,8 @@ extern ino_t iunique(struct super_block