[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 6/8] block-backend: inline bdrv_co_get_geometry
From: |
Paolo Bonzini |
Subject: |
[PATCH 6/8] block-backend: inline bdrv_co_get_geometry |
Date: |
Fri, 7 Apr 2023 17:33:01 +0200 |
bdrv_co_get_geometry is only used in blk_co_get_geometry. Inline it in
there, to reduce the number of wrappers for bs->total_sectors.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
block.c | 10 ----------
block/block-backend.c | 8 ++++++--
include/block/block-io.h | 3 ---
3 files changed, 6 insertions(+), 15 deletions(-)
diff --git a/block.c b/block.c
index 9de50ac7c811..dbbc8de30c24 100644
--- a/block.c
+++ b/block.c
@@ -5879,16 +5879,6 @@ int64_t coroutine_fn bdrv_co_getlength(BlockDriverState
*bs)
return ret * BDRV_SECTOR_SIZE;
}
-/* return 0 as number of sectors if no device present or error */
-void coroutine_fn bdrv_co_get_geometry(BlockDriverState *bs,
- uint64_t *nb_sectors_ptr)
-{
- int64_t nb_sectors = bdrv_co_nb_sectors(bs);
- IO_CODE();
-
- *nb_sectors_ptr = nb_sectors < 0 ? 0 : nb_sectors;
-}
-
bool bdrv_is_sg(BlockDriverState *bs)
{
IO_CODE();
diff --git a/block/block-backend.c b/block/block-backend.c
index 7d331d93ebbc..f159cc51d264 100644
--- a/block/block-backend.c
+++ b/block/block-backend.c
@@ -1627,16 +1627,20 @@ int64_t coroutine_fn blk_co_getlength(BlockBackend *blk)
return bdrv_co_getlength(blk_bs(blk));
}
+/* return 0 as number of sectors if no device present or error */
void coroutine_fn blk_co_get_geometry(BlockBackend *blk,
uint64_t *nb_sectors_ptr)
{
+ BlockDriverState *bs = blk_bs(blk);
+
IO_CODE();
GRAPH_RDLOCK_GUARD();
- if (!blk_bs(blk)) {
+ if (!bs) {
*nb_sectors_ptr = 0;
} else {
- bdrv_co_get_geometry(blk_bs(blk), nb_sectors_ptr);
+ int64_t nb_sectors = bdrv_co_nb_sectors(bs);
+ *nb_sectors_ptr = nb_sectors < 0 ? 0 : nb_sectors;
}
}
diff --git a/include/block/block-io.h b/include/block/block-io.h
index dbc034b7288e..9e2248a295a6 100644
--- a/include/block/block-io.h
+++ b/include/block/block-io.h
@@ -90,9 +90,6 @@ int64_t co_wrapper
bdrv_get_allocated_file_size(BlockDriverState *bs);
BlockMeasureInfo *bdrv_measure(BlockDriver *drv, QemuOpts *opts,
BlockDriverState *in_bs, Error **errp);
-void coroutine_fn GRAPH_RDLOCK
-bdrv_co_get_geometry(BlockDriverState *bs, uint64_t *nb_sectors_ptr);
-
int coroutine_fn GRAPH_RDLOCK
bdrv_co_delete_file(BlockDriverState *bs, Error **errp);
--
2.39.2
- [PATCH 1/8] block: move has_variable_length to BlockLimits, (continued)
- [PATCH 1/8] block: move has_variable_length to BlockLimits, Paolo Bonzini, 2023/04/07
- [PATCH 2/8] block: remove has_variable_length from filters, Paolo Bonzini, 2023/04/07
- [PATCH 3/8] block: refresh bs->total_sectors on reopen, Paolo Bonzini, 2023/04/07
- [PATCH 5/8] migration/block: replace uses of blk_nb_sectors that do not check result, Paolo Bonzini, 2023/04/07
- [PATCH 4/8] block: remove has_variable_length from BlockDriver, Paolo Bonzini, 2023/04/07
- [PATCH 6/8] block-backend: inline bdrv_co_get_geometry,
Paolo Bonzini <=
- [PATCH 8/8] block, block-backend: write some hot coroutine wrappers by hand, Paolo Bonzini, 2023/04/07
- [PATCH 7/8] block-backend: ignore inserted state in blk_co_nb_sectors, Paolo Bonzini, 2023/04/07
- Re: [PATCH 8.0 regression 0/8] block: remove bdrv_co_get_geometry coroutines from I/O hot path, Kevin Wolf, 2023/04/11