linux/fs/xfs/scrub
Darrick J. Wong 1e59fdb7d6 xfs: don't call xchk_bmap_check_rmaps for btree-format file forks
The logic at the end of xchk_bmap_want_check_rmaps tries to detect a
file fork that has been zapped by what will become the online inode
repair code.  Zapped forks are in FMT_EXTENTS with zero extents, and
some sort of hint that there's supposed to be data somewhere in the
filesystem.

Unfortunately, the inverted logic here is confusing and has the effect
that we always call xchk_bmap_check_rmaps for FMT_BTREE forks.  This is
horribly inefficient and unnecessary, so invert the logic to get rid of
this performance problem.  This has caused 8h delays in generic/333 and
generic/334.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
2023-04-11 19:00:26 -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: don't call xchk_bmap_check_rmaps for btree-format file forks 2023-04-11 19:00:26 -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