Loading block/raw-format.c +32 −0 Original line number Diff line number Diff line Loading @@ -497,6 +497,36 @@ static int raw_probe_geometry(BlockDriverState *bs, HDGeometry *geo) return bdrv_probe_geometry(bs->file->bs, geo); } static int coroutine_fn raw_co_copy_range_from(BlockDriverState *bs, BdrvChild *src, uint64_t src_offset, BdrvChild *dst, uint64_t dst_offset, uint64_t bytes, BdrvRequestFlags flags) { int ret; ret = raw_adjust_offset(bs, &src_offset, bytes, false); if (ret) { return ret; } return bdrv_co_copy_range_from(bs->file, src_offset, dst, dst_offset, bytes, flags); } static int coroutine_fn raw_co_copy_range_to(BlockDriverState *bs, BdrvChild *src, uint64_t src_offset, BdrvChild *dst, uint64_t dst_offset, uint64_t bytes, BdrvRequestFlags flags) { int ret; ret = raw_adjust_offset(bs, &dst_offset, bytes, true); if (ret) { return ret; } return bdrv_co_copy_range_to(src, src_offset, bs->file, dst_offset, bytes, flags); } BlockDriver bdrv_raw = { .format_name = "raw", .instance_size = sizeof(BDRVRawState), Loading @@ -513,6 +543,8 @@ BlockDriver bdrv_raw = { .bdrv_co_pwrite_zeroes = &raw_co_pwrite_zeroes, .bdrv_co_pdiscard = &raw_co_pdiscard, .bdrv_co_block_status = &raw_co_block_status, .bdrv_co_copy_range_from = &raw_co_copy_range_from, .bdrv_co_copy_range_to = &raw_co_copy_range_to, .bdrv_truncate = &raw_truncate, .bdrv_getlength = &raw_getlength, .has_variable_length = true, Loading Loading
block/raw-format.c +32 −0 Original line number Diff line number Diff line Loading @@ -497,6 +497,36 @@ static int raw_probe_geometry(BlockDriverState *bs, HDGeometry *geo) return bdrv_probe_geometry(bs->file->bs, geo); } static int coroutine_fn raw_co_copy_range_from(BlockDriverState *bs, BdrvChild *src, uint64_t src_offset, BdrvChild *dst, uint64_t dst_offset, uint64_t bytes, BdrvRequestFlags flags) { int ret; ret = raw_adjust_offset(bs, &src_offset, bytes, false); if (ret) { return ret; } return bdrv_co_copy_range_from(bs->file, src_offset, dst, dst_offset, bytes, flags); } static int coroutine_fn raw_co_copy_range_to(BlockDriverState *bs, BdrvChild *src, uint64_t src_offset, BdrvChild *dst, uint64_t dst_offset, uint64_t bytes, BdrvRequestFlags flags) { int ret; ret = raw_adjust_offset(bs, &dst_offset, bytes, true); if (ret) { return ret; } return bdrv_co_copy_range_to(src, src_offset, bs->file, dst_offset, bytes, flags); } BlockDriver bdrv_raw = { .format_name = "raw", .instance_size = sizeof(BDRVRawState), Loading @@ -513,6 +543,8 @@ BlockDriver bdrv_raw = { .bdrv_co_pwrite_zeroes = &raw_co_pwrite_zeroes, .bdrv_co_pdiscard = &raw_co_pdiscard, .bdrv_co_block_status = &raw_co_block_status, .bdrv_co_copy_range_from = &raw_co_copy_range_from, .bdrv_co_copy_range_to = &raw_co_copy_range_to, .bdrv_truncate = &raw_truncate, .bdrv_getlength = &raw_getlength, .has_variable_length = true, Loading