summaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_error.c
diff options
context:
space:
mode:
authorDarrick J. Wong2018-01-08 19:51:03 +0100
committerDarrick J. Wong2018-01-08 19:54:46 +0100
commitbc1a09b8e334bf5fca1d6727aec538dcff957961 (patch)
treee870d817d5c3b4a97b1201c81d80e39bff66b763 /fs/xfs/xfs_error.c
parentxfs: have buffer verifier functions report failing address (diff)
downloadkernel-qcow2-linux-bc1a09b8e334bf5fca1d6727aec538dcff957961.tar.gz
kernel-qcow2-linux-bc1a09b8e334bf5fca1d6727aec538dcff957961.tar.xz
kernel-qcow2-linux-bc1a09b8e334bf5fca1d6727aec538dcff957961.zip
xfs: refactor verifier callers to print address of failing check
Refactor the callers of verifiers to print the instruction address of a failing check. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Dave Chinner <dchinner@redhat.com>
Diffstat (limited to 'fs/xfs/xfs_error.c')
-rw-r--r--fs/xfs/xfs_error.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/xfs/xfs_error.c b/fs/xfs/xfs_error.c
index c0a98c42033d..21db07cc7a11 100644
--- a/fs/xfs/xfs_error.c
+++ b/fs/xfs/xfs_error.c
@@ -348,15 +348,18 @@ xfs_corruption_error(
void
xfs_verifier_error(
struct xfs_buf *bp,
- int error)
+ int error,
+ xfs_failaddr_t failaddr)
{
- struct xfs_mount *mp = bp->b_target->bt_mount;
+ struct xfs_mount *mp = bp->b_target->bt_mount;
+ xfs_failaddr_t fa;
- __xfs_buf_ioerror(bp, error, __return_address);
+ fa = failaddr ? failaddr : __return_address;
+ __xfs_buf_ioerror(bp, error, fa);
xfs_alert(mp, "Metadata %s detected at %pS, %s block 0x%llx",
bp->b_error == -EFSBADCRC ? "CRC error" : "corruption",
- __return_address, bp->b_ops->name, bp->b_bn);
+ fa, bp->b_ops->name, bp->b_bn);
xfs_alert(mp, "Unmount and run xfs_repair");