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:
Daniel Rosenberg 2017-04-20 18:05:02 -07:00 committed by Amit Pundir
parent 9b806aafea
commit b56c6fe517

View file

@ -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