diff options
author | Sunny Zhu <sunnyzhyy@qq.com> | 2025-04-22 02:21:26 +0800 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2025-04-25 17:06:50 +0200 |
commit | ed1aef171671ef49761017cb1d8d10bf67d05c57 (patch) | |
tree | 3cce0948d4035e2355959555393ab09f6bb180d5 | |
parent | 4733cb0833c4b223f92ec0136980eeb5239ecb87 (diff) | |
download | qemu-ed1aef171671ef49761017cb1d8d10bf67d05c57.zip qemu-ed1aef171671ef49761017cb1d8d10bf67d05c57.tar.gz qemu-ed1aef171671ef49761017cb1d8d10bf67d05c57.tar.bz2 |
block: Remove unused callback function *bdrv_aio_pdiscard
The bytes type in *bdrv_aio_pdiscard should be int64_t rather than int.
There are no drivers implementing the *bdrv_aio_pdiscard() callback,
it appears to be an unused function. Therefore, we'll simply remove it
instead of fixing it.
Additionally, coroutine-based callbacks are preferred. If someone needs
to implement bdrv_aio_pdiscard, a coroutine-based version would be
straightforward to implement.
Signed-off-by: Sunny Zhu <sunnyzhyy@qq.com>
Message-ID: <tencent_7140D2E54157D98CF3D9E64B1A007A1A7906@qq.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
-rw-r--r-- | block/io.c | 22 | ||||
-rw-r--r-- | include/block/block_int-common.h | 4 |
2 files changed, 3 insertions, 23 deletions
@@ -3102,7 +3102,7 @@ int coroutine_fn bdrv_co_pdiscard(BdrvChild *child, int64_t offset, return 0; } - if (!bs->drv->bdrv_co_pdiscard && !bs->drv->bdrv_aio_pdiscard) { + if (!bs->drv->bdrv_co_pdiscard) { return 0; } @@ -3162,24 +3162,8 @@ int coroutine_fn bdrv_co_pdiscard(BdrvChild *child, int64_t offset, ret = -ENOMEDIUM; goto out; } - if (bs->drv->bdrv_co_pdiscard) { - ret = bs->drv->bdrv_co_pdiscard(bs, offset, num); - } else { - BlockAIOCB *acb; - CoroutineIOCompletion co = { - .coroutine = qemu_coroutine_self(), - }; - - acb = bs->drv->bdrv_aio_pdiscard(bs, offset, num, - bdrv_co_io_em_complete, &co); - if (acb == NULL) { - ret = -EIO; - goto out; - } else { - qemu_coroutine_yield(); - ret = co.ret; - } - } + + ret = bs->drv->bdrv_co_pdiscard(bs, offset, num); if (ret && ret != -ENOTSUP) { if (ret == -EINVAL && (offset % align != 0 || num % align != 0)) { /* Silently skip rejected unaligned head/tail requests */ diff --git a/include/block/block_int-common.h b/include/block/block_int-common.h index ebb4e56..0d8187f 100644 --- a/include/block/block_int-common.h +++ b/include/block/block_int-common.h @@ -506,10 +506,6 @@ struct BlockDriver { BlockAIOCB * GRAPH_RDLOCK_PTR (*bdrv_aio_flush)( BlockDriverState *bs, BlockCompletionFunc *cb, void *opaque); - BlockAIOCB * GRAPH_RDLOCK_PTR (*bdrv_aio_pdiscard)( - BlockDriverState *bs, int64_t offset, int bytes, - BlockCompletionFunc *cb, void *opaque); - int coroutine_fn GRAPH_RDLOCK_PTR (*bdrv_co_readv)(BlockDriverState *bs, int64_t sector_num, int nb_sectors, QEMUIOVector *qiov); |