On Wed, Mar 27, 2024 at 12:03:09PM +0100, Christoph Hellwig wrote: > __xfs_bunmapi is a bit of an odd place to lock the rtbitmap and rtsummary > inodes given that it is very high level code. While this only looks ugly > right now, it will become a problem when supporting delayed allocations > for RT inodes as __xfs_bunmapi might end up deleting only delalloc extents > and thus never unlock the rt inodes. > > Move the locking into xfs_bmap_del_extent_real just before the call to > xfs_rtfree_blocks instead and use a new flag in the transaction to ensure > that the locking happens only once. > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> Not a great fan of using transaction flags for object state, but I don't have a better way of doing this. Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx> -- Dave Chinner david@xxxxxxxxxxxxx