Skip to content
Snippets Groups Projects
Commit b8414cf7 authored by Daniel Rosenberg's avatar Daniel Rosenberg Committed by Patrick Tjin
Browse files

Android: sdcardfs: Don't do d_add for lower fs


For file based encryption, ext4 explicitly does not
create negative dentries for encrypted files. If you
force one over it, the decrypted file will be hidden
until the cache is cleared. Instead, just fail out.

Signed-off-by: default avatarDaniel Rosenberg <drosen@google.com>
Bug: 37231161
Change-Id: Id2a9708dfa75e1c22f89915c529789caadd2ca4b
parent 9ea26b4c
No related branches found
No related tags found
No related merge requests found
...@@ -368,17 +368,15 @@ put_name: ...@@ -368,17 +368,15 @@ put_name:
dname.len = name->len; dname.len = name->len;
dname.hash = full_name_hash(dname.name, dname.len); dname.hash = full_name_hash(dname.name, dname.len);
lower_dentry = d_lookup(lower_dir_dentry, &dname); 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) { 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; goto out;
} }
d_add(lower_dentry, NULL); /* instantiate and hash */
setup_lower:
lower_path.dentry = lower_dentry; lower_path.dentry = lower_dentry;
lower_path.mnt = mntget(lower_dir_mnt); lower_path.mnt = mntget(lower_dir_mnt);
sdcardfs_set_lower_path(dentry, &lower_path); sdcardfs_set_lower_path(dentry, &lower_path);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment