summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Rosenberg <drosen@google.com>2017-04-20 18:21:50 -0700
committerDaniel Rosenberg <drosen@google.com>2017-04-27 15:09:11 -0700
commit13210c8a591a4a23f9a5fca0e1ac1bb0a2c216bd (patch)
tree29d2b74d83eb6289f532590a8f23ed9df7d38a57
parentbde3a09f83faf7d8da72a5f924e829d7f1012d36 (diff)
downloadx86_64-13210c8a591a4a23f9a5fca0e1ac1bb0a2c216bd.tar.gz
Revert "Revert "Android: sdcardfs: Don't do d_add for lower fs""
This reverts commit ffa75fdb9c408f49b9622b6d55752ed99ff61488. Turns out we just needed the right hash. Signed-off-by: Daniel Rosenberg <drosen@google.com> Bug: 37231161 Change-Id: I6a6de7f7df99ad42b20fa062913b219f64020c31
-rwxr-xr-xfs/sdcardfs/lookup.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/fs/sdcardfs/lookup.c b/fs/sdcardfs/lookup.c
index 4eb2f19e84d0..e1d3f104beb1 100755
--- a/fs/sdcardfs/lookup.c
+++ b/fs/sdcardfs/lookup.c
@@ -373,17 +373,15 @@ put_name:
lower_dentry = d_hash_and_lookup(lower_dir_dentry, &dname);
if (IS_ERR(lower_dentry))
return lower_dentry;
- if (lower_dentry)
- goto setup_lower;
-
- lower_dentry = d_alloc(lower_dir_dentry, &dname);
if (!lower_dentry) {
- err = -ENOMEM;
+ /* We called vfs_path_lookup earlier, and did not get a negative
+ * dentry then. Don't confuse the lower filesystem by forcing
+ * one on it now...
+ */
+ err = -ENOENT;
goto out;
}
- d_add(lower_dentry, NULL); /* instantiate and hash */
-setup_lower:
lower_path.dentry = lower_dentry;
lower_path.mnt = mntget(lower_dir_mnt);
sdcardfs_set_lower_path(dentry, &lower_path);