projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
ccd4bb1
)
cifs: fix dentry hash calculation for case-insensitive mounts
author
Jeff Layton
<
[email protected]
>
Fri, 5 Feb 2010 18:30:36 +0000
(13:30 -0500)
committer
Steve French
<
[email protected]
>
Mon, 8 Feb 2010 17:52:34 +0000
(17:52 +0000)
case-insensitive mounts shouldn't use full_name_hash(). Make sure we
use the parent dentry's d_hash routine when one is set.
Reported-by: Dave Kleikamp <
[email protected]
>
Signed-off-by: Jeff Layton <
[email protected]
>
Signed-off-by: Steve French <
[email protected]
>
fs/cifs/readdir.c
patch
|
blob
|
history
diff --git
a/fs/cifs/readdir.c
b/fs/cifs/readdir.c
index f5618f8cc462912c0e4cd9ed91c9e480ff3fd398..c343b14ba2d3eea99e7de45c7eed87311668e873 100644
(file)
--- a/
fs/cifs/readdir.c
+++ b/
fs/cifs/readdir.c
@@
-77,6
+77,11
@@
cifs_readdir_lookup(struct dentry *parent, struct qstr *name,
cFYI(1, ("For %s", name->name));
+ if (parent->d_op && parent->d_op->d_hash)
+ parent->d_op->d_hash(parent, name);
+ else
+ name->hash = full_name_hash(name->name, name->len);
+
dentry = d_lookup(parent, name);
if (dentry) {
/* FIXME: check for inode number changes? */
@@
-671,8
+676,6
@@
static int cifs_get_name_from_search_buf(struct qstr *pqst,
pqst->name = filename;
pqst->len = len;
}
- pqst->hash = full_name_hash(pqst->name, pqst->len);
-/* cFYI(1, ("filldir on %s",pqst->name)); */
return rc;
}