linux/fs/xfs/scrub
Darrick J. Wong 634d4a79e7 xfs: accumulate iextent records when checking bmap
Currently, the bmap scrubber checks file fork mappings individually.  In
the case that the file uses multiple mappings to a single contiguous
piece of space, the scrubber repeatedly locks the AG to check the
existence of a reverse mapping that overlaps this file mapping.  If the
reverse mapping starts before or ends after the mapping we're checking,
it will also crawl around in the bmbt checking correspondence for
adjacent extents.

This is not very time efficient because it does the crawling while
holding the AGF buffer, and checks the middle mappings multiple times.
Instead, create a custom iextent record iterator function that combines
multiple adjacent allocated mappings into one large incore bmbt record.
This is feasible because the incore bmbt record length is 64-bits wide.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
2023-04-11 19:00:24 -07:00
..
agheader_repair.c xfs: update copyright years for scrub/ files 2023-04-11 18:59:57 -07:00
agheader.c xfs: teach scrub to check for sole ownership of metadata objects 2023-04-11 19:00:15 -07:00
alloc.c xfs: ensure that all metadata and data blocks are not cow staging extents 2023-04-11 19:00:12 -07:00
attr.c xfs: update copyright years for scrub/ files 2023-04-11 18:59:57 -07:00
attr.h xfs: update copyright years for scrub/ files 2023-04-11 18:59:57 -07:00
bitmap.c xfs: update copyright years for scrub/ files 2023-04-11 18:59:57 -07:00
bitmap.h xfs: update copyright years for scrub/ files 2023-04-11 18:59:57 -07:00
bmap.c xfs: accumulate iextent records when checking bmap 2023-04-11 19:00:24 -07:00
btree.c xfs: teach scrub to check for sole ownership of metadata objects 2023-04-11 19:00:15 -07:00
btree.h xfs: always scrub record/key order of interior records 2023-04-11 19:00:09 -07:00
common.c xfs: don't take the MMAPLOCK when scrubbing file metadata 2023-04-11 19:00:22 -07:00
common.h xfs: retain the AGI when we can't iget an inode to scrub the core 2023-04-11 19:00:22 -07:00
dabtree.c xfs: scrub should use ECHRNG to signal that the drain is needed 2023-04-11 19:00:00 -07:00
dabtree.h xfs: update copyright years for scrub/ files 2023-04-11 18:59:57 -07:00
dir.c xfs: manage inode DONTCACHE status at irele time 2023-04-11 19:00:20 -07:00
fscounters.c xfs: minimize overhead of drain wakeups by using jump labels 2023-04-11 18:59:59 -07:00
health.c xfs: allow queued AG intents to drain before scrubbing 2023-04-11 18:59:58 -07:00
health.h xfs: update copyright years for scrub/ files 2023-04-11 18:59:57 -07:00
ialloc.c xfs: teach scrub to check for sole ownership of metadata objects 2023-04-11 19:00:15 -07:00
inode.c xfs: don't take the MMAPLOCK when scrubbing file metadata 2023-04-11 19:00:22 -07:00
parent.c xfs: manage inode DONTCACHE status at irele time 2023-04-11 19:00:20 -07:00
quota.c xfs: minimize overhead of drain wakeups by using jump labels 2023-04-11 18:59:59 -07:00
readdir.c xfs: streamline the directory iteration code for scrub 2023-04-11 19:00:17 -07:00
readdir.h xfs: streamline the directory iteration code for scrub 2023-04-11 19:00:17 -07:00
refcount.c xfs: ensure that all metadata and data blocks are not cow staging extents 2023-04-11 19:00:12 -07:00
repair.c xfs: scrub should use ECHRNG to signal that the drain is needed 2023-04-11 19:00:00 -07:00
repair.h xfs: update copyright years for scrub/ files 2023-04-11 18:59:57 -07:00
rmap.c xfs: teach scrub to check for sole ownership of metadata objects 2023-04-11 19:00:15 -07:00
rtbitmap.c xfs: update copyright years for scrub/ files 2023-04-11 18:59:57 -07:00
scrub.c xfs: manage inode DONTCACHE status at irele time 2023-04-11 19:00:20 -07:00
scrub.h xfs: teach scrub to check for sole ownership of metadata objects 2023-04-11 19:00:15 -07:00
symlink.c xfs: update copyright years for scrub/ files 2023-04-11 18:59:57 -07:00
trace.c xfs: update copyright years for scrub/ files 2023-04-11 18:59:57 -07:00
trace.h xfs: scrub should use ECHRNG to signal that the drain is needed 2023-04-11 19:00:00 -07:00
xfs_scrub.h xfs: update copyright years for scrub/ files 2023-04-11 18:59:57 -07:00