OSDN Git Service

ANDROID: sdcardfs: Fix incorrect hash
authorDaniel Rosenberg <drosen@google.com>
Wed, 15 Feb 2017 04:47:17 +0000 (20:47 -0800)
committerAmit Pundir <amit.pundir@linaro.org>
Tue, 14 Aug 2018 12:17:11 +0000 (17:47 +0530)
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

fs/sdcardfs/lookup.c

index 0d2cadd..ae8e9b5 100644 (file)
@@ -221,6 +221,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);
@@ -306,11 +307,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(lower_dir_dentry, 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;