diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2013-02-12 05:20:37 +0100 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-02-26 08:46:07 +0100 |
commit | 4f522a247bc26d4ab5c8fc406ffffa8b3a77abe3 (patch) | |
tree | ed3ca7fb7316f96e7aab23f9563523521bed3259 /fs/cifs/readdir.c | |
parent | 9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate() (diff) | |
download | linux-4f522a247bc26d4ab5c8fc406ffffa8b3a77abe3.tar.xz linux-4f522a247bc26d4ab5c8fc406ffffa8b3a77abe3.zip |
d_hash_and_lookup(): export, switch open-coded instances
* calling conventions change - ERR_PTR() is returned on ->d_hash() errors;
NULL is just for dcache miss now.
* exported, open-coded instances in ncpfs and cifs converted.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/cifs/readdir.c')
-rw-r--r-- | fs/cifs/readdir.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c index 7255b0c7aa7e..df40cc5fd13a 100644 --- a/fs/cifs/readdir.c +++ b/fs/cifs/readdir.c @@ -82,12 +82,10 @@ cifs_prime_dcache(struct dentry *parent, struct qstr *name, cFYI(1, "%s: for %s", __func__, name->name); - if (parent->d_op && parent->d_op->d_hash) - parent->d_op->d_hash(parent, parent->d_inode, name); - else - name->hash = full_name_hash(name->name, name->len); + dentry = d_hash_and_lookup(parent, name); + if (unlikely(IS_ERR(dentry))) + return; - dentry = d_lookup(parent, name); if (dentry) { int err; |