diff options
| author | Daniel Rosenberg <drosen@google.com> | 2017-04-20 12:13:31 -0700 |
|---|---|---|
| committer | Daniel Rosenberg <drosen@google.com> | 2017-04-20 12:14:00 -0700 |
| commit | 53491d941217d00fdddda6b8b755ced36676f079 (patch) | |
| tree | cffa053005e9466fb2833930e178175f564d1988 /fs | |
| parent | 0ed8679d0dbb02598c60cd4bd933f911bd636d01 (diff) | |
Revert "Android: sdcardfs: Don't do d_add for lower fs"
This reverts commit e92f72194da2e690d85fc736661d3f0d96825c57.
This change caused issues for sdcardfs on top of vfat
Signed-off-by: Daniel Rosenberg <drosen@google.com>
Change-Id: Ife2ac6d9af40e4ddb95b7261e1dad4d7817e3779
Diffstat (limited to 'fs')
| -rw-r--r-- | 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 08f62fb3e075..a0f221501b4c 100644 --- 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); |
