xfs: support recovering bmap intent items targetting realtime extents
Now that we have reflink on the realtime device, bmap intent items have to support remapping extents on the realtime volume. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
7302cda7f8
commit
1b5453baed
|
@ -435,6 +435,9 @@ xfs_bui_validate(
|
||||||
if (!xfs_verify_fileext(mp, map->me_startoff, map->me_len))
|
if (!xfs_verify_fileext(mp, map->me_startoff, map->me_len))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (map->me_flags & XFS_BMAP_EXTENT_REALTIME)
|
||||||
|
return xfs_verify_rtbext(mp, map->me_startblock, map->me_len);
|
||||||
|
|
||||||
return xfs_verify_fsbext(mp, map->me_startblock, map->me_len);
|
return xfs_verify_fsbext(mp, map->me_startblock, map->me_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -510,6 +513,12 @@ xfs_bmap_recover_work(
|
||||||
xfs_ilock(ip, XFS_ILOCK_EXCL);
|
xfs_ilock(ip, XFS_ILOCK_EXCL);
|
||||||
xfs_trans_ijoin(tp, ip, 0);
|
xfs_trans_ijoin(tp, ip, 0);
|
||||||
|
|
||||||
|
if (!!(map->me_flags & XFS_BMAP_EXTENT_REALTIME) !=
|
||||||
|
xfs_ifork_is_realtime(ip, work->bi_whichfork)) {
|
||||||
|
error = -EFSCORRUPTED;
|
||||||
|
goto err_cancel;
|
||||||
|
}
|
||||||
|
|
||||||
if (work->bi_type == XFS_BMAP_MAP)
|
if (work->bi_type == XFS_BMAP_MAP)
|
||||||
iext_delta = XFS_IEXT_ADD_NOSPLIT_CNT;
|
iext_delta = XFS_IEXT_ADD_NOSPLIT_CNT;
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue