block: use bdrv_co_getlength in coroutine context

bdrv_co_getlength was recently introduced, with bdrv_getlength becoming
a wrapper for use in unknown context.  Switch to bdrv_co_getlength when
possible.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-ID: <20230601115145.196465-12-pbonzini@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Paolo Bonzini 2023-06-01 13:51:44 +02:00 committed by Kevin Wolf
parent 70bacc4453
commit 0af02bd107
4 changed files with 12 additions and 12 deletions

View file

@ -1379,7 +1379,7 @@ bdrv_aligned_preadv(BdrvChild *child, BdrvTrackedRequest *req,
} }
/* Forward the request to the BlockDriver, possibly fragmenting it */ /* Forward the request to the BlockDriver, possibly fragmenting it */
total_bytes = bdrv_getlength(bs); total_bytes = bdrv_co_getlength(bs);
if (total_bytes < 0) { if (total_bytes < 0) {
ret = total_bytes; ret = total_bytes;
goto out; goto out;
@ -2388,7 +2388,7 @@ bdrv_co_block_status(BlockDriverState *bs, bool want_zero,
assert(pnum); assert(pnum);
assert_bdrv_graph_readable(); assert_bdrv_graph_readable();
*pnum = 0; *pnum = 0;
total_size = bdrv_getlength(bs); total_size = bdrv_co_getlength(bs);
if (total_size < 0) { if (total_size < 0) {
ret = total_size; ret = total_size;
goto early_out; goto early_out;
@ -2408,7 +2408,7 @@ bdrv_co_block_status(BlockDriverState *bs, bool want_zero,
bytes = n; bytes = n;
} }
/* Must be non-NULL or bdrv_getlength() would have failed */ /* Must be non-NULL or bdrv_co_getlength() would have failed */
assert(bs->drv); assert(bs->drv);
has_filtered_child = bdrv_filter_child(bs); has_filtered_child = bdrv_filter_child(bs);
if (!bs->drv->bdrv_co_block_status && !has_filtered_child) { if (!bs->drv->bdrv_co_block_status && !has_filtered_child) {
@ -2546,7 +2546,7 @@ bdrv_co_block_status(BlockDriverState *bs, bool want_zero,
if (!cow_bs) { if (!cow_bs) {
ret |= BDRV_BLOCK_ZERO; ret |= BDRV_BLOCK_ZERO;
} else if (want_zero) { } else if (want_zero) {
int64_t size2 = bdrv_getlength(cow_bs); int64_t size2 = bdrv_co_getlength(cow_bs);
if (size2 >= 0 && offset >= size2) { if (size2 >= 0 && offset >= size2) {
ret |= BDRV_BLOCK_ZERO; ret |= BDRV_BLOCK_ZERO;
@ -3592,7 +3592,7 @@ int coroutine_fn bdrv_co_truncate(BdrvChild *child, int64_t offset, bool exact,
return ret; return ret;
} }
old_size = bdrv_getlength(bs); old_size = bdrv_co_getlength(bs);
if (old_size < 0) { if (old_size < 0) {
error_setg_errno(errp, -old_size, "Failed to get old image size"); error_setg_errno(errp, -old_size, "Failed to get old image size");
return old_size; return old_size;

View file

@ -200,7 +200,7 @@ allocate_clusters(BlockDriverState *bs, int64_t sector_num,
assert(idx < s->bat_size && idx + to_allocate <= s->bat_size); assert(idx < s->bat_size && idx + to_allocate <= s->bat_size);
space = to_allocate * s->tracks; space = to_allocate * s->tracks;
len = bdrv_getlength(bs->file->bs); len = bdrv_co_getlength(bs->file->bs);
if (len < 0) { if (len < 0) {
return len; return len;
} }
@ -448,7 +448,7 @@ parallels_check_outside_image(BlockDriverState *bs, BdrvCheckResult *res,
uint32_t i; uint32_t i;
int64_t off, high_off, size; int64_t off, high_off, size;
size = bdrv_getlength(bs->file->bs); size = bdrv_co_getlength(bs->file->bs);
if (size < 0) { if (size < 0) {
res->check_errors++; res->check_errors++;
return size; return size;

View file

@ -370,7 +370,7 @@ get_cluster_offset(BlockDriverState *bs, uint64_t offset, int allocate,
if (!allocate) if (!allocate)
return 0; return 0;
/* allocate a new l2 entry */ /* allocate a new l2 entry */
l2_offset = bdrv_getlength(bs->file->bs); l2_offset = bdrv_co_getlength(bs->file->bs);
if (l2_offset < 0) { if (l2_offset < 0) {
return l2_offset; return l2_offset;
} }
@ -445,7 +445,7 @@ get_cluster_offset(BlockDriverState *bs, uint64_t offset, int allocate,
if (decompress_cluster(bs, cluster_offset) < 0) { if (decompress_cluster(bs, cluster_offset) < 0) {
return -EIO; return -EIO;
} }
cluster_offset = bdrv_getlength(bs->file->bs); cluster_offset = bdrv_co_getlength(bs->file->bs);
if ((int64_t) cluster_offset < 0) { if ((int64_t) cluster_offset < 0) {
return cluster_offset; return cluster_offset;
} }
@ -458,7 +458,7 @@ get_cluster_offset(BlockDriverState *bs, uint64_t offset, int allocate,
return ret; return ret;
} }
} else { } else {
cluster_offset = bdrv_getlength(bs->file->bs); cluster_offset = bdrv_co_getlength(bs->file->bs);
if ((int64_t) cluster_offset < 0) { if ((int64_t) cluster_offset < 0) {
return cluster_offset; return cluster_offset;
} }

View file

@ -2132,7 +2132,7 @@ vmdk_co_pwritev_compressed(BlockDriverState *bs, int64_t offset, int64_t bytes,
int64_t length; int64_t length;
for (i = 0; i < s->num_extents; i++) { for (i = 0; i < s->num_extents; i++) {
length = bdrv_getlength(s->extents[i].file->bs); length = bdrv_co_getlength(s->extents[i].file->bs);
if (length < 0) { if (length < 0) {
return length; return length;
} }
@ -2939,7 +2939,7 @@ vmdk_co_check(BlockDriverState *bs, BdrvCheckResult *result, BdrvCheckMode fix)
break; break;
} }
if (ret == VMDK_OK) { if (ret == VMDK_OK) {
int64_t extent_len = bdrv_getlength(extent->file->bs); int64_t extent_len = bdrv_co_getlength(extent->file->bs);
if (extent_len < 0) { if (extent_len < 0) {
fprintf(stderr, fprintf(stderr,
"ERROR: could not get extent file length for sector %" "ERROR: could not get extent file length for sector %"