diff options
author | Darrick J. Wong <darrick.wong@oracle.com> | 2018-01-08 10:51:26 -0800 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2018-01-08 10:54:47 -0800 |
commit | 9c712a1346b214a92f4a0e5bb4de4c075de65c32 (patch) | |
tree | 7cd7e9e54e4e2f5d3996fc55b0b0ecc8c2c9ab55 /fs/xfs | |
parent | d9418ed08ae1fa025c96498d95ba30cbb934e119 (diff) | |
download | op-kernel-dev-9c712a1346b214a92f4a0e5bb4de4c075de65c32.zip op-kernel-dev-9c712a1346b214a92f4a0e5bb4de4c075de65c32.tar.gz |
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 45987a2..1981ef7 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 be1211a..980d5f0 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 f086040..a3ba05b 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. */ |