Message ID | 20220521122714.3837731-1-stefanha@redhat.com |
---|---|
State | New |
Headers | show |
Series | block: drop unused bdrv_co_drain() API | expand |
Am 21/05/2022 um 14:27 schrieb Stefan Hajnoczi: > bdrv_co_drain() has not been used since commit 9a0cec664eef ("mirror: > use bdrv_drained_begin/bdrv_drained_end") in 2016. Remove it so there > are fewer drain scenarios to worry about. > > Use bdrv_drained_begin()/bdrv_drained_end() instead. They are "mixed" > functions that can be called from coroutine context. Unlike > bdrv_co_drain(), these functions provide control of the length of the > drained section, which is usually the right thing. > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Emanuele Giuseppe Esposito <eesposit@redhat.com> Thank you, Emanuele > --- > include/block/block-io.h | 1 - > block/io.c | 15 --------------- > 2 files changed, 16 deletions(-) > > diff --git a/include/block/block-io.h b/include/block/block-io.h > index 62c84f0519..053a27141a 100644 > --- a/include/block/block-io.h > +++ b/include/block/block-io.h > @@ -270,7 +270,6 @@ void bdrv_drained_end_no_poll(BlockDriverState *bs, int *drained_end_counter); > cond); }) > > void bdrv_drain(BlockDriverState *bs); > -void coroutine_fn bdrv_co_drain(BlockDriverState *bs); > > int generated_co_wrapper > bdrv_truncate(BdrvChild *child, int64_t offset, bool exact, > diff --git a/block/io.c b/block/io.c > index 789e6373d5..1e9bf09a49 100644 > --- a/block/io.c > +++ b/block/io.c > @@ -588,21 +588,6 @@ void bdrv_unapply_subtree_drain(BdrvChild *child, BlockDriverState *old_parent) > BDRV_POLL_WHILE(child->bs, qatomic_read(&drained_end_counter) > 0); > } > > -/* > - * Wait for pending requests to complete on a single BlockDriverState subtree, > - * and suspend block driver's internal I/O until next request arrives. > - * > - * Note that unlike bdrv_drain_all(), the caller must hold the BlockDriverState > - * AioContext. > - */ > -void coroutine_fn bdrv_co_drain(BlockDriverState *bs) > -{ > - IO_OR_GS_CODE(); > - assert(qemu_in_coroutine()); > - bdrv_drained_begin(bs); > - bdrv_drained_end(bs); > -} > - > void bdrv_drain(BlockDriverState *bs) > { > IO_OR_GS_CODE(); >
On Sat, May 21, 2022 at 1:27 PM Stefan Hajnoczi <stefanha@redhat.com> wrote: > bdrv_co_drain() has not been used since commit 9a0cec664eef ("mirror: > use bdrv_drained_begin/bdrv_drained_end") in 2016. Remove it so there > are fewer drain scenarios to worry about. > > Use bdrv_drained_begin()/bdrv_drained_end() instead. They are "mixed" > functions that can be called from coroutine context. Unlike > bdrv_co_drain(), these functions provide control of the length of the > drained section, which is usually the right thing. > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Alberto Faria <afaria@redhat.com>
Am 21.05.2022 um 14:27 hat Stefan Hajnoczi geschrieben: > bdrv_co_drain() has not been used since commit 9a0cec664eef ("mirror: > use bdrv_drained_begin/bdrv_drained_end") in 2016. Remove it so there > are fewer drain scenarios to worry about. > > Use bdrv_drained_begin()/bdrv_drained_end() instead. They are "mixed" > functions that can be called from coroutine context. Unlike > bdrv_co_drain(), these functions provide control of the length of the > drained section, which is usually the right thing. > > Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Thanks, applied to the block branch. Kevin
diff --git a/include/block/block-io.h b/include/block/block-io.h index 62c84f0519..053a27141a 100644 --- a/include/block/block-io.h +++ b/include/block/block-io.h @@ -270,7 +270,6 @@ void bdrv_drained_end_no_poll(BlockDriverState *bs, int *drained_end_counter); cond); }) void bdrv_drain(BlockDriverState *bs); -void coroutine_fn bdrv_co_drain(BlockDriverState *bs); int generated_co_wrapper bdrv_truncate(BdrvChild *child, int64_t offset, bool exact, diff --git a/block/io.c b/block/io.c index 789e6373d5..1e9bf09a49 100644 --- a/block/io.c +++ b/block/io.c @@ -588,21 +588,6 @@ void bdrv_unapply_subtree_drain(BdrvChild *child, BlockDriverState *old_parent) BDRV_POLL_WHILE(child->bs, qatomic_read(&drained_end_counter) > 0); } -/* - * Wait for pending requests to complete on a single BlockDriverState subtree, - * and suspend block driver's internal I/O until next request arrives. - * - * Note that unlike bdrv_drain_all(), the caller must hold the BlockDriverState - * AioContext. - */ -void coroutine_fn bdrv_co_drain(BlockDriverState *bs) -{ - IO_OR_GS_CODE(); - assert(qemu_in_coroutine()); - bdrv_drained_begin(bs); - bdrv_drained_end(bs); -} - void bdrv_drain(BlockDriverState *bs) { IO_OR_GS_CODE();
bdrv_co_drain() has not been used since commit 9a0cec664eef ("mirror: use bdrv_drained_begin/bdrv_drained_end") in 2016. Remove it so there are fewer drain scenarios to worry about. Use bdrv_drained_begin()/bdrv_drained_end() instead. They are "mixed" functions that can be called from coroutine context. Unlike bdrv_co_drain(), these functions provide control of the length of the drained section, which is usually the right thing. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> --- include/block/block-io.h | 1 - block/io.c | 15 --------------- 2 files changed, 16 deletions(-)