aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Roseberg <drosen@google.com>2017-05-09 13:36:35 -0700
committerMister Oyster <oysterized@gmail.com>2017-05-10 18:00:46 +0200
commit34fb8d05322bd09a7a79bf6e9a40e846368947e7 (patch)
treebca94357d39aac00299941fbeb50971996ed6569
parent4fa771e0159491dd1b0bc0ab0a30fa50270518c7 (diff)
ANDROID: sdcardfs: Don't iput if we didn't igrab
If we fail to get top, top is either NULL, or igrab found that we're in the process of freeing that inode, and did not grab it. Either way, we didn't grab it, and have no business putting it. Signed-off-by: Daniel Rosenberg <drosen@google.com> Bug: 38117720 Change-Id: Ie2f587483b9abb5144263156a443e89bc69b767b
-rwxr-xr-xfs/sdcardfs/inode.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/fs/sdcardfs/inode.c b/fs/sdcardfs/inode.c
index 365d2871a..882615657 100755
--- a/fs/sdcardfs/inode.c
+++ b/fs/sdcardfs/inode.c
@@ -631,11 +631,8 @@ static int sdcardfs_permission(struct vfsmount *mnt, struct inode *inode, int ma
struct inode tmp;
struct inode *top = grab_top(SDCARDFS_I(inode));
- if (!top) {
- release_top(SDCARDFS_I(inode));
- WARN(1, "Top value was null!\n");
+ if (!top)
return -EINVAL;
- }
/*
* Permission check on sdcardfs inode.
@@ -709,10 +706,8 @@ static int sdcardfs_setattr(struct vfsmount *mnt, struct dentry *dentry, struct
inode = dentry->d_inode;
top = grab_top(SDCARDFS_I(inode));
- if (!top) {
- release_top(SDCARDFS_I(inode));
+ if (!top)
return -EINVAL;
- }
/*
* Permission check on sdcardfs inode.