qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 2/2] block-stream: include base into job node list


From: Andrey Shinkevich
Subject: [Qemu-devel] [PATCH 2/2] block-stream: include base into job node list
Date: Thu, 21 Feb 2019 18:26:39 +0300

The block-stream job needs to own the base node as the limiter
of the copy-on-read operation. So, the base node is included in
the job node list (block_job_add_bdrv).
Also, the block-stream job would not allow the base node to go
away due to the graph modification, e.g. when a filter node is
inserted between the bottom node and the base node.
For that reason, the flag BLK_PERM_GRAPH_MOD is unset in the
shared permission bit mask of the base node.

Signed-off-by: Andrey Shinkevich <address@hidden>
---
 block/stream.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/block/stream.c b/block/stream.c
index 7a49ac0..c8f93d4 100644
--- a/block/stream.c
+++ b/block/stream.c
@@ -259,6 +259,15 @@ void stream_start(const char *job_id, BlockDriverState *bs,
                            &error_abort);
     }
 
+    if (base) {
+        /*
+         * The base node should not disappear during the job.
+         */
+        block_job_add_bdrv(&s->common, "base", base, 0,
+                           BLK_PERM_ALL & ~BLK_PERM_GRAPH_MOD,
+                           &error_abort);
+    }
+
     s->base = base;
     s->backing_file_str = g_strdup(backing_file_str);
     s->bs_read_only = bs_read_only;
-- 
1.8.3.1



reply via email to

[Prev in Thread] Current Thread [Next in Thread]