[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 09/10] block: drop .bdrv_is_allocated() interface
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PATCH 09/10] block: drop .bdrv_is_allocated() interface |
Date: |
Fri, 11 Nov 2011 16:47:21 +0000 |
Now that all block drivers have been converted to
.bdrv_co_is_allocated() we can drop .bdrv_is_allocated().
Note that the public bdrv_is_allocated() interface is still available
but is in fact a synchronous wrapper around .bdrv_co_is_allocated().
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
block.c | 38 ++++++++++++++++++--------------------
block_int.h | 2 --
2 files changed, 18 insertions(+), 22 deletions(-)
diff --git a/block.c b/block.c
index f8705b7..082734b 100644
--- a/block.c
+++ b/block.c
@@ -1805,25 +1805,8 @@ static void coroutine_fn bdrv_is_allocated_co_entry(void
*opaque)
int bdrv_is_allocated(BlockDriverState *bs, int64_t sector_num, int nb_sectors,
int *pnum)
{
- int64_t n;
- if (bs->drv->bdrv_co_is_allocated) {
- Coroutine *co;
- BdrvCoIsAllocatedData data = {
- .bs = bs,
- .sector_num = sector_num,
- .nb_sectors = nb_sectors,
- .pnum = pnum,
- .done = false,
- };
-
- co = qemu_coroutine_create(bdrv_is_allocated_co_entry);
- qemu_coroutine_enter(co, &data);
- while (!data.done) {
- qemu_aio_wait();
- }
- return data.ret;
- }
- if (!bs->drv->bdrv_is_allocated) {
+ if (!bs->drv->bdrv_co_is_allocated) {
+ int64_t n;
if (sector_num >= bs->total_sectors) {
*pnum = 0;
return 0;
@@ -1832,7 +1815,22 @@ int bdrv_is_allocated(BlockDriverState *bs, int64_t
sector_num, int nb_sectors,
*pnum = (n < nb_sectors) ? (n) : (nb_sectors);
return 1;
}
- return bs->drv->bdrv_is_allocated(bs, sector_num, nb_sectors, pnum);
+
+ Coroutine *co;
+ BdrvCoIsAllocatedData data = {
+ .bs = bs,
+ .sector_num = sector_num,
+ .nb_sectors = nb_sectors,
+ .pnum = pnum,
+ .done = false,
+ };
+
+ co = qemu_coroutine_create(bdrv_is_allocated_co_entry);
+ qemu_coroutine_enter(co, &data);
+ while (!data.done) {
+ qemu_aio_wait();
+ }
+ return data.ret;
}
void bdrv_mon_event(const BlockDriverState *bdrv,
diff --git a/block_int.h b/block_int.h
index 1c1351c..821237b 100644
--- a/block_int.h
+++ b/block_int.h
@@ -63,8 +63,6 @@ struct BlockDriver {
const uint8_t *buf, int nb_sectors);
void (*bdrv_close)(BlockDriverState *bs);
int (*bdrv_create)(const char *filename, QEMUOptionParameter *options);
- int (*bdrv_is_allocated)(BlockDriverState *bs, int64_t sector_num,
- int nb_sectors, int *pnum);
int (*bdrv_set_key)(BlockDriverState *bs, const char *key);
int (*bdrv_make_empty)(BlockDriverState *bs);
/* aio */
--
1.7.7.1
[Qemu-devel] [PATCH 05/10] vvfat: use public block layer interface, Stefan Hajnoczi, 2011/11/11
[Qemu-devel] [PATCH 08/10] cow: convert to .bdrv_co_is_allocated(), Stefan Hajnoczi, 2011/11/11
[Qemu-devel] [PATCH 06/10] vvfat: convert to .bdrv_co_is_allocated(), Stefan Hajnoczi, 2011/11/11
[Qemu-devel] [PATCH 09/10] block: drop .bdrv_is_allocated() interface,
Stefan Hajnoczi <=
[Qemu-devel] [PATCH 04/10] block: convert qcow2, qcow2, and vmdk to .bdrv_co_is_allocated(), Stefan Hajnoczi, 2011/11/11
[Qemu-devel] [PATCH 07/10] vdi: convert to .bdrv_co_is_allocated(), Stefan Hajnoczi, 2011/11/11
[Qemu-devel] [PATCH 10/10] block: add bdrv_co_is_allocated() interface, Stefan Hajnoczi, 2011/11/11