xfs: clean up inode state flag tests in xfs_blockgc_igrab
authorDarrick J. Wong <djwong@kernel.org>
Wed, 2 Jun 2021 06:01:44 +0000 (23:01 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Thu, 3 Jun 2021 22:56:03 +0000 (15:56 -0700)
Clean up the definition of which inode states are not eligible for
speculative preallocation garbage collecting by creating a private
#define.  The deferred inactivation patchset will add two new entries to
the set of flags-to-ignore, so we want the definition not to end up a
cluttered mess.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
fs/xfs/xfs_icache.c

index 5ca5bd2..94dba5c 100644 (file)
@@ -1533,6 +1533,10 @@ xfs_blockgc_start(
                xfs_blockgc_queue(pag);
 }
 
+/* Don't try to run block gc on an inode that's in any of these states. */
+#define XFS_BLOCKGC_NOGRAB_IFLAGS      (XFS_INEW | \
+                                        XFS_IRECLAIMABLE | \
+                                        XFS_IRECLAIM)
 /*
  * Decide if the given @ip is eligible for garbage collection of speculative
  * preallocations, and grab it if so.  Returns true if it's ready to go or
@@ -1551,8 +1555,7 @@ xfs_blockgc_igrab(
        if (!ip->i_ino)
                goto out_unlock_noent;
 
-       /* avoid new or reclaimable inodes. Leave for reclaim code to flush */
-       if (__xfs_iflags_test(ip, XFS_INEW | XFS_IRECLAIMABLE | XFS_IRECLAIM))
+       if (ip->i_flags & XFS_BLOCKGC_NOGRAB_IFLAGS)
                goto out_unlock_noent;
        spin_unlock(&ip->i_flags_lock);