xfs: xfs_rtbuf_get should check the bmapi_read results
The xfs_rtbuf_get function should check the block mapping it gets back from bmapi_read. If there are no mappings or the mapping isn't a real extent, we should return -EFSCORRUPTED rather than trying to read a garbage value. We also require realtime bitmap blocks to be real, written allocations. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Allison Henderson <allison.henderson@oracle.com> Reviewed-by: Bill O'Donnell <billodo@redhat.com>
This commit is contained in:
parent
2483113f3d
commit
a03f1641c7
1 changed files with 3 additions and 0 deletions
|
@ -90,6 +90,9 @@ xfs_rtbuf_get(
|
|||
if (error)
|
||||
return error;
|
||||
|
||||
if (nmap == 0 || !xfs_bmap_is_real_extent(&map))
|
||||
return -EFSCORRUPTED;
|
||||
|
||||
ASSERT(map.br_startblock != NULLFSBLOCK);
|
||||
error = xfs_trans_read_buf(mp, tp, mp->m_ddev_targp,
|
||||
XFS_FSB_TO_DADDR(mp, map.br_startblock),
|
||||
|
|
Loading…
Reference in a new issue