linux-stable/fs/xfs/scrub
Darrick J. Wong d658e72b4a xfs: distinguish between corrupt inode and invalid inum in xfs_scrub_get_inode
In xfs_scrub_get_inode, we don't do a good enough job distinguishing
EINVAL returns from xfs_iget w/ IGET_UNTRUSTED -- this can happen if the
passed in inode number is invalid (past eofs, inobt says it isn't an
inode) or if the inum is actually valid but the inode buffer fails
verifier.  In the first case we still want to return ENOENT, but in the
second case we want to capture the corruption error.

Therefore, if xfs_iget returns EINVAL, try the raw imap lookup.  If that
succeeds, we conclude it's a corruption error, otherwise we just bounce
out to userspace.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
2018-01-08 10:49:04 -08:00
..
agheader.c xfs: catch a few more error codes when scrubbing secondary sb 2018-01-08 10:49:02 -08:00
alloc.c xfs: scrub free space btrees 2017-10-26 15:38:25 -07: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: xfs_scrub_bmap should use for_each_xfs_iext 2018-01-08 10:49:03 -08:00
btree.c xfs: fix btree scrub deref check 2017-11-09 09:10:45 -08:00
btree.h xfs: create helpers to scrub a metadata btree 2017-10-26 15:38:24 -07:00
common.c xfs: distinguish between corrupt inode and invalid inum in xfs_scrub_get_inode 2018-01-08 10:49:04 -08:00
common.h xfs: move all scrub input checking to xfs_scrub_validate 2018-01-08 10:41:34 -08:00
dabtree.c xfs: only check da node header padding on v5 filesystems 2017-11-09 09:10:45 -08:00
dabtree.h xfs: scrub extended attribute leaf space 2017-11-01 15:03:16 -07:00
dir.c xfs: fix uninitialized return values in scrub code 2017-11-09 09:10:45 -08:00
ialloc.c xfs: scrub inode btrees 2017-10-26 15:38:25 -07:00
inode.c xfs: always grab transaction when scrubbing inode 2018-01-08 10:49:03 -08:00
parent.c xfs: fix uninitialized return values in scrub code 2017-11-09 09:10: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: scrub refcount btrees 2017-10-26 15:38:25 -07:00
rmap.c xfs: scrub rmap btrees 2017-10-26 15:38:25 -07:00
rtbitmap.c xfs: move all scrub input checking to xfs_scrub_validate 2018-01-08 10:41:34 -08:00
scrub.c xfs: move all scrub input checking to xfs_scrub_validate 2018-01-08 10:41:34 -08:00
scrub.h xfs: move all scrub input checking to xfs_scrub_validate 2018-01-08 10:41:34 -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: scrub btree keys and records 2017-10-26 15:38:24 -07:00
xfs_scrub.h