Message ID | 162267275227.2375284.10086521959797919134.stgit@locust (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | xfs: clean up incore inode walk functions | expand |
On Wed, Jun 02, 2021 at 03:25:52PM -0700, Darrick J. Wong wrote: > From: Darrick J. Wong <djwong@kernel.org> > > 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> > --- > fs/xfs/xfs_icache.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) Makes sense. Reviewed-by: Dave Chinner <dchinner@redhat.com>
diff --git a/fs/xfs/xfs_icache.c b/fs/xfs/xfs_icache.c index 5ca5bd2ee5ae..94dba5c1b98d 100644 --- a/fs/xfs/xfs_icache.c +++ b/fs/xfs/xfs_icache.c @@ -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);