ANDROID: sdcardfs: Don't d_drop in d_revalidate
After d_revalidate returns 0, the vfs will call d_invalidate, which will call d_drop itself, along with other cleanup. Bug: 78262592 Change-Id: Idbb30e008c05d62edf2217679cb6a5517d8d1a2c Signed-off-by: Daniel Rosenberg <drosen@google.com>
This commit is contained in:
parent
46155cc7bd
commit
4f75c34fee
1 changed files with 0 additions and 6 deletions
|
@ -51,7 +51,6 @@ static int sdcardfs_d_revalidate(struct dentry *dentry, unsigned int flags)
|
|||
* whether the base obbpath has been changed or not
|
||||
*/
|
||||
if (is_obbpath_invalid(dentry)) {
|
||||
d_drop(dentry);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -65,7 +64,6 @@ static int sdcardfs_d_revalidate(struct dentry *dentry, unsigned int flags)
|
|||
if ((lower_dentry->d_flags & DCACHE_OP_REVALIDATE)) {
|
||||
err = lower_dentry->d_op->d_revalidate(lower_dentry, flags);
|
||||
if (err == 0) {
|
||||
d_drop(dentry);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
@ -73,14 +71,12 @@ static int sdcardfs_d_revalidate(struct dentry *dentry, unsigned int flags)
|
|||
spin_lock(&lower_dentry->d_lock);
|
||||
if (d_unhashed(lower_dentry)) {
|
||||
spin_unlock(&lower_dentry->d_lock);
|
||||
d_drop(dentry);
|
||||
err = 0;
|
||||
goto out;
|
||||
}
|
||||
spin_unlock(&lower_dentry->d_lock);
|
||||
|
||||
if (parent_lower_dentry != lower_cur_parent_dentry) {
|
||||
d_drop(dentry);
|
||||
err = 0;
|
||||
goto out;
|
||||
}
|
||||
|
@ -94,7 +90,6 @@ static int sdcardfs_d_revalidate(struct dentry *dentry, unsigned int flags)
|
|||
}
|
||||
|
||||
if (!qstr_case_eq(&dentry->d_name, &lower_dentry->d_name)) {
|
||||
__d_drop(dentry);
|
||||
err = 0;
|
||||
}
|
||||
|
||||
|
@ -113,7 +108,6 @@ static int sdcardfs_d_revalidate(struct dentry *dentry, unsigned int flags)
|
|||
if (inode) {
|
||||
data = top_data_get(SDCARDFS_I(inode));
|
||||
if (!data || data->abandoned) {
|
||||
d_drop(dentry);
|
||||
err = 0;
|
||||
}
|
||||
if (data)
|
||||
|
|
Loading…
Add table
Reference in a new issue