Move bdrv_delete(target) one line down to give block job caller a chance to handle target on completion before deleting it.
Signed-off-by: Fam Zheng <[email protected]> --- block/backup.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/backup.c b/block/backup.c index 6ae8a05..d80341c 100644 --- a/block/backup.c +++ b/block/backup.c @@ -338,9 +338,9 @@ static void coroutine_fn backup_run(void *opaque) hbitmap_free(job->bitmap); bdrv_iostatus_disable(target); - bdrv_delete(target); block_job_completed(&job->common, ret); + bdrv_delete(target); } void backup_start(BlockDriverState *bs, BlockDriverState *target, -- 1.8.3.4
