Message ID | 20180418030424.28980-7-famz@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Apr 18, 2018 at 11:04:23AM +0800, Fam Zheng wrote: > It's a BlockBackend wrapper of the BDS interface. > > Signed-off-by: Fam Zheng <famz@redhat.com> > --- > block/block-backend.c | 9 +++++++++ > include/sysemu/block-backend.h | 4 ++++ > 2 files changed, 13 insertions(+) > > diff --git a/block/block-backend.c b/block/block-backend.c > index 681b240b12..2a984b1864 100644 > --- a/block/block-backend.c > +++ b/block/block-backend.c > @@ -2217,3 +2217,12 @@ 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) > +{ > + return bdrv_co_copy_range(blk_in->root, off_in, > + blk_out->root, off_out, > + bytes, flags); > +} What happens if either ->root field is NULL?
diff --git a/block/block-backend.c b/block/block-backend.c index 681b240b12..2a984b1864 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -2217,3 +2217,12 @@ 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) +{ + 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
It's a BlockBackend wrapper of the BDS interface. Signed-off-by: Fam Zheng <famz@redhat.com> --- block/block-backend.c | 9 +++++++++ include/sysemu/block-backend.h | 4 ++++ 2 files changed, 13 insertions(+)