summaryrefslogtreecommitdiff
path: root/fs/xfs/xfs_icache.c
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2021-08-06 11:05:43 -0700
committerDarrick J. Wong <djwong@kernel.org>2021-08-09 11:13:16 -0700
commita6343e4d9278b3919c809fab9945c4d8f04fadf5 (patch)
tree63ab7374508a4d1580f3251821b2d0f8dc932300 /fs/xfs/xfs_icache.c
parente8d04c2abcebd66bdbacd53bb273d824d4e27080 (diff)
xfs: avoid buffer deadlocks when walking fs inodes
When we're servicing an INUMBERS or BULKSTAT request or running quotacheck, grab an empty transaction so that we can use its inherent recursive buffer locking abilities to detect inode btree cycles without hitting ABBA buffer deadlocks. This patch requires the deferred inode inactivation patchset because xfs_irele cannot directly call xfs_inactive when the iwalk itself has an (empty) transaction. Found by fuzzing an inode btree pointer to introduce a cycle into the tree (xfs/365). Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'fs/xfs/xfs_icache.c')
0 files changed, 0 insertions, 0 deletions