diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2018-01-08 19:51:26 +0100 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2018-01-08 19:54:47 +0100 |
commit | 9c712a1346b214a92f4a0e5bb4de4c075de65c32 (patch) | |
tree | 7cd7e9e54e4e2f5d3996fc55b0b0ecc8c2c9ab55 /fs/xfs | |
parent | xfs: teach error reporting functions to take xfs_failaddr_t (diff) | |
download | linux-9c712a1346b214a92f4a0e5bb4de4c075de65c32.tar.xz linux-9c712a1346b214a92f4a0e5bb4de4c075de65c32.zip |
xfs: dump the first 128 bytes of any corrupt buffer
Increase the corrupt buffer dump to the first 128 bytes since v5
filesystems have larger block headers than before.
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/xfs_buf.c | 3 | ||||
-rw-r--r-- | fs/xfs/xfs_error.c | 7 | ||||
-rw-r--r-- | fs/xfs/xfs_error.h | 3 |
3 files changed, 9 insertions, 4 deletions
diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c index 45987a278930..1981ef77040d 100644 --- a/fs/xfs/xfs_buf.c +++ b/fs/xfs/xfs_buf.c @@ -1381,7 +1381,8 @@ _xfs_buf_ioapply( xfs_warn(mp, "%s: no ops on block 0x%llx/0x%x", __func__, bp->b_bn, bp->b_length); - xfs_hex_dump(bp->b_addr, 64); + xfs_hex_dump(bp->b_addr, + XFS_CORRUPTION_DUMP_LEN); dump_stack(); } } diff --git a/fs/xfs/xfs_error.c b/fs/xfs/xfs_error.c index be1211a851dc..980d5f0660b5 100644 --- a/fs/xfs/xfs_error.c +++ b/fs/xfs/xfs_error.c @@ -336,7 +336,7 @@ xfs_corruption_error( xfs_failaddr_t failaddr) { if (level <= xfs_error_level) - xfs_hex_dump(p, 64); + xfs_hex_dump(p, XFS_CORRUPTION_DUMP_LEN); xfs_error_report(tag, level, mp, filename, linenum, failaddr); xfs_alert(mp, "Corruption detected. Unmount and run xfs_repair"); } @@ -364,8 +364,9 @@ xfs_verifier_error( xfs_alert(mp, "Unmount and run xfs_repair"); if (xfs_error_level >= XFS_ERRLEVEL_LOW) { - xfs_alert(mp, "First 64 bytes of corrupted metadata buffer:"); - xfs_hex_dump(xfs_buf_offset(bp, 0), 64); + xfs_alert(mp, "First %d bytes of corrupted metadata buffer:", + XFS_CORRUPTION_DUMP_LEN); + xfs_hex_dump(xfs_buf_offset(bp, 0), XFS_CORRUPTION_DUMP_LEN); } if (xfs_error_level >= XFS_ERRLEVEL_HIGH) diff --git a/fs/xfs/xfs_error.h b/fs/xfs/xfs_error.h index f086040266ac..a3ba05bd983d 100644 --- a/fs/xfs/xfs_error.h +++ b/fs/xfs/xfs_error.h @@ -39,6 +39,9 @@ extern void xfs_verifier_error(struct xfs_buf *bp, int error, #define XFS_ERRLEVEL_LOW 1 #define XFS_ERRLEVEL_HIGH 5 +/* Dump 128 bytes of any corrupt buffer */ +#define XFS_CORRUPTION_DUMP_LEN (128) + /* * Macros to set EFSCORRUPTED & return/branch. */ |