qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, hreitz@redhat.com, stefanha@redhat.com,
	pkrempa@redhat.com, peterx@redhat.com, farosas@suse.de,
	qemu-devel@nongnu.org
Subject: [PATCH v3 05/16] block: Don't attach inactive child to active node
Date: Tue,  4 Feb 2025 22:13:56 +0100	[thread overview]
Message-ID: <20250204211407.381505-6-kwolf@redhat.com> (raw)
In-Reply-To: <20250204211407.381505-1-kwolf@redhat.com>

An active node makes unrestricted use of its children and would possibly
run into assertion failures when it operates on an inactive child node.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Fabiano Rosas <farosas@suse.de>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
---
 block.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/block.c b/block.c
index 9458c5e013..66a99e87c5 100644
--- a/block.c
+++ b/block.c
@@ -3183,6 +3183,11 @@ bdrv_attach_child_noperm(BlockDriverState *parent_bs,
                    child_bs->node_name, child_name, parent_bs->node_name);
         return NULL;
     }
+    if (bdrv_is_inactive(child_bs) && !bdrv_is_inactive(parent_bs)) {
+        error_setg(errp, "Inactive '%s' can't be a %s child of active '%s'",
+                   child_bs->node_name, child_name, parent_bs->node_name);
+        return NULL;
+    }
 
     bdrv_get_cumulative_perm(parent_bs, &perm, &shared_perm);
     bdrv_child_perm(parent_bs, child_bs, NULL, child_role, NULL,
-- 
2.48.1



  parent reply	other threads:[~2025-02-04 21:16 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-04 21:13 [PATCH v3 00/16] block: Managing inactive nodes (QSD migration) Kevin Wolf
2025-02-04 21:13 ` [PATCH v3 01/16] block: Add 'active' field to BlockDeviceInfo Kevin Wolf
2025-02-04 21:13 ` [PATCH v3 02/16] block: Allow inactivating already inactive nodes Kevin Wolf
2025-02-04 21:13 ` [PATCH v3 03/16] block: Inactivate external snapshot overlays when necessary Kevin Wolf
2025-02-04 21:13 ` [PATCH v3 04/16] migration/block-active: Remove global active flag Kevin Wolf
2025-02-04 21:13 ` Kevin Wolf [this message]
2025-02-04 21:13 ` [PATCH v3 06/16] block: Fix crash on block_resize on inactive node Kevin Wolf
2025-02-04 21:13 ` [PATCH v3 07/16] block: Add option to create inactive nodes Kevin Wolf
2025-02-04 21:13 ` [PATCH v3 08/16] block: Add blockdev-set-active QMP command Kevin Wolf
2025-02-04 21:14 ` [PATCH v3 09/16] block: Support inactive nodes in blk_insert_bs() Kevin Wolf
2025-02-04 21:14 ` [PATCH v3 10/16] block/export: Don't ignore image activation error in blk_exp_add() Kevin Wolf
2025-02-04 21:14 ` [PATCH v3 11/16] block: Drain nodes before inactivating them Kevin Wolf
2025-02-05 20:42   ` Eric Blake
2025-02-04 21:14 ` [PATCH v3 12/16] block/export: Add option to allow export of inactive nodes Kevin Wolf
2025-02-04 21:14 ` [PATCH v3 13/16] nbd/server: Support " Kevin Wolf
2025-02-05 20:43   ` Eric Blake
2025-02-04 21:14 ` [PATCH v3 14/16] iotests: Add filter_qtest() Kevin Wolf
2025-02-04 21:14 ` [PATCH v3 15/16] iotests: Add qsd-migrate case Kevin Wolf
2025-02-05 20:46   ` Eric Blake
2025-02-24 10:23   ` Thomas Huth
2025-02-24 13:13     ` Kevin Wolf
2025-02-04 21:14 ` [PATCH v3 16/16] iotests: Add (NBD-based) tests for inactive nodes Kevin Wolf
2025-02-05 20:49   ` Eric Blake
2025-02-05 15:35 ` [PATCH v3 00/16] block: Managing inactive nodes (QSD migration) Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250204211407.381505-6-kwolf@redhat.com \
    --to=kwolf@redhat.com \
    --cc=farosas@suse.de \
    --cc=hreitz@redhat.com \
    --cc=peterx@redhat.com \
    --cc=pkrempa@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).