gfs2: simplify the logic in gfs2_evict_inode

Now that we've factored out the deleted and undeleted dinode cases
in gfs2_evict_inode, we can greatly simplify the logic. Now the
function is easy to read and understand.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
This commit is contained in:
Bob Peterson 2020-09-16 08:50:44 -05:00 committed by Andreas Gruenbacher
parent d90be6ab9a
commit 0a0d9f55c2

View File

@ -1496,16 +1496,11 @@ static void gfs2_evict_inode(struct inode *inode)
ret = evict_should_delete(inode, &gh);
if (ret == SHOULD_DEFER_EVICTION)
goto out;
if (ret == SHOULD_NOT_DELETE_DINODE)
goto out_truncate;
if (ret == SHOULD_DELETE_DINODE)
ret = evict_unlinked_inode(inode);
else
ret = evict_linked_inode(inode);
ret = evict_unlinked_inode(inode);
goto out_unlock;
out_truncate:
ret = evict_linked_inode(inode);
out_unlock:
if (gfs2_rs_active(&ip->i_res))
gfs2_rs_deltree(&ip->i_res);