qcow2: add missing coroutine_fn annotations
Callers of coroutine_fn must be coroutine_fn themselves, or the call must be within "if (qemu_in_coroutine())". Apply coroutine_fn to functions where this holds. Reviewed-by: Alberto Faria <afaria@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20220922084924.201610-15-pbonzini@redhat.com> [kwolf: Fixed up coding style] Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
7644d2dca8
commit
050ed2e736
@ -884,7 +884,7 @@ int qcow2_alloc_compressed_cluster_offset(BlockDriverState *bs,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int perform_cow(BlockDriverState *bs, QCowL2Meta *m)
|
static int coroutine_fn perform_cow(BlockDriverState *bs, QCowL2Meta *m)
|
||||||
{
|
{
|
||||||
BDRVQcow2State *s = bs->opaque;
|
BDRVQcow2State *s = bs->opaque;
|
||||||
Qcow2COWRegion *start = &m->cow_start;
|
Qcow2COWRegion *start = &m->cow_start;
|
||||||
@ -1024,7 +1024,8 @@ fail:
|
|||||||
return ret;
|
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;
|
BDRVQcow2State *s = bs->opaque;
|
||||||
int i, j = 0, l2_index, ret;
|
int i, j = 0, l2_index, ret;
|
||||||
@ -1397,8 +1398,9 @@ static int count_single_write_clusters(BlockDriverState *bs, int nb_clusters,
|
|||||||
* information on cluster allocation may be invalid now. The caller
|
* information on cluster allocation may be invalid now. The caller
|
||||||
* must start over anyway, so consider *cur_bytes undefined.
|
* 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 *cur_bytes, QCowL2Meta **m)
|
uint64_t guest_offset,
|
||||||
|
uint64_t *cur_bytes, QCowL2Meta **m)
|
||||||
{
|
{
|
||||||
BDRVQcow2State *s = bs->opaque;
|
BDRVQcow2State *s = bs->opaque;
|
||||||
QCowL2Meta *old_alloc;
|
QCowL2Meta *old_alloc;
|
||||||
@ -1772,9 +1774,10 @@ out:
|
|||||||
*
|
*
|
||||||
* Return 0 on success and -errno in error cases
|
* Return 0 on success and -errno in error cases
|
||||||
*/
|
*/
|
||||||
int qcow2_alloc_host_offset(BlockDriverState *bs, uint64_t offset,
|
int coroutine_fn qcow2_alloc_host_offset(BlockDriverState *bs, uint64_t offset,
|
||||||
unsigned int *bytes, uint64_t *host_offset,
|
unsigned int *bytes,
|
||||||
QCowL2Meta **m)
|
uint64_t *host_offset,
|
||||||
|
QCowL2Meta **m)
|
||||||
{
|
{
|
||||||
BDRVQcow2State *s = bs->opaque;
|
BDRVQcow2State *s = bs->opaque;
|
||||||
uint64_t start, remaining;
|
uint64_t start, remaining;
|
||||||
@ -2105,8 +2108,8 @@ out:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int qcow2_subcluster_zeroize(BlockDriverState *bs, uint64_t offset,
|
int coroutine_fn qcow2_subcluster_zeroize(BlockDriverState *bs, uint64_t offset,
|
||||||
uint64_t bytes, int flags)
|
uint64_t bytes, int flags)
|
||||||
{
|
{
|
||||||
BDRVQcow2State *s = bs->opaque;
|
BDRVQcow2State *s = bs->opaque;
|
||||||
uint64_t end_offset = offset + bytes;
|
uint64_t end_offset = offset + bytes;
|
||||||
|
@ -3706,7 +3706,7 @@ int64_t qcow2_get_last_cluster(BlockDriverState *bs, int64_t size)
|
|||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
|
||||||
int qcow2_detect_metadata_preallocation(BlockDriverState *bs)
|
int coroutine_fn qcow2_detect_metadata_preallocation(BlockDriverState *bs)
|
||||||
{
|
{
|
||||||
BDRVQcow2State *s = bs->opaque;
|
BDRVQcow2State *s = bs->opaque;
|
||||||
int64_t i, end_cluster, cluster_count = 0, threshold;
|
int64_t i, end_cluster, cluster_count = 0, threshold;
|
||||||
|
@ -2448,7 +2448,7 @@ static bool merge_cow(uint64_t offset, unsigned bytes,
|
|||||||
* Return 1 if the COW regions read as zeroes, 0 if not, < 0 on error.
|
* Return 1 if the COW regions read as zeroes, 0 if not, < 0 on error.
|
||||||
* Note that returning 0 does not guarantee non-zero data.
|
* Note that returning 0 does not guarantee non-zero data.
|
||||||
*/
|
*/
|
||||||
static int is_zero_cow(BlockDriverState *bs, QCowL2Meta *m)
|
static int coroutine_fn is_zero_cow(BlockDriverState *bs, QCowL2Meta *m)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* This check is designed for optimization shortcut so it must be
|
* This check is designed for optimization shortcut so it must be
|
||||||
@ -2466,7 +2466,8 @@ static int is_zero_cow(BlockDriverState *bs, QCowL2Meta *m)
|
|||||||
m->cow_end.nb_bytes);
|
m->cow_end.nb_bytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int handle_alloc_space(BlockDriverState *bs, QCowL2Meta *l2meta)
|
static int coroutine_fn handle_alloc_space(BlockDriverState *bs,
|
||||||
|
QCowL2Meta *l2meta)
|
||||||
{
|
{
|
||||||
BDRVQcow2State *s = bs->opaque;
|
BDRVQcow2State *s = bs->opaque;
|
||||||
QCowL2Meta *m;
|
QCowL2Meta *m;
|
||||||
|
@ -895,7 +895,7 @@ int qcow2_change_refcount_order(BlockDriverState *bs, int refcount_order,
|
|||||||
void *cb_opaque, Error **errp);
|
void *cb_opaque, Error **errp);
|
||||||
int qcow2_shrink_reftable(BlockDriverState *bs);
|
int qcow2_shrink_reftable(BlockDriverState *bs);
|
||||||
int64_t qcow2_get_last_cluster(BlockDriverState *bs, int64_t size);
|
int64_t qcow2_get_last_cluster(BlockDriverState *bs, int64_t size);
|
||||||
int qcow2_detect_metadata_preallocation(BlockDriverState *bs);
|
int coroutine_fn qcow2_detect_metadata_preallocation(BlockDriverState *bs);
|
||||||
|
|
||||||
/* qcow2-cluster.c functions */
|
/* qcow2-cluster.c functions */
|
||||||
int qcow2_grow_l1_table(BlockDriverState *bs, uint64_t min_size,
|
int qcow2_grow_l1_table(BlockDriverState *bs, uint64_t min_size,
|
||||||
@ -908,9 +908,9 @@ int qcow2_encrypt_sectors(BDRVQcow2State *s, int64_t sector_num,
|
|||||||
int qcow2_get_host_offset(BlockDriverState *bs, uint64_t offset,
|
int qcow2_get_host_offset(BlockDriverState *bs, uint64_t offset,
|
||||||
unsigned int *bytes, uint64_t *host_offset,
|
unsigned int *bytes, uint64_t *host_offset,
|
||||||
QCow2SubclusterType *subcluster_type);
|
QCow2SubclusterType *subcluster_type);
|
||||||
int qcow2_alloc_host_offset(BlockDriverState *bs, uint64_t offset,
|
int coroutine_fn qcow2_alloc_host_offset(BlockDriverState *bs, uint64_t offset,
|
||||||
unsigned int *bytes, uint64_t *host_offset,
|
unsigned int *bytes,
|
||||||
QCowL2Meta **m);
|
uint64_t *host_offset, QCowL2Meta **m);
|
||||||
int qcow2_alloc_compressed_cluster_offset(BlockDriverState *bs,
|
int qcow2_alloc_compressed_cluster_offset(BlockDriverState *bs,
|
||||||
uint64_t offset,
|
uint64_t offset,
|
||||||
int compressed_size,
|
int compressed_size,
|
||||||
@ -918,13 +918,14 @@ int qcow2_alloc_compressed_cluster_offset(BlockDriverState *bs,
|
|||||||
void qcow2_parse_compressed_l2_entry(BlockDriverState *bs, uint64_t l2_entry,
|
void qcow2_parse_compressed_l2_entry(BlockDriverState *bs, uint64_t l2_entry,
|
||||||
uint64_t *coffset, int *csize);
|
uint64_t *coffset, int *csize);
|
||||||
|
|
||||||
int qcow2_alloc_cluster_link_l2(BlockDriverState *bs, QCowL2Meta *m);
|
int coroutine_fn qcow2_alloc_cluster_link_l2(BlockDriverState *bs,
|
||||||
|
QCowL2Meta *m);
|
||||||
void qcow2_alloc_cluster_abort(BlockDriverState *bs, QCowL2Meta *m);
|
void qcow2_alloc_cluster_abort(BlockDriverState *bs, QCowL2Meta *m);
|
||||||
int qcow2_cluster_discard(BlockDriverState *bs, uint64_t offset,
|
int qcow2_cluster_discard(BlockDriverState *bs, uint64_t offset,
|
||||||
uint64_t bytes, enum qcow2_discard_type type,
|
uint64_t bytes, enum qcow2_discard_type type,
|
||||||
bool full_discard);
|
bool full_discard);
|
||||||
int qcow2_subcluster_zeroize(BlockDriverState *bs, uint64_t offset,
|
int coroutine_fn qcow2_subcluster_zeroize(BlockDriverState *bs, uint64_t offset,
|
||||||
uint64_t bytes, int flags);
|
uint64_t bytes, int flags);
|
||||||
|
|
||||||
int qcow2_expand_zero_clusters(BlockDriverState *bs,
|
int qcow2_expand_zero_clusters(BlockDriverState *bs,
|
||||||
BlockDriverAmendStatusCB *status_cb,
|
BlockDriverAmendStatusCB *status_cb,
|
||||||
|
Loading…
Reference in New Issue
Block a user