ANDROID: sdcardfs: move path_put outside of spinlock
Signed-off-by: Daniel Rosenberg <drosen@google.com> Bug: 35643557 Change-Id: Ib279ebd7dd4e5884d184d67696a93e34993bc1ef
This commit is contained in:
parent
8dbb44c8aa
commit
1a736af098
1 changed files with 6 additions and 1 deletions
|
@ -357,6 +357,8 @@ int is_obbpath_invalid(struct dentry *dent)
|
||||||
struct sdcardfs_dentry_info *di = SDCARDFS_D(dent);
|
struct sdcardfs_dentry_info *di = SDCARDFS_D(dent);
|
||||||
struct sdcardfs_sb_info *sbi = SDCARDFS_SB(dent->d_sb);
|
struct sdcardfs_sb_info *sbi = SDCARDFS_SB(dent->d_sb);
|
||||||
char *path_buf, *obbpath_s;
|
char *path_buf, *obbpath_s;
|
||||||
|
int need_put = 0;
|
||||||
|
struct path lower_path;
|
||||||
|
|
||||||
/* check the base obbpath has been changed.
|
/* check the base obbpath has been changed.
|
||||||
* this routine can check an uninitialized obb dentry as well.
|
* this routine can check an uninitialized obb dentry as well.
|
||||||
|
@ -383,10 +385,13 @@ int is_obbpath_invalid(struct dentry *dent)
|
||||||
}
|
}
|
||||||
|
|
||||||
//unlock_dir(lower_parent);
|
//unlock_dir(lower_parent);
|
||||||
path_put(&di->lower_path);
|
pathcpy(&lower_path, &di->lower_path);
|
||||||
|
need_put = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
spin_unlock(&di->lock);
|
spin_unlock(&di->lock);
|
||||||
|
if (need_put)
|
||||||
|
path_put(&lower_path);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue