linux_dsm_epyc7002/fs/xfs/scrub
Darrick J. Wong 519e5869d5 xfs: bmap scrub should only scrub records once
The inode block mapping scrub function does more work for btree format
extent maps than is absolutely necessary -- first it will walk the bmbt
and check all the entries, and then it will load the incore tree and
check every entry in that tree, possibly for a second time.

Simplify the code and decrease check runtime by separating the two
responsibilities.  The bmbt walk will make sure the incore extent
mappings are loaded, check the shape of the bmap btree (via xchk_btree)
and check that every bmbt record has a corresponding incore extent map;
and the incore extent map walk takes all the responsibility for checking
the mapping records and cross referencing them with other AG metadata.

This enables us to clean up some messy parameter handling and reduce
redundant code.  Rename a few functions to make the split of
responsibilities clearer.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
2019-08-26 17:43:15 -07:00
..
agheader_repair.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
agheader.c xfs: create iterator error codes 2019-07-02 09:40:05 -07:00
alloc.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
attr.c fs: xfs: Remove KM_NOSLEEP and KM_SLEEP. 2019-08-26 12:06:22 -07:00
attr.h xfs: only allocate memory for scrubbing attributes when we need it 2019-07-05 10:29:56 -07:00
bitmap.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
bitmap.h xfs: repair the AGFL 2018-08-10 11:44:31 -07:00
bmap.c xfs: bmap scrub should only scrub records once 2019-08-26 17:43:15 -07:00
btree.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
btree.h xfs: const-ify xfs_owner_info arguments 2018-12-12 08:47:16 -08:00
common.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
common.h xfs: add online scrub for superblock counters 2019-04-30 08:19:13 -07:00
dabtree.c xfs: Fix possible null-pointer dereferences in xchk_da_btree_block_check_sibling() 2019-07-30 11:28:20 -07:00
dabtree.h xfs: fix indentation and other whitespace problems in scrub/repair 2018-07-23 09:08:01 -07:00
dir.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
fscounters.c fs: xfs: Remove KM_NOSLEEP and KM_SLEEP. 2019-08-26 12:06:22 -07:00
health.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
health.h xfs: scrub should only cross-reference with healthy btrees 2019-04-16 10:01:57 -07:00
ialloc.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
inode.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
parent.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
quota.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
refcount.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
repair.c xfs: create iterator error codes 2019-07-02 09:40:05 -07:00
repair.h xfs: hoist the already_fixed variable to the scrub context 2019-04-16 10:01:57 -07:00
rmap.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
rtbitmap.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
scrub.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
scrub.h xfs: add online scrub for superblock counters 2019-04-30 08:19:13 -07:00
symlink.c fs: xfs: Remove KM_NOSLEEP and KM_SLEEP. 2019-08-26 12:06:22 -07:00
trace.c xfs: remove unused header files 2019-06-28 19:30:43 -07:00
trace.h xfs: add online scrub for superblock counters 2019-04-30 08:19:13 -07:00
xfs_scrub.h xfs: convert to SPDX license tags 2018-06-06 14:17:53 -07:00