[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v3 8/9] block-backend: Add blk_co_copy_range
From: |
Fam Zheng |
Subject: |
[Qemu-block] [PATCH v3 8/9] block-backend: Add blk_co_copy_range |
Date: |
Wed, 9 May 2018 22:58:14 +0800 |
It's a BlockBackend wrapper of the BDS interface.
Signed-off-by: Fam Zheng <address@hidden>
---
block/block-backend.c | 18 ++++++++++++++++++
include/sysemu/block-backend.h | 4 ++++
2 files changed, 22 insertions(+)
diff --git a/block/block-backend.c b/block/block-backend.c
index 681b240b12..5562ec4238 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -2217,3 +2217,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);
+}
diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h
index 92ab624fac..6f043b6b51 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 blk_co_copy_range(BlockBackend *blk_in, int64_t off_in,
+ BlockBackend *blk_out, int64_t off_out,
+ int bytes, BdrvRequestFlags flags);
+
#endif
--
2.14.3
- [Qemu-block] [PATCH v3 4/9] file-posix: Implement bdrv_co_copy_range, (continued)
- [Qemu-block] [PATCH v3 4/9] file-posix: Implement bdrv_co_copy_range, Fam Zheng, 2018/05/09
- [Qemu-block] [PATCH v3 5/9] iscsi: Query and save device designator when opening, Fam Zheng, 2018/05/09
- [Qemu-block] [PATCH v3 6/9] iscsi: Create and use iscsi_co_wait_for_task, Fam Zheng, 2018/05/09
- [Qemu-block] [PATCH v3 7/9] iscsi: Implement copy offloading, Fam Zheng, 2018/05/09
- [Qemu-block] [PATCH v3 8/9] block-backend: Add blk_co_copy_range,
Fam Zheng <=
- [Qemu-block] [PATCH v3 9/9] qemu-img: Convert with copy offloading, Fam Zheng, 2018/05/09