mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 04:34:08 +08:00
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))
|
||||
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);
|
||||
}
|
||||
|
||||
@ -510,6 +513,12 @@ xfs_bmap_recover_work(
|
||||
xfs_ilock(ip, XFS_ILOCK_EXCL);
|
||||
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)
|
||||
iext_delta = XFS_IEXT_ADD_NOSPLIT_CNT;
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user