aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Rosenberg <drosen@google.com>2017-02-14 20:47:17 -0800
committerMister Oyster <oysterized@gmail.com>2017-04-13 12:32:22 +0200
commit4a0cf469582fbe2fab9af5f57b8f23ae508b1b20 (patch)
treedb11b7d1380227132c77a6bec1be3163b6e20fae
parent89650c4f0f496685c71d0ec67b891bfcdb697546 (diff)
ANDROID: sdcardfs: Fix incorrect hash
This adds back the hash calculation removed as part of the previous patch, as it is in fact necessary. Signed-off-by: Daniel Rosenberg <drosen@google.com> Bug: 35307857 Change-Id: Ie607332bcf2c5d2efdf924e4060ef3f576bf25dc
-rwxr-xr-xfs/sdcardfs/lookup.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/sdcardfs/lookup.c b/fs/sdcardfs/lookup.c
index 15b586e6e..08df46036 100755
--- a/fs/sdcardfs/lookup.c
+++ b/fs/sdcardfs/lookup.c
@@ -226,6 +226,7 @@ static struct dentry *__sdcardfs_lookup(struct dentry *dentry,
struct dentry *lower_dentry;
const struct qstr *name;
struct path lower_path;
+ struct qstr dname;
struct sdcardfs_sb_info *sbi;
sbi = SDCARDFS_SB(dentry->d_sb);
@@ -311,11 +312,14 @@ static struct dentry *__sdcardfs_lookup(struct dentry *dentry,
goto out;
/* instatiate a new negative dentry */
- lower_dentry = d_lookup(lower_dir_dentry, name);
+ dname.name = name->name;
+ dname.len = name->len;
+ dname.hash = full_name_hash(dname.name, dname.len);
+ lower_dentry = d_lookup(lower_dir_dentry, &dname);
if (lower_dentry)
goto setup_lower;
- lower_dentry = d_alloc(lower_dir_dentry, name);
+ lower_dentry = d_alloc(lower_dir_dentry, &dname);
if (!lower_dentry) {
err = -ENOMEM;
goto out;