libxfs: verifier should set buffer error when da block has a bad magic number

Darrick J. Wong darrick.wong at oracle.com
Mon Aug 24 23:06:09 CDT 2015


If xfs_da3_node_read_verify() doesn't recognize the magic number of a
buffer it's just read, set the buffer error to -EFSCORRUPTED so that
the error can be sent up to userspace.  Without this patch we'll
ASSERT on the bad magic eventually while trying to traverse or change
the block, but we really ought to fail fast in the verifier.

Signed-off-by: Darrick J. Wong <darrick.wong at oracle.com>
---
 fs/xfs/libxfs/xfs_da_btree.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/xfs/libxfs/xfs_da_btree.c b/fs/xfs/libxfs/xfs_da_btree.c
index 2385f8c..ec4a5a1 100644
--- a/fs/xfs/libxfs/xfs_da_btree.c
+++ b/fs/xfs/libxfs/xfs_da_btree.c
@@ -238,6 +238,7 @@ xfs_da3_node_read_verify(
 
 	/* corrupt block */
 	xfs_verifier_error(bp);
+	xfs_buf_ioerror(bp, -EFSCORRUPTED);
 }
 
 const struct xfs_buf_ops xfs_da3_node_buf_ops = {



More information about the xfs mailing list