Commit b8e12e35 authored by Andreas Gruenbacher's avatar Andreas Gruenbacher

gfs2: gfs2_inode_lookup cleanup

In gfs2_inode_lookup, once the inode has been looked up, we check if the
inode generation (no_formal_ino) is the one we're looking for.  If it
isn't and the inode wasn't in the inode cache, we discard the newly
looked up inode.  This is unnecessary, complicates the code, and makes
future changes to gfs2_inode_lookup harder, so change the code to retain
newly looked up inodes instead.
Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
parent e11b02df
...@@ -208,20 +208,15 @@ struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned int type, ...@@ -208,20 +208,15 @@ struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned int type,
gfs2_glock_dq_uninit(&i_gh); gfs2_glock_dq_uninit(&i_gh);
gfs2_set_iop(inode); gfs2_set_iop(inode);
unlock_new_inode(inode);
} }
if (no_formal_ino && ip->i_no_formal_ino && if (no_formal_ino && ip->i_no_formal_ino &&
no_formal_ino != ip->i_no_formal_ino) { no_formal_ino != ip->i_no_formal_ino) {
error = -ESTALE;
if (inode->i_state & I_NEW)
goto fail;
iput(inode); iput(inode);
return ERR_PTR(error); return ERR_PTR(-ESTALE);
} }
if (inode->i_state & I_NEW)
unlock_new_inode(inode);
return inode; return inode;
fail: fail:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment