[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH] backup-top: Begin drain earlier
From: |
Max Reitz |
Subject: |
[PATCH] backup-top: Begin drain earlier |
Date: |
Thu, 19 Dec 2019 19:26:38 +0100 |
When dropping backup-top, we need to drain the node before freeing the
BlockCopyState. Otherwise, requests may still be in flight and then the
assertion in shres_destroy() will fail.
(This becomes visible in intermittent failure of 056.)
Cc: address@hidden
Signed-off-by: Max Reitz <address@hidden>
---
block/backup-top.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/block/backup-top.c b/block/backup-top.c
index 7cdb1f8eba..818d3f26b4 100644
--- a/block/backup-top.c
+++ b/block/backup-top.c
@@ -257,12 +257,12 @@ void bdrv_backup_top_drop(BlockDriverState *bs)
BDRVBackupTopState *s = bs->opaque;
AioContext *aio_context = bdrv_get_aio_context(bs);
- block_copy_state_free(s->bcs);
-
aio_context_acquire(aio_context);
bdrv_drained_begin(bs);
+ block_copy_state_free(s->bcs);
+
s->active = false;
bdrv_child_refresh_perms(bs, bs->backing, &error_abort);
bdrv_replace_node(bs, backing_bs(bs), &error_abort);
--
2.23.0
- [PATCH] backup-top: Begin drain earlier,
Max Reitz <=