block: Use bdrv_drain to replace uncessary bdrv_drain_all
There callers work on a single BlockDriverState subtree, where using bdrv_drain() is more accurate. Signed-off-by: Fam Zheng <famz@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
c2e0dbbfd7
commit
53ec73e264
6
block.c
6
block.c
@ -1841,9 +1841,9 @@ void bdrv_close(BlockDriverState *bs)
|
||||
if (bs->job) {
|
||||
block_job_cancel_sync(bs->job);
|
||||
}
|
||||
bdrv_drain_all(); /* complete I/O */
|
||||
bdrv_drain(bs); /* complete I/O */
|
||||
bdrv_flush(bs);
|
||||
bdrv_drain_all(); /* in case flush left pending I/O */
|
||||
bdrv_drain(bs); /* in case flush left pending I/O */
|
||||
notifier_list_notify(&bs->close_notifiers, bs);
|
||||
|
||||
if (bs->drv) {
|
||||
@ -3906,7 +3906,7 @@ void bdrv_attach_aio_context(BlockDriverState *bs,
|
||||
|
||||
void bdrv_set_aio_context(BlockDriverState *bs, AioContext *new_context)
|
||||
{
|
||||
bdrv_drain_all(); /* ensure there are no in-flight requests */
|
||||
bdrv_drain(bs); /* ensure there are no in-flight requests */
|
||||
|
||||
bdrv_detach_aio_context(bs);
|
||||
|
||||
|
@ -239,7 +239,7 @@ int bdrv_snapshot_delete(BlockDriverState *bs,
|
||||
}
|
||||
|
||||
/* drain all pending i/o before deleting snapshot */
|
||||
bdrv_drain_all();
|
||||
bdrv_drain(bs);
|
||||
|
||||
if (drv->bdrv_snapshot_delete) {
|
||||
return drv->bdrv_snapshot_delete(bs, snapshot_id, name, errp);
|
||||
|
@ -457,7 +457,7 @@ static int mig_save_device_dirty(QEMUFile *f, BlkMigDevState *bmds,
|
||||
blk_mig_lock();
|
||||
if (bmds_aio_inflight(bmds, sector)) {
|
||||
blk_mig_unlock();
|
||||
bdrv_drain_all();
|
||||
bdrv_drain(bmds->bs);
|
||||
} else {
|
||||
blk_mig_unlock();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user