Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- block/qcow2.h | 6 ++++-- block/qcow.c | 4 +++- block/qcow2-cluster.c | 11 +++++++---- block/qcow2.c | 15 ++++++++++----- 4 files changed, 24 insertions(+), 12 deletions(-)
diff --git a/block/qcow2.h b/block/qcow2.h index 87b15eb4aa..a32b47b7f6 100644 --- a/block/qcow2.h +++ b/block/qcow2.h @@ -550,14 +550,16 @@ int qcow2_encrypt_sectors(BDRVQcow2State *s, int64_t sector_num, int qcow2_get_cluster_offset(BlockDriverState *bs, uint64_t offset, unsigned int *bytes, uint64_t *cluster_offset); -int qcow2_alloc_cluster_offset(BlockDriverState *bs, uint64_t offset, +int coroutine_fn +qcow2_alloc_cluster_offset(BlockDriverState *bs, uint64_t offset, unsigned int *bytes, uint64_t *host_offset, QCowL2Meta **m); uint64_t qcow2_alloc_compressed_cluster_offset(BlockDriverState *bs, uint64_t offset, int compressed_size); -int qcow2_alloc_cluster_link_l2(BlockDriverState *bs, QCowL2Meta *m); +int coroutine_fn +qcow2_alloc_cluster_link_l2(BlockDriverState *bs, QCowL2Meta *m); int qcow2_cluster_discard(BlockDriverState *bs, uint64_t offset, uint64_t bytes, enum qcow2_discard_type type, bool full_discard); diff --git a/block/qcow.c b/block/qcow.c index 7bd94dcd46..d84ae7fb74 100644 --- a/block/qcow.c +++ b/block/qcow.c @@ -796,7 +796,9 @@ static void qcow_close(BlockDriverState *bs) error_free(s->migration_blocker); } -static int qcow_create(const char *filename, QemuOpts *opts, Error **errp) + +static int coroutine_fn +qcow_create(const char *filename, QemuOpts *opts, Error **errp) { int header_size, backing_filename_len, l1_size, shift, i; QCowHeader header; diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c index 3d341fd9cb..964d23aee8 100644 --- a/block/qcow2-cluster.c +++ b/block/qcow2-cluster.c @@ -761,7 +761,8 @@ uint64_t qcow2_alloc_compressed_cluster_offset(BlockDriverState *bs, return cluster_offset; } -static int perform_cow(BlockDriverState *bs, QCowL2Meta *m) +static int coroutine_fn +perform_cow(BlockDriverState *bs, QCowL2Meta *m) { BDRVQcow2State *s = bs->opaque; Qcow2COWRegion *start = &m->cow_start; @@ -890,7 +891,7 @@ fail: return ret; } -int qcow2_alloc_cluster_link_l2(BlockDriverState *bs, QCowL2Meta *m) +int coroutine_fn qcow2_alloc_cluster_link_l2(BlockDriverState *bs, QCowL2Meta *m) { BDRVQcow2State *s = bs->opaque; int i, j = 0, l2_index, ret; @@ -1014,7 +1015,8 @@ out: * information on cluster allocation may be invalid now. The caller * must start over anyway, so consider *cur_bytes undefined. */ -static int handle_dependencies(BlockDriverState *bs, uint64_t guest_offset, +static int coroutine_fn +handle_dependencies(BlockDriverState *bs, uint64_t guest_offset, uint64_t *cur_bytes, QCowL2Meta **m) { BDRVQcow2State *s = bs->opaque; @@ -1413,7 +1415,8 @@ fail: * * Return 0 on success and -errno in error cases */ -int qcow2_alloc_cluster_offset(BlockDriverState *bs, uint64_t offset, +int coroutine_fn +qcow2_alloc_cluster_offset(BlockDriverState *bs, uint64_t offset, unsigned int *bytes, uint64_t *host_offset, QCowL2Meta **m) { diff --git a/block/qcow2.c b/block/qcow2.c index 2f94f0326e..6ecf1489dc 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -2079,7 +2079,8 @@ static int qcow2_change_backing_file(BlockDriverState *bs, return qcow2_update_header(bs); } -static int preallocate(BlockDriverState *bs) +static int coroutine_fn +preallocate(BlockDriverState *bs) { uint64_t bytes; uint64_t offset; @@ -2140,7 +2141,8 @@ static int preallocate(BlockDriverState *bs) return 0; } -static int qcow2_create2(const char *filename, int64_t total_size, +static int coroutine_fn +qcow2_create2(const char *filename, int64_t total_size, const char *backing_file, const char *backing_format, int flags, size_t cluster_size, PreallocMode prealloc, QemuOpts *opts, int version, int refcount_order, @@ -2390,7 +2392,8 @@ out: return ret; } -static int qcow2_create(const char *filename, QemuOpts *opts, Error **errp) +static int coroutine_fn +qcow2_create(const char *filename, QemuOpts *opts, Error **errp) { char *backing_file = NULL; char *backing_fmt = NULL; @@ -3011,7 +3014,8 @@ static void dump_refcounts(BlockDriverState *bs) } #endif -static int qcow2_save_vmstate(BlockDriverState *bs, QEMUIOVector *qiov, +static int coroutine_fn +qcow2_save_vmstate(BlockDriverState *bs, QEMUIOVector *qiov, int64_t pos) { BDRVQcow2State *s = bs->opaque; @@ -3021,7 +3025,8 @@ static int qcow2_save_vmstate(BlockDriverState *bs, QEMUIOVector *qiov, qiov->size, qiov, 0); } -static int qcow2_load_vmstate(BlockDriverState *bs, QEMUIOVector *qiov, +static int coroutine_fn +qcow2_load_vmstate(BlockDriverState *bs, QEMUIOVector *qiov, int64_t pos) { BDRVQcow2State *s = bs->opaque; -- 2.13.1.395.gf7b71de06