linux-stable/fs/xfs/scrub
Darrick J. Wong 1b44a6aecc xfs: record inode buf errors as a xref error in inobt scrubber
During the inode btree scrubs we try to confirm the freemask bits
against the inode records.  If the inode buffer read fails, this is a
cross-referencing error, not a corruption of the inode btree itself.
Use the xref_process_error call here.  Found via core.version middlebit
fuzz in xfs/415.

The userspace xfs_scrub program will try to repair outright corruptions
in the agi/inobt prior to phase 3 so that the inode scan will proceed.
If only a cross-referencing error is noted, the repair program defers
the repair attempt until it can check the other space metadata at least
once.

It is therefore essential that the inobt scrubber can correctly
distinguish between corruptions and "unable to cross-reference something
else with this inobt".

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
2018-03-23 18:05:08 -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: remove xfs_buf parameter from inode scrub methods 2018-03-23 18:05:08 -07:00
bmap.c xfs: remove xfs_buf parameter from inode scrub methods 2018-03-23 18:05:08 -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: remove xfs_buf parameter from inode scrub methods 2018-03-23 18:05:08 -07:00
common.h xfs: remove xfs_buf parameter from inode scrub methods 2018-03-23 18:05:08 -07: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: remove xfs_buf parameter from inode scrub methods 2018-03-23 18:05:08 -07:00
ialloc.c xfs: record inode buf errors as a xref error in inobt scrubber 2018-03-23 18:05:08 -07:00
inode.c xfs: remove xfs_buf parameter from inode scrub methods 2018-03-23 18:05:08 -07: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: remove xfs_buf parameter from inode scrub methods 2018-03-23 18:05:08 -07: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: remove xfs_buf parameter from inode scrub methods 2018-03-23 18:05:08 -07: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: remove xfs_buf parameter from inode scrub methods 2018-03-23 18:05:08 -07:00
xfs_scrub.h