linux/fs/xfs/scrub
Darrick J. Wong 5e777b62b0 xfs: bmap scrubber should do rmap xref with bmap for sparse files
When we're scanning an extent mapping inode fork, ensure that every rmap
record for this ifork has a corresponding bmbt record too.  This
(mostly) provides the ability to cross-reference rmap records with bmap
data.  The rmap scrubber cannot do the xref on its own because that
requires taking an ilock with the agf lock held, which violates our
locking order rules (inode, then agf).

Note that we only do this for forks that are in btree format due to the
increased complexity; or forks that should have data but suspiciously
have zero extents because the inode could have just had its iforks
zapped by the inode repair code and now we need to reclaim the old
extents.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
2018-03-23 18:05:07 -07:00
..
agheader.c xfs: convert XFS_AGFL_SIZE to a helper function 2018-03-11 20:27:56 -07:00
alloc.c xfs: cross-reference refcount btree during scrub 2018-01-17 21:00:46 -08:00
attr.c xfs: pass inode number to xfs_scrub_ino_set_{preen,warning} 2017-11-09 09:10:45 -08:00
bmap.c xfs: bmap scrubber should do rmap xref with bmap for sparse files 2018-03-23 18:05:07 -07:00
btree.c xfs: scrub in-core metadata 2018-01-17 21:00:46 -08:00
btree.h xfs: set up scrub cross-referencing helpers 2018-01-17 21:00:44 -08:00
common.c xfs: merge _xfs_log_force and xfs_log_force 2018-03-14 11:12:52 -07:00
common.h xfs: scrub in-core metadata 2018-01-17 21:00:46 -08:00
dabtree.c xfs: scrub in-core metadata 2018-01-17 21:00:46 -08:00
dabtree.h xfs: scrub extended attribute leaf space 2017-11-01 15:03:16 -07:00
dir.c xfs: directory scrubber must walk through data block to offset 2018-01-17 21:00:46 -08:00
ialloc.c xfs: don't clobber inobt/finobt cursors when xref with rmap 2018-01-29 07:27:23 -08:00
inode.c xfs: cross-reference the block mappings when possible 2018-01-17 21:00:46 -08:00
parent.c xfs: fix a few erroneous process_error calls in the scrubbers 2018-01-17 21:00:45 -08:00
quota.c xfs: move all scrub input checking to xfs_scrub_validate 2018-01-08 10:41:34 -08:00
refcount.c xfs: cross-reference refcount btree during scrub 2018-01-17 21:00:46 -08:00
rmap.c xfs: cross-reference refcount btree during scrub 2018-01-17 21:00:46 -08:00
rtbitmap.c xfs: cross-reference the realtime bitmap 2018-01-17 21:00:46 -08:00
scrub.c xfs: don't iunlock unlocked inodes 2018-01-17 21:00:46 -08:00
scrub.h xfs: cross-reference the realtime bitmap 2018-01-17 21:00:46 -08:00
symlink.c xfs: scrub symbolic links 2017-10-26 15:38:26 -07:00
trace.c fs: xfs: remove duplicate includes 2017-12-08 17:51:05 -08:00
trace.h xfs: make tracepoint inode number format consistent 2018-01-29 07:27:22 -08:00
xfs_scrub.h