summaryrefslogtreecommitdiffstats
path: root/fs/cifs/readdir.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2013-02-12 05:20:37 +0100
committerAl Viro <viro@zeniv.linux.org.uk>2013-02-26 08:46:07 +0100
commit4f522a247bc26d4ab5c8fc406ffffa8b3a77abe3 (patch)
treeed3ca7fb7316f96e7aab23f9563523521bed3259 /fs/cifs/readdir.c
parent9p: switch v9fs_set_create_acl() to inode+fid, do it before d_instantiate() (diff)
downloadlinux-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.c8
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;