OSDN Git Service

gfs2: Partially revert gfs2_inode_lookup change
authorAndreas Gruenbacher <agruenba@redhat.com>
Mon, 5 Dec 2022 21:27:28 +0000 (22:27 +0100)
committerAndreas Gruenbacher <agruenba@redhat.com>
Tue, 6 Dec 2022 15:08:12 +0000 (16:08 +0100)
Commit c412a97cf6c5 changed delete_work_func() to always perform an
inode lookup when gfs2_try_evict() fails.  This doesn't make sense as a
gfs2_try_evict() failure indicates that the inode is likely still in
use.  Revert that change.

Fixes: c412a97cf6c5 ("gfs2: Use TRY lock in gfs2_inode_lookup for UNLINKED inodes")
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/glock.c

index 76432ef..6f2de8c 100644 (file)
@@ -1082,6 +1082,7 @@ static void delete_work_func(struct work_struct *work)
                        if (gfs2_queue_delete_work(gl, 5 * HZ))
                                return;
                }
+               goto out;
        }
 
        inode = gfs2_lookup_by_inum(sdp, no_addr, gl->gl_no_formal_ino,
@@ -1094,6 +1095,7 @@ static void delete_work_func(struct work_struct *work)
                d_prune_aliases(inode);
                iput(inode);
        }
+out:
        gfs2_glock_put(gl);
 }