ANDROID: sdcardfs: Use filesystem specific hash
We weren't accounting for FS specific hash functions, causing us to miss negative dentries for any FS that had one. Similar to a patch from esdfs commit 75bd25a9476d ("esdfs: support lower's own hash") Signed-off-by: Daniel Rosenberg <drosen@google.com> Change-Id: I32d1ba304d728e0ca2648cacfb4c2e441ae63608
This commit is contained in:
parent
9b806aafea
commit
b56c6fe517
1 changed files with 8 additions and 2 deletions
|
@ -366,8 +366,14 @@ static struct dentry *__sdcardfs_lookup(struct dentry *dentry,
|
|||
/* instatiate a new negative dentry */
|
||||
dname.name = name->name;
|
||||
dname.len = name->len;
|
||||
dname.hash = full_name_hash(lower_dir_dentry, dname.name, dname.len);
|
||||
lower_dentry = d_lookup(lower_dir_dentry, &dname);
|
||||
|
||||
/* See if the low-level filesystem might want
|
||||
* to use its own hash
|
||||
*/
|
||||
lower_dentry = d_hash_and_lookup(lower_dir_dentry, &dname);
|
||||
if (IS_ERR(lower_dentry))
|
||||
return lower_dentry;
|
||||
|
||||
if (!lower_dentry) {
|
||||
/* We called vfs_path_lookup earlier, and did not get a negative
|
||||
* dentry then. Don't confuse the lower filesystem by forcing
|
||||
|
|
Loading…
Reference in a new issue