[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 09/11] block-backend: Add blk_co_copy_range
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL 09/11] block-backend: Add blk_co_copy_range |
Date: |
Mon, 4 Jun 2018 12:20:34 +0100 |
From: Fam Zheng <address@hidden>
It's a BlockBackend wrapper of the BDS interface.
Signed-off-by: Fam Zheng <address@hidden>
Reviewed-by: Stefan Hajnoczi <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
include/sysemu/block-backend.h | 4 ++++
block/block-backend.c | 18 ++++++++++++++++++
2 files changed, 22 insertions(+)
diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h
index 92ab624fac..8d03d493c2 100644
--- a/include/sysemu/block-backend.h
+++ b/include/sysemu/block-backend.h
@@ -232,4 +232,8 @@ void blk_set_force_allow_inactivate(BlockBackend *blk);
void blk_register_buf(BlockBackend *blk, void *host, size_t size);
void blk_unregister_buf(BlockBackend *blk, void *host);
+int coroutine_fn blk_co_copy_range(BlockBackend *blk_in, int64_t off_in,
+ BlockBackend *blk_out, int64_t off_out,
+ int bytes, BdrvRequestFlags flags);
+
#endif
diff --git a/block/block-backend.c b/block/block-backend.c
index 89f47b00ea..d55c328736 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -2211,3 +2211,21 @@ void blk_unregister_buf(BlockBackend *blk, void *host)
{
bdrv_unregister_buf(blk_bs(blk), host);
}
+
+int coroutine_fn blk_co_copy_range(BlockBackend *blk_in, int64_t off_in,
+ BlockBackend *blk_out, int64_t off_out,
+ int bytes, BdrvRequestFlags flags)
+{
+ int r;
+ r = blk_check_byte_request(blk_in, off_in, bytes);
+ if (r) {
+ return r;
+ }
+ r = blk_check_byte_request(blk_out, off_out, bytes);
+ if (r) {
+ return r;
+ }
+ return bdrv_co_copy_range(blk_in->root, off_in,
+ blk_out->root, off_out,
+ bytes, flags);
+}
--
2.17.1
- [Qemu-devel] [PULL 00/11] Block patches, Stefan Hajnoczi, 2018/06/04
- [Qemu-devel] [PULL 02/11] raw: Check byte range uniformly, Stefan Hajnoczi, 2018/06/04
- [Qemu-devel] [PULL 03/11] raw: Implement copy offloading, Stefan Hajnoczi, 2018/06/04
- [Qemu-devel] [PULL 01/11] block: Introduce API for copy offloading, Stefan Hajnoczi, 2018/06/04
- [Qemu-devel] [PULL 04/11] qcow2: Implement copy offloading, Stefan Hajnoczi, 2018/06/04
- [Qemu-devel] [PULL 05/11] file-posix: Implement bdrv_co_copy_range, Stefan Hajnoczi, 2018/06/04
- [Qemu-devel] [PULL 06/11] iscsi: Query and save device designator when opening, Stefan Hajnoczi, 2018/06/04
- [Qemu-devel] [PULL 07/11] iscsi: Create and use iscsi_co_wait_for_task, Stefan Hajnoczi, 2018/06/04
- [Qemu-devel] [PULL 09/11] block-backend: Add blk_co_copy_range,
Stefan Hajnoczi <=
- [Qemu-devel] [PULL 08/11] iscsi: Implement copy offloading, Stefan Hajnoczi, 2018/06/04
- [Qemu-devel] [PULL 10/11] qemu-img: Convert with copy offloading, Stefan Hajnoczi, 2018/06/04
- [Qemu-devel] [PULL 11/11] main-loop: drop spin_counter, Stefan Hajnoczi, 2018/06/04
- Re: [Qemu-devel] [PULL 00/11] Block patches, Peter Maydell, 2018/06/05