mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-10 21:07:02 +09:00
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:
committed by
Mark Salyzyn
parent
46155cc7bd
commit
4f75c34fee
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user