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
This commit is contained in:
Daniel Roseberg 2017-05-09 13:36:35 -07:00 committed by LuK1337
parent 8a12298ed8
commit 3448c61756
1 changed files with 2 additions and 7 deletions

View File

@ -630,11 +630,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.
@ -708,10 +705,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.