mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-03-04 09:04:39 -07:00
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>
This commit is contained in:
parent
4733cb0833
commit
ed1aef1716
2 changed files with 2 additions and 22 deletions
20
block/io.c
20
block/io.c
|
|
@ -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 */
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue