summary refs log tree commit diff stats
path: root/block/commit.c
diff options
context:
space:
mode:
authorMax Reitz <mreitz@redhat.com>2019-07-03 19:28:02 +0200
committerMax Reitz <mreitz@redhat.com>2019-07-15 15:48:40 +0200
commite5182c1c57ac9aa0e9c399b9c60af3c41cff35b4 (patch)
tree04e54401d154ee49cc0c0855dccef3a9413b04c8 /block/commit.c
parent95667c3be0c9f5fc62f58fe845879250f63f7d32 (diff)
downloadfocaccia-qemu-e5182c1c57ac9aa0e9c399b9c60af3c41cff35b4.tar.gz
focaccia-qemu-e5182c1c57ac9aa0e9c399b9c60af3c41cff35b4.zip
block: Add BDS.never_freeze
The commit and the mirror block job must be able to drop their filter
node at any point.  However, this will not be possible if any of the
BdrvChild links to them is frozen.  Therefore, we need to prevent them
from ever becoming frozen.

Signed-off-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Message-id: 20190703172813.6868-2-mreitz@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'block/commit.c')
-rw-r--r--block/commit.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/block/commit.c b/block/commit.c
index ca7e408b26..2c5a6d4ebc 100644
--- a/block/commit.c
+++ b/block/commit.c
@@ -298,6 +298,10 @@ void commit_start(const char *job_id, BlockDriverState *bs,
     if (!filter_node_name) {
         commit_top_bs->implicit = true;
     }
+
+    /* So that we can always drop this node */
+    commit_top_bs->never_freeze = true;
+
     commit_top_bs->total_sectors = top->total_sectors;
 
     bdrv_append(commit_top_bs, top, &local_err);