linux/fs/xfs/scrub
Darrick J. Wong 04f0c3269b xfs: check rt summary file geometry more thoroughly
I forgot that the xfs_mount tracks the size and number of levels in the
realtime summary file, and that the rt summary file can have more blocks
mapped to the data fork than m_rsumsize implies if growfsrt fails.

So.  Add to the rtsummary scrubber an explicit check that all the
summary geometry values are correct, then adjust the rtsummary i_size
checks to allow for the growfsrt failure case.  Finally, flag post-eof
blocks in the summary file.

While we're at it, split the extent map checking so that we only call
xfs_bmapi_read once per extent instead of once per rtsummary block.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
2023-12-15 10:03:41 -08:00
..
agb_bitmap.c xfs: move the per-AG datatype bitmaps to separate files 2023-12-15 10:03:30 -08:00
agb_bitmap.h xfs: move the per-AG datatype bitmaps to separate files 2023-12-15 10:03:30 -08:00
agheader_repair.c xfs: roll the scrub transaction after completing a repair 2023-12-15 10:03:31 -08:00
agheader.c xfs: teach scrub to check for sole ownership of metadata objects 2023-04-11 19:00:15 -07:00
alloc_repair.c xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
alloc.c xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
attr.c xfs: don't load local xattr values during scrub 2023-04-11 19:00:35 -07:00
attr.h xfs: check used space of shortform xattr structures 2023-04-11 19:00:33 -07:00
bitmap.c xfs: move the per-AG datatype bitmaps to separate files 2023-12-15 10:03:30 -08:00
bitmap.h xfs: move the per-AG datatype bitmaps to separate files 2023-12-15 10:03:30 -08:00
bmap_repair.c xfs: repair inode fork block mapping data structures 2023-12-15 10:03:39 -08:00
bmap.c xfs: repair inode fork block mapping data structures 2023-12-15 10:03:39 -08:00
btree.c xfs: teach scrub to check for sole ownership of metadata objects 2023-04-11 19:00:15 -07:00
btree.h overflow: Add struct_size_t() helper 2023-05-26 13:52:19 -07:00
common.c xfs: abort directory parent scrub scans if we encounter a zapped directory 2023-12-15 10:03:37 -08:00
common.h xfs: repair inode fork block mapping data structures 2023-12-15 10:03:39 -08:00
cow_repair.c xfs: repair problems in CoW forks 2023-12-15 10:03:40 -08: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: abort directory parent scrub scans if we encounter a zapped directory 2023-12-15 10:03:37 -08:00
fsb_bitmap.h xfs: reintroduce reaping of file metadata blocks to xrep_reap_extents 2023-12-15 10:03:38 -08:00
fscounters.c xfs: move the xfs_rtbitmap.c declarations to xfs_rtbitmap.h 2023-10-17 16:24:22 -07:00
health.c xfs: set inode sick state flags when we zap either ondisk fork 2023-12-15 10:03:35 -08:00
health.h xfs: set inode sick state flags when we zap either ondisk fork 2023-12-15 10:03:35 -08:00
ialloc_repair.c xfs: repair inode btrees 2023-12-15 10:03:32 -08:00
ialloc.c xfs: repair inode btrees 2023-12-15 10:03:32 -08:00
inode_repair.c xfs: zap broken inode forks 2023-12-15 10:03:37 -08:00
inode.c xfs: repair inode records 2023-12-15 10:03:36 -08:00
newbt.c xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
newbt.h xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
off_bitmap.h xfs: repair problems in CoW forks 2023-12-15 10:03:40 -08:00
parent.c xfs: abort directory parent scrub scans if we encounter a zapped directory 2023-12-15 10:03:37 -08:00
quota.c xfs: wrap ilock/iunlock operations on sc->ip 2023-08-10 07:48:08 -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
reap.c xfs: repair problems in CoW forks 2023-12-15 10:03:40 -08:00
reap.h xfs: reintroduce reaping of file metadata blocks to xrep_reap_extents 2023-12-15 10:03:38 -08:00
refcount_repair.c xfs: repair refcount btrees 2023-12-15 10:03:33 -08:00
refcount.c xfs: repair refcount btrees 2023-12-15 10:03:33 -08:00
repair.c xfs: refactor repair forcing tests into a repair.c helper 2023-12-15 10:03:39 -08:00
repair.h xfs: repair problems in CoW forks 2023-12-15 10:03:40 -08:00
rmap.c xfs: move the per-AG datatype bitmaps to separate files 2023-12-15 10:03:30 -08:00
rtbitmap.c xfs: check rt bitmap file geometry more thoroughly 2023-12-15 10:03:41 -08:00
rtsummary.c xfs: check rt summary file geometry more thoroughly 2023-12-15 10:03:41 -08:00
scrub.c xfs: repair problems in CoW forks 2023-12-15 10:03:40 -08:00
scrub.h xfs: repair inode btrees 2023-12-15 10:03:32 -08:00
stats.c xfs: only call xchk_stats_merge after validating scrub inputs 2023-09-12 10:31:08 -07:00
stats.h xfs: track usage statistics of online fsck 2023-08-10 07:48:07 -07:00
symlink.c xfs: set inode sick state flags when we zap either ondisk fork 2023-12-15 10:03:35 -08:00
trace.c xfs: use accessor functions for summary info words 2023-10-18 16:53:00 -07:00
trace.h xfs: repair problems in CoW forks 2023-12-15 10:03:40 -08:00
xfarray.c xfs: improve xfarray quicksort pivot 2023-08-10 07:48:07 -07:00
xfarray.h xfs: repair free space btrees 2023-12-15 10:03:32 -08:00
xfile.c xfs: Remove duplicate include 2023-10-12 10:14:45 +05:30
xfile.h xfs: cache pages used for xfarray quicksort convergence 2023-08-10 07:48:06 -07:00
xfs_scrub.h xfs: update copyright years for scrub/ files 2023-04-11 18:59:57 -07:00