On Thu, Jan 14, 2021 at 01:54:53PM -0800, Darrick J. Wong wrote: > On Wed, Jan 13, 2021 at 03:43:57PM +0100, Christoph Hellwig wrote: > > On Mon, Jan 11, 2021 at 03:22:52PM -0800, Darrick J. Wong wrote: > > > From: Darrick J. Wong <djwong@xxxxxxxxxx> > > > > > > Don't stall the cowblocks scan on a locked inode if we possibly can. > > > We'd much rather the background scanner keep moving. > > > > Wouldn't it make more sense to move the logic to ignore the -EAGAIN > > for not-sync calls into xfs_inode_walk_ag? > > I'm not sure what you're asking here? _free_cowblocks only returns > EAGAIN for sync calls. Locking failure for a not-sync call results in a > return 0, which means that _walk_ag just moves on to the next inode. What I mean is: - always return -EAGAIN when taking the locks fails - don't exit early on -EAGAIN in xfs_inode_walk at least for sync calls, although thinking loud I see no good reason to exit early even for non-sync invocations