diff options
author | Daniel Rosenberg <drosen@google.com> | 2017-04-20 12:00:30 -0700 |
---|---|---|
committer | Daniel Rosenberg <drosen@google.com> | 2017-04-20 20:06:13 +0000 |
commit | 092f3b68713db09faa160eb7360189b8f468e8f2 (patch) | |
tree | ef789209c21a6aedbe4b5de72b90b6a5b9e26e07 | |
parent | f3125c438fa977fe395b45b5ddbf1c2a401d1322 (diff) | |
download | x86_64-092f3b68713db09faa160eb7360189b8f468e8f2.tar.gz |
Revert "Android: sdcardfs: Don't do d_add for lower fs"
This reverts commit 60df9f12992bc067216078ae756066c5d7c74d87.
This change caused issues for sdcardfs on top of vfat
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Bug: 37231161
Change-Id: Ie56a91fda582af27921cc1a9de7ae19a9a988f2a
-rwxr-xr-x | fs/sdcardfs/lookup.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/fs/sdcardfs/lookup.c b/fs/sdcardfs/lookup.c index 666f9eb41e78..3ac40fead490 100755 --- a/fs/sdcardfs/lookup.c +++ b/fs/sdcardfs/lookup.c @@ -368,15 +368,17 @@ put_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, &dname); 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 one - * on it now... - */ - err = -ENOENT; + err = -ENOMEM; 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); |