summaryrefslogtreecommitdiff
path: root/fs/ncpfs
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2013-02-11 23:20:37 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2013-02-26 02:46:07 -0500
commit4f522a247bc26d4ab5c8fc406ffffa8b3a77abe3 (patch)
treeed3ca7fb7316f96e7aab23f9563523521bed3259 /fs/ncpfs
parent3592ac444017996f5a8ecf85856af0a8938e8fd1 (diff)
downloadlinux-stable-4f522a247bc26d4ab5c8fc406ffffa8b3a77abe3.tar.gz
linux-stable-4f522a247bc26d4ab5c8fc406ffffa8b3a77abe3.tar.bz2
linux-stable-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/ncpfs')
-rw-r--r--fs/ncpfs/dir.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/fs/ncpfs/dir.c b/fs/ncpfs/dir.c
index 4117e7b377bb..816326093656 100644
--- a/fs/ncpfs/dir.c
+++ b/fs/ncpfs/dir.c
@@ -593,14 +593,10 @@ ncp_fill_cache(struct file *filp, void *dirent, filldir_t filldir,
return 1; /* I'm not sure */
qname.name = __name;
- qname.hash = full_name_hash(qname.name, qname.len);
-
- if (dentry->d_op && dentry->d_op->d_hash)
- if (dentry->d_op->d_hash(dentry, dentry->d_inode, &qname) != 0)
- goto end_advance;
-
- newdent = d_lookup(dentry, &qname);
+ newdent = d_hash_and_lookup(dentry, &qname);
+ if (unlikely(IS_ERR(newdent)))
+ goto end_advance;
if (!newdent) {
newdent = d_alloc(dentry, &qname);
if (!newdent)