Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 924cade4 authored by Darrick J. Wong's avatar Darrick J. Wong
Browse files

xfs: don't return garbage buffers in xfs_da3_node_read



If we're reading a node in a dir/attr btree and the buffer comes off the
disk with a magic number we don't recognize, don't ASSERT and don't set
a garbage buffer type (0 also triggers ASSERTs).  Instead, report the
corruption, release the buffer, and return -EFSCORRUPTED because that's
what the dabtree is -- corrupt.

Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
parent 1f5c071d
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -305,9 +305,11 @@ xfs_da3_node_read(
			type = XFS_BLFT_DIR_LEAFN_BUF;
			break;
		default:
			type = 0;
			ASSERT(0);
			break;
			XFS_CORRUPTION_ERROR(__func__, XFS_ERRLEVEL_LOW,
					tp->t_mountp, info);
			xfs_trans_brelse(tp, *bpp);
			*bpp = NULL;
			return -EFSCORRUPTED;
		}
		xfs_trans_buf_set_type(tp, *bpp, type);
	}