]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
gfs2: simplify the logic in gfs2_evict_inode
authorBob Peterson <rpeterso@redhat.com>
Wed, 16 Sep 2020 13:50:44 +0000 (08:50 -0500)
committerAndreas Gruenbacher <agruenba@redhat.com>
Wed, 14 Oct 2020 21:54:42 +0000 (23:54 +0200)
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>
fs/gfs2/super.c

index ba31952e21b9f269d85534161e204e70e541268e..3d9daac44e1c8027d0fb26642d68a5a9d5994b16 100644 (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;
-
-       ret = evict_unlinked_inode(inode);
-       goto out_unlock;
-
-out_truncate:
-       ret = evict_linked_inode(inode);
+       if (ret == SHOULD_DELETE_DINODE)
+               ret = evict_unlinked_inode(inode);
+       else
+               ret = evict_linked_inode(inode);
 
-out_unlock:
        if (gfs2_rs_active(&ip->i_res))
                gfs2_rs_deltree(&ip->i_res);