From nobody Fri May 17 04:49:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=quarantine dis=quarantine) header.from=virtuozzo.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1640189026540383.54472459343776; Wed, 22 Dec 2021 08:03:46 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-528-xcxl7etRPTSqFZ7Vag9kfg-1; Wed, 22 Dec 2021 11:03:37 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A6BD6100F943; Wed, 22 Dec 2021 16:03:32 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 51BEE7E11E; Wed, 22 Dec 2021 16:03:32 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 53FFC1809CBA; Wed, 22 Dec 2021 16:03:31 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 1BMG3TSc004618 for ; Wed, 22 Dec 2021 11:03:29 -0500 Received: by smtp.corp.redhat.com (Postfix) id 7B7DE40CFD19; Wed, 22 Dec 2021 16:03:29 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast07.extmail.prod.ext.rdu2.redhat.com [10.11.55.23]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7548F40CFD18 for ; Wed, 22 Dec 2021 16:03:29 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 5CB5A3C00089 for ; Wed, 22 Dec 2021 16:03:29 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70092.outbound.protection.outlook.com [40.107.7.92]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-523-tRu1DqQPOcGBqsjvtf8WQg-2; Wed, 22 Dec 2021 11:03:22 -0500 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) by AM9PR08MB6148.eurprd08.prod.outlook.com (2603:10a6:20b:284::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Wed, 22 Dec 2021 16:03:10 +0000 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b118:483a:d003:3112]) by AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b118:483a:d003:3112%5]) with mapi id 15.20.4823.016; Wed, 22 Dec 2021 16:03:10 +0000 X-MC-Unique: xcxl7etRPTSqFZ7Vag9kfg-1 X-MC-Unique: tRu1DqQPOcGBqsjvtf8WQg-2 From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Subject: [PATCH v2 1/4] block-backend: blk_root(): drop const specifier on return type Date: Wed, 22 Dec 2021 17:02:51 +0100 Message-ID: <20211222160254.226909-2-vsementsov@virtuozzo.com> In-Reply-To: <20211222160254.226909-1-vsementsov@virtuozzo.com> References: <20211222160254.226909-1-vsementsov@virtuozzo.com> X-ClientProxiedBy: AM6P193CA0070.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::47) To AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: dff2d1fd-3ccb-47ba-9507-08d9c5648d11 X-MS-TrafficTypeDiagnostic: AM9PR08MB6148:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:913 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: MOXFtntPyRYa5kO3nmHwHAeS07nedtVeTdryhdTEH4VvB1EqIRoY+RJyM45jFdwS/+3LHq9oAXdnUCilEasuwrdOglPfLrkSrYHYLbZAhHHeMYVA0Yhvt3o/pKMb3sNHsy7bPuRDyTq6aPU5vuwfmsaA3OMGs/WRDQyKr7J9lcCo7dPhmB4Bu1Pt9zE9s/AGxnPyn+9BLr+IQJsdKkVUvSPvXECZlxK/Pdav0SZVpZ+3PyFpjukfXfmWavPq/l+q+m/mXL6A3wdEFAkLtqEOgWAfopfPkCvMv7lpZp+7iuxVckgjCWclsuxcAjYdGAlqFmoA0wUpKxuXUNgJqPjQ856f1s6tKE7a5GhX7wn5H9wY9eFKYqr3PvCvtFSocitrkQJeyXO8ie1eWN7kL5TRHTY4/wWm6ma75x9HSj86IsbrFlok6yuhB/Ky7zunEg+0p62NA9YxHW0Um62u2e1aQwM+tsky//s+rgYnyRetlA0jc96piagLEIPm1yxlrALCEqbcgULjZrUCwjV1pt57FkLcze54KfFvaJttfj2Ld8AJgNC0ll4YuC/TPpE2xHLqFgjcSPwJnDNM3xi/v2NzhJhWpSoAi2uSCpPsjiGYjCBtuyvP5U1SsFJ5cEVQXKSBB0jtKJChVKvqhfz/JEPYVsHdN9AwbA0YgnI+9w6Kx2B48dJg27jD9mEY6dAEXwVN9ebU6mjQ1RjoTgK9ZYspvA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR08MB6737.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38350700002)(38100700002)(6506007)(316002)(2906002)(6916009)(2616005)(1076003)(5660300002)(83380400001)(6666004)(86362001)(8936002)(6512007)(66476007)(36756003)(6486002)(186003)(26005)(4326008)(8676002)(66556008)(508600001)(66946007)(52116002); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5Mp04MWxrYMw9/CeWuAKM8v2IvOOc/qo8S0Wuo7p+1mhNdVlg6a1IvBass7Q?= =?us-ascii?Q?+zEBjF9mFeA8T4LL4lHx1cGPxuSRV1x/GaXmfa8Syj6j93bDtHpSJ4+BkCZf?= =?us-ascii?Q?czyX4w9GBYwQb64dlyNzV6Ms//THVpGllyx1cpH/Gs0GUUQ2znCbnoSCIigB?= =?us-ascii?Q?m5TMd+cRqkwSrQ6GiYj9BxkmeI9+ZdwY3iE1kvGE7CRe06vCCgarsYRTFrWN?= =?us-ascii?Q?IPAy2A+2mZIaFBzL3Wi+w1XhgXdThLtN/fvrvc1wane1qLiZsmb5xgkOoQpD?= =?us-ascii?Q?2+KKC58dOyF2KATt6zxLiTFyJeYbIO4xr3zuI1ZAiRfHGMdOlPEr2ODiyo7e?= =?us-ascii?Q?r16vIIMYNZ4hTbKGIHnFbn/3lnPSH3nbp/RhNdEEw06CT1DaTkua/iYBzxYV?= =?us-ascii?Q?Dt7UC2T6YS/t3/Bz4GGgIMfYpLAC6e56DuQeJxFEcwCC90ILOjXWTS50jYBc?= =?us-ascii?Q?Ie2p8zx2UvupcJ1Fn5SHL2LfL/qS/DRvxi8cV2VqybbvakWF5e2QCy3cZiFt?= =?us-ascii?Q?fSVgCfJYhI/kt18A9elaVuhgKml4iWQrd3O2myQA+KQJVrspIra/T8vM5Tk7?= =?us-ascii?Q?x63C2W3zIDqyvQSI84GCeeQmAm+zmEI7d11OCB5kOaIx6Y18uPhhWQD4t7a3?= =?us-ascii?Q?WSvkcgVS5BcW11pdHU6bM9ThqaMBrj/FblNaPqkFhmKyAjzl8oW3sRuoUgls?= =?us-ascii?Q?PY+RGRqeN1oLkCnctRewDxMgesMFh5EUDGhapex1uH7vf/7Y+f144q/C87Kc?= =?us-ascii?Q?kCU/tPfzbHs0K2ZKWgK+e1MI44rdlE4fGDbUYPZVZFFZQAnZ2P1g+V1+Wz4R?= =?us-ascii?Q?avNcl/iD9g2iFxoOHsRITeCYdgqW6yf7fmzgJIA3H7Crg9dtgGTQBVbbEGNY?= =?us-ascii?Q?Ri+3+bPaZJ6KApNIEiGa7NI4txWr8mqcSM2WaesoYAYGpsTZ/zJIQIR+CB11?= =?us-ascii?Q?GQPALv0xH5tYDUo2ksw4M9ROE+5pMxObj9PbIRSA5BizPseLORoUPOlYL7pi?= =?us-ascii?Q?Tcead7CQQhcLLnoV+phEubYPcOJjwyiMa7bLb73QpW47OIC04W1ZE09FjtfR?= =?us-ascii?Q?j+9Xr4DzaEL7rc0ppv3FsN1ClgkjFmbMW/v/VFfqQbNNJNoLlrfxRNn9gLPk?= =?us-ascii?Q?OpzAXtniPabhbxnmz5uSZXA6PUT69zjFikjG1N3lR6utd++oS7Cl1YW0HjgZ?= =?us-ascii?Q?6CkeKiusP9mN1Bf+i5X4K+9eV2ZGyKf0+T+CDNjgduGeIUWCPQ5klXJXISd4?= =?us-ascii?Q?TxdwzGqPSFb+u1Hg3ZJmFPXtEAOIfvcWtMQUgV0ILxfg5yzXocU4/nbOz95c?= =?us-ascii?Q?J9NU3sesWDCq+s5b9ANSz+17OGrABFjeMU8x5nnmmMQweeDj/qJz7cgOl/Ra?= =?us-ascii?Q?Qwe381UqkL1wvRYIYQEnb+pfTW6LeAr4vAodhPsIcuDiA+ofz0hXwK/RALL7?= =?us-ascii?Q?S6watt2RaUxmFjprwpNa7m0YH6rJbLywLxVCPD/Na0UJaO09npqSr4xf0Mk4?= =?us-ascii?Q?M40r7IKDyMxd33a8/UgmRhqdLXxqaxG6VNVh9vi6cboim3nnHZbe1xPvHJwX?= =?us-ascii?Q?X51zQ/Prfu99muqcfEZNjX6eniK/ZJxCUVd5OAgLns2kV3gRPsw+t7+R+XAd?= =?us-ascii?Q?1/mTn4tLTXvQ2uo7kZ0j7q1+kpem0PLf8vstIn+O3Pwmfi83g7Q+agSvlF3Q?= =?us-ascii?Q?i+tuOe3Xd0u1oq9X8G7D7RoPKR4=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: dff2d1fd-3ccb-47ba-9507-08d9c5648d11 X-MS-Exchange-CrossTenant-AuthSource: AM9PR08MB6737.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Dec 2021 16:03:10.6602 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3vmVT6rZo5CVWOOmSBfI53CcG4KiM5CHRoVNIErFgdarGXolQF9QPMZo6mbUZoZFMdeZReetmP/hOgF5NK42aN+2otl0mKkr/6wkOuxUs40= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6148 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 1BMG3TSc004618 X-loop: libvir-list@redhat.com Cc: kwolf@redhat.com, vsementsov@virtuozzo.com, libvir-list@redhat.com, dim@virtuozzo.com, igor@virtuozzo.com, qemu-devel@nongnu.org, armbru@redhat.com, hreitz@redhat.com, pkrempa@redhat.com, yur@virtuozzo.com, nshirokovskiy@virtuozzo.com, stefanha@redhat.com, den@openvz.org, eblake@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1640189028225100001 Content-Type: text/plain; charset="utf-8" We'll need get non-const child pointer for graph modifications in further commits. Signed-off-by: Vladimir Sementsov-Ogievskiy --- include/sysemu/block-backend.h | 2 +- block/block-backend.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h index e5e1524f06..904d70f49c 100644 --- a/include/sysemu/block-backend.h +++ b/include/sysemu/block-backend.h @@ -277,7 +277,7 @@ int coroutine_fn blk_co_copy_range(BlockBackend *blk_in= , int64_t off_in, int64_t bytes, BdrvRequestFlags read_fl= ags, BdrvRequestFlags write_flags); =20 -const BdrvChild *blk_root(BlockBackend *blk); +BdrvChild *blk_root(BlockBackend *blk); =20 int blk_make_empty(BlockBackend *blk, Error **errp); =20 diff --git a/block/block-backend.c b/block/block-backend.c index 12ef80ea17..d994a0f096 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -2438,7 +2438,7 @@ int coroutine_fn blk_co_copy_range(BlockBackend *blk_= in, int64_t off_in, bytes, read_flags, write_flags); } =20 -const BdrvChild *blk_root(BlockBackend *blk) +BdrvChild *blk_root(BlockBackend *blk) { return blk->root; } --=20 2.31.1 From nobody Fri May 17 04:49:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=quarantine dis=quarantine) header.from=virtuozzo.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1640189036686431.59225337677526; Wed, 22 Dec 2021 08:03:56 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-261-iblTxLK8O6ucHil57b-9aw-1; Wed, 22 Dec 2021 11:03:53 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 67244100F94F; Wed, 22 Dec 2021 16:03:48 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 3F55784729; Wed, 22 Dec 2021 16:03:48 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 11B844A7C8; Wed, 22 Dec 2021 16:03:48 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 1BMG3UJn004623 for ; Wed, 22 Dec 2021 11:03:31 -0500 Received: by smtp.corp.redhat.com (Postfix) id C4C73141DC29; Wed, 22 Dec 2021 16:03:30 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast08.extmail.prod.ext.rdu2.redhat.com [10.11.55.24]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BF613141DC28 for ; Wed, 22 Dec 2021 16:03:30 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id A6F0038035C1 for ; Wed, 22 Dec 2021 16:03:30 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70092.outbound.protection.outlook.com [40.107.7.92]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-523-r2zO6IFAMVmHUSMGiG9xDg-3; Wed, 22 Dec 2021 11:03:26 -0500 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) by AM9PR08MB6148.eurprd08.prod.outlook.com (2603:10a6:20b:284::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Wed, 22 Dec 2021 16:03:11 +0000 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b118:483a:d003:3112]) by AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b118:483a:d003:3112%5]) with mapi id 15.20.4823.016; Wed, 22 Dec 2021 16:03:11 +0000 X-MC-Unique: iblTxLK8O6ucHil57b-9aw-1 X-MC-Unique: r2zO6IFAMVmHUSMGiG9xDg-3 From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Subject: [PATCH v2 2/4] block/export: add blk_by_export_id() Date: Wed, 22 Dec 2021 17:02:52 +0100 Message-ID: <20211222160254.226909-3-vsementsov@virtuozzo.com> In-Reply-To: <20211222160254.226909-1-vsementsov@virtuozzo.com> References: <20211222160254.226909-1-vsementsov@virtuozzo.com> X-ClientProxiedBy: AM6P193CA0070.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::47) To AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 142afff9-f946-44c3-23ec-08d9c5648d71 X-MS-TrafficTypeDiagnostic: AM9PR08MB6148:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:81 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: e/4Pu/L7b1RAJ+JGRAYmcrHJf9EYjRP3uV4wPLHFnpL4DzjpwJTnFrm2CbfguN91a85VT2072sultOtnSOy8LWzjNh4ZYl47+sH07etnJow1RIFTQuPhS5sWlm5ctQClhcsf1FAXRk2mZKsSwD4UPTD6uXQlT/QOlQRTs7G5QlGvZkZlSpCVNdHNe59ymEpvEzjIyNa6cnK46evzxZjUXfS79HAKcV1kbpyAR0bKJoM8u47/YRgi7yXNMIL67KpSM3Ko3iL2PM4mNdBd/N4V/rpiEL/BUJORtRlk+yaJKxk4ywdweNYYtgmi0kGLX16hQ18f8sjbuv4Splwr4bH9lYqGTY8Z8IKpd7/+/aRo1o7Qpp+vYrMihBI1IwnYZmVGApauCiNoOwdNf7wmSqauBC16K15nEC7UFst8OLFwBXocNnPi+e+AobmyOn3R1KZ4feSz7osDwhk48le8mPCJsVZqRxIXUc3yeYKNBXhA1PuNZFdh7cODrnGz4hrXtJI53wmhQSKTxbmX3m294U45FBTXKhc/ZAed4Q/9KnMcv3ojzo5hoFgS9HcM2+0Pr0gW/F1HDlhiCyUn4uvaILda8pcfN5u1z2MV34ZMaS7Vw6i5YXItgBGb6gCSC9pVhVTWDABRa09lHTKeCvAP6+k34EUhmxO/xb9a1FtMMYlrYhdOIBUcCz3ysbvk31aIC2G3d+mLCRGMQgXNcolXyqm0UQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR08MB6737.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38350700002)(38100700002)(6506007)(316002)(2906002)(6916009)(2616005)(1076003)(5660300002)(83380400001)(6666004)(86362001)(8936002)(6512007)(66476007)(36756003)(6486002)(186003)(26005)(4326008)(8676002)(66556008)(508600001)(66946007)(52116002); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VVogmBEFn1y4zX1ILojKTmk4iQ17DeDXQ4J0dhbkia9Zr3NP7O5ptYFbEzQX?= =?us-ascii?Q?PVPcX4YIiuvWrkuHT3mZfr03jYm82+0YzyMvj8AQRvU9qdzj7qVA+crOK85Z?= =?us-ascii?Q?97LbEwQfOqd/5yKkEKAUaDCDfzxcPiszRnlEY6K16QpjRKjWJwIBvqEEYIEt?= =?us-ascii?Q?uLYQ7KGPMUt34coMTK1/qAV2a0RAz7+25DXkF1SRaGh3INgzxVNlcJhVl3Rs?= =?us-ascii?Q?H9s5Bq/8f2fyFPcaC7xmyJjWkhw9oE3q6PvetKx1pEuZXYLgFb2IqFMpOuaX?= =?us-ascii?Q?LoVNEzVFwPgTVgtecSdIAxFuv28svJTjwkQcSNJb9H7zjuGGSaqtyd+esFoq?= =?us-ascii?Q?FSeszb4JCWTtrtpOUKi/JcBKq/6UzAxXmmQfcj+u937DoOFu05h8svLc9rFz?= =?us-ascii?Q?+5tzUUDMd8XtyXNkOzWbQS1c8PVx1ZgKGfs/YXUhz7ZBQ9dOEe5M2PuufsLG?= =?us-ascii?Q?uE7pDvhpJmXZdHxfkGI5xi4Fgkr9HZyQB/voTgHA83lclV8Su6hX3BFw6jjy?= =?us-ascii?Q?bOURi2wUJQqqb/i3Qqr5tm3n4s/5pHjfg1GyGwvmwDEb+x0ClDwM2DRqcE19?= =?us-ascii?Q?dEXyiPxF6jKjDkwJ+HycHh0/PC8Fd9YXNpzY0qH6SWFBIRaxCPMeyS+pwjex?= =?us-ascii?Q?ZrIRlGCCFcBpLE+3GRtV5Tc0ogxTl6FPx+3AQzA0UYKwTIa54kY+PRrB/pK/?= =?us-ascii?Q?RmRNi3UNweWIPvrbzC65nAkkbaFBfv92YXXc6KDV0QcjQQWvXbTNhd40IPeo?= =?us-ascii?Q?OQ1ONKZvzXRDEc78UjXoME+sujf/xcS4a3LxPt11TKkV4eUNjlp9fAMlxV4I?= =?us-ascii?Q?ulrKUbdWye+c9UDE64as2hGQx0JLu8+1zcLiPEnbwlfrvVKFitD+rPNUlKdT?= =?us-ascii?Q?y89z9wsZJNKLUiKQFlvSxi6sbGnCaxa4GXgyHNehm0oU4SbnivqErU/SO0D4?= =?us-ascii?Q?k1zpQe2JCu9WXNjEek8DUEHR8jsJkG+WKBaw/lG+nSDK3kuX347FN81nOkmZ?= =?us-ascii?Q?lHseAd/+lKmo7AlAutRUIHjoaFWnEBrEtf8fIb5n8wGwk07MEwlJvAWDJvw0?= =?us-ascii?Q?bT7Hl0qzKicZtTJkEzNKwlNVNnzeFpktcxA+0P2w7CImFHvzjBho98sJeo7l?= =?us-ascii?Q?uOdy4vGNBeWVsuTP/+3z/DI835Uh09Mqr61m/MM5xI4EQXvUBsrUEfOgh0Uy?= =?us-ascii?Q?7FcovsqoJ2sibR1QMWS8Iac6EykhwzGlPH3beFugLYK5KDafjug23kAOJywt?= =?us-ascii?Q?ekEEuDOqlVwsGh3UmUxfSDkouTXGnhWRzdA0xM/whN3v95R/faHq1dp540tr?= =?us-ascii?Q?7EnA17EXvv9z7bS/6S4KX31E/TqBrISDqmZKJCLkFm51V9D2YHpZ5PgzF1OY?= =?us-ascii?Q?lrUjyqSCB6xV0ZuEJkZWiLYcYWXpvgkNvrJK1RLAX9gfRKcYeXDgZajzImBa?= =?us-ascii?Q?BuLU2/sJEH6bJ6LlIUp8UnlN8ClCBIeLjlmorIHsUspflzUCzKQGpiyGISCj?= =?us-ascii?Q?0tEipVkiKusJZfbwdTGlVOqyLb8F++BDtqG4EcoRLLWNzOhkBSFohS5hOnI6?= =?us-ascii?Q?k7NomLpJHH0n0KlZTyMdfIK+5c2fLTM6WSwqTcO6ENMLDnTDQ/EbngSVF20o?= =?us-ascii?Q?sMglibDkhTSpSbPjlHzFKaJpgoWYwgxaVwikZGM4XWSFn4exVVGL4CIB8Ylx?= =?us-ascii?Q?6pCV2w=3D=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 142afff9-f946-44c3-23ec-08d9c5648d71 X-MS-Exchange-CrossTenant-AuthSource: AM9PR08MB6737.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Dec 2021 16:03:11.4413 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: QThOqUYNlLpmpxMSLDVkAooQcsHfHXpOup0UQxyRnr8Vx6fAOiXtNZxu/nQPXiZRwB42qLoiXC/F+4KYVFQ/o+F8/tr3IlYfiKDukDbWkQ8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6148 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 1BMG3UJn004623 X-loop: libvir-list@redhat.com Cc: kwolf@redhat.com, vsementsov@virtuozzo.com, libvir-list@redhat.com, dim@virtuozzo.com, igor@virtuozzo.com, qemu-devel@nongnu.org, armbru@redhat.com, hreitz@redhat.com, pkrempa@redhat.com, yur@virtuozzo.com, nshirokovskiy@virtuozzo.com, stefanha@redhat.com, den@openvz.org, eblake@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1640189037780100001 Content-Type: text/plain; charset="utf-8" Signed-off-by: Vladimir Sementsov-Ogievskiy --- include/sysemu/block-backend.h | 1 + block/export/export.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h index 904d70f49c..250c7465a5 100644 --- a/include/sysemu/block-backend.h +++ b/include/sysemu/block-backend.h @@ -124,6 +124,7 @@ DeviceState *blk_get_attached_dev(BlockBackend *blk); char *blk_get_attached_dev_id(BlockBackend *blk); BlockBackend *blk_by_dev(void *dev); BlockBackend *blk_by_qdev_id(const char *id, Error **errp); +BlockBackend *blk_by_export_id(const char *id, Error **errp); void blk_set_dev_ops(BlockBackend *blk, const BlockDevOps *ops, void *opaq= ue); int coroutine_fn blk_co_preadv(BlockBackend *blk, int64_t offset, int64_t bytes, QEMUIOVector *qiov, diff --git a/block/export/export.c b/block/export/export.c index 6d3b9964c8..613b5bc1d5 100644 --- a/block/export/export.c +++ b/block/export/export.c @@ -362,3 +362,21 @@ BlockExportInfoList *qmp_query_block_exports(Error **e= rrp) =20 return head; } + +BlockBackend *blk_by_export_id(const char *id, Error **errp) +{ + BlockExport *exp; + + exp =3D blk_exp_find(id); + if (exp =3D=3D NULL) { + error_setg(errp, "Export '%s' not found", id); + return NULL; + } + + if (!exp->blk) { + error_setg(errp, "Export '%s' is empty", id); + return NULL; + } + + return exp->blk; +} --=20 2.31.1 From nobody Fri May 17 04:49:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=quarantine dis=quarantine) header.from=virtuozzo.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1640189039054229.4330222173453; Wed, 22 Dec 2021 08:03:59 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-378-zRHflLtoN5-pIAKUhw0SFw-1; Wed, 22 Dec 2021 11:03:54 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id BCAE4801962; Wed, 22 Dec 2021 16:03:49 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9CCEA108648C; Wed, 22 Dec 2021 16:03:49 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 455334A7CA; Wed, 22 Dec 2021 16:03:49 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 1BMG3Zhv004643 for ; Wed, 22 Dec 2021 11:03:35 -0500 Received: by smtp.corp.redhat.com (Postfix) id A24CE404727C; Wed, 22 Dec 2021 16:03:35 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 9D7944047279 for ; Wed, 22 Dec 2021 16:03:35 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 80AF4801E6E for ; Wed, 22 Dec 2021 16:03:35 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70092.outbound.protection.outlook.com [40.107.7.92]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-523-6tWiPUYwM6Cp96xY4K4kOg-4; Wed, 22 Dec 2021 11:03:29 -0500 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) by AM9PR08MB6148.eurprd08.prod.outlook.com (2603:10a6:20b:284::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Wed, 22 Dec 2021 16:03:12 +0000 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b118:483a:d003:3112]) by AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b118:483a:d003:3112%5]) with mapi id 15.20.4823.016; Wed, 22 Dec 2021 16:03:12 +0000 X-MC-Unique: zRHflLtoN5-pIAKUhw0SFw-1 X-MC-Unique: 6tWiPUYwM6Cp96xY4K4kOg-4 From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Subject: [PATCH v2 3/4] block: make bdrv_find_child() function public Date: Wed, 22 Dec 2021 17:02:53 +0100 Message-ID: <20211222160254.226909-4-vsementsov@virtuozzo.com> In-Reply-To: <20211222160254.226909-1-vsementsov@virtuozzo.com> References: <20211222160254.226909-1-vsementsov@virtuozzo.com> X-ClientProxiedBy: AM6P193CA0070.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::47) To AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 81918132-e9a8-4d09-6b95-08d9c5648e32 X-MS-TrafficTypeDiagnostic: AM9PR08MB6148:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:635 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: pyjfb6VZGYAFY0M41XmYmxw/Ty3Mfiz6c5wbFnADV73wzKlEPSulvw+KIlT28oBLC15rxEtfpPIYyliONO2PgsImF/m2znSK/GKKFuqPYdVODJYBCidAt27b7UjkKlQtL4S8FMqCu5sXZjeMfIxQ4hoZTSCnVxl2TViproIg2jDj/6+aClJgI4FTxWA+1Tuaw8bzEbUnCgexL37r8cjyp7KYxlb+9/DCw2g4ljx9qcM/lksX68u8B7CY8iuFNjLfS/V4Q2S7VCb8iniH1G6UQfwyhHEkCADMAK8ZpdEjpR9PvK1EhdoMvFYcoudoJHiZu8JzDGDFsLmLpvhU5d4LSZWkCSBl9CeNzXP9jLoBDYSl/dcG47VOwRv/duXCR0vxTWUizqoY5BLEeQjZse48LnS9W4wiCXeo/6TiJ5zqLn+D58OY0UG8Wg4Uj4/U/jcF7FXgESKd0uQGWWa6jr9uPhP4m0jk6hUJscysYIgRmQLEOhkE715x1YKyJTqL+CCDjRbRKkeakz3ttlTh2xlErRyLlkwpNJeeYZxKNVVXVSTtar/HvZ3nojLRtZmvRsFQmgDDRoNFHb5ERg0DDI4ZtvEVkgpNiKRdW2xket28of92KrQrxFqURDBkifi52zG4eXbn3yBvSowTENpSaIb9I4lO/F3MfplHkH4gh5fVCeR3dZR1zEzfGopdn3mJ2mcxDusZTxGwbMHziTbWar7W6w== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR08MB6737.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38350700002)(38100700002)(6506007)(316002)(2906002)(6916009)(2616005)(1076003)(5660300002)(83380400001)(6666004)(86362001)(8936002)(6512007)(66476007)(36756003)(6486002)(186003)(26005)(4326008)(8676002)(66556008)(508600001)(66946007)(52116002); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sAS4A97sfKMw6qnECFv1+kwP6UtmDy4VyS7/zFkLlUTOYX/8XhkZrhCDmvA3?= =?us-ascii?Q?on5vSSjI9bTQtYWn+mkOMM7zcVwl8DMp30JFZz5q8HxZnLHCNZvSJXeE5Ew8?= =?us-ascii?Q?PTVEs7UPkccSvcQY9NgcbNIPUJBg4bU7PGffbhA1uLiDVx79c/UCH3ATBqBO?= =?us-ascii?Q?aUK7ii4/BrCEDPtykkJqqqYtCC/+0R7JpC33mht2FYFvO/r3EVVP01my23+S?= =?us-ascii?Q?g4VbjUzycbJGJF61j3cQL4VJfZGoCfhJunbnIa1aIDNAlTrxFmZH31rwPPry?= =?us-ascii?Q?FwN1vfO3GEMjr1ZbxpuaA9ojP43I4lNL1VNaDbMhP+bIYikIseroDI2HqMCS?= =?us-ascii?Q?2YZKAEY6ladtzURpnhPGWlPqkQFaAekGLkTxdRc70nnuGu+5a+tnI7lWkBsr?= =?us-ascii?Q?K3lP2iCmfgKZ9i80qsJIZO8kancjalYh2ywW33QUFI2s7sMlxnOy1XN9BfXa?= =?us-ascii?Q?orlRCQevmE7WtOTPXOEED5K6IuM9WWlMECuG2dBLycEhrdY1PqreQ1i15I3d?= =?us-ascii?Q?dz11o22Z4GEm1Nn56OOirH2/2xceJD6voN8w11H/Cfu5mvO5aqWveac5FNrE?= =?us-ascii?Q?0jnHn9MTuWQhFWZqfvNDk8h95cRcFGGrZNbRoBmWcWGFPsjcDhlJ/LI8/k2w?= =?us-ascii?Q?yBrBKtao5X3zqa1PE4Gppe/7bN8oXRYK2cCwfsmozMZdXS8rUJDUuHihnpMY?= =?us-ascii?Q?/kGBa2lM/UDN+xuz/DIBEP+NskgXGXL9eJT4DsGBSzZBCR8SrS3sKXhj+dHK?= =?us-ascii?Q?oTMjootY0zNjKs1YtY5Ve7BTA//AquDKI/yDPQyaoaRLu7l+2Zi2tolG3yPq?= =?us-ascii?Q?j/7LGkSOvuV9rRwna5BG7jqSuxcNMHvjvZFf2Q+Q9PnUK2FFecQIV3bded10?= =?us-ascii?Q?3y/Ii1qdFRAbrrtaU2jDlsOk4iAbQEdukBu1yNAVD7DlB45V8oeLyPbyecES?= =?us-ascii?Q?Pc8DDOEZ1SGk3/PB41E9TJxvBI383ihFlA58pPYhElr3Gs7FcyJSp+qrbce6?= =?us-ascii?Q?STD5BRMXGPEDfK2wZ+hMTvsgoROCCgKTAkCDCinj8qqTk70WNaZPpf1Ro7eI?= =?us-ascii?Q?GFS8cM63MHd49GtZs8N5hmxfiH5DSZiV6XMb52nc7SZk0zAoxhaDsRSis3D2?= =?us-ascii?Q?eaXPsct7h6agV8pHxN+DPA7QECLq4r7AVXSZ7TY8/H/as8q1ZViEorE87I34?= =?us-ascii?Q?3g1PunkNBCS8zWQ/7ilHZqNBSOIk9WC6mEq3sSvguX9ONUCQWhXTGN6hX8xK?= =?us-ascii?Q?CDbZOvujrEM/pLjM1HD2vTKLeQhCuWx3fmmgD2IHy5oHDDYLU1RBEWP8wE5u?= =?us-ascii?Q?eS2O9iytTZvrSXwwF/2p8YjzowKDSMmZ5Wez678a10nYrcy0sZrzpTKYpxLT?= =?us-ascii?Q?T26H99aWtxd3oj1g3u83ZVky8SRhULQeeqAOZH1mbJI1t3f4lYvbm2oTj7Q5?= =?us-ascii?Q?wVVRNGdi8OXFDtj4v+Xtkz0964v7Vs274vcjucui/8+kR8ghalWXt0dNYR3P?= =?us-ascii?Q?tVzX4LjQ6q4WPVDa98AwqdYTAGBmEHwoRkpPkUNFlKBHePxEbPQUzcF7bnm+?= =?us-ascii?Q?adzlczJqx2P2ZHq8rOCBAyF2I/3pwTtKzSVTBZA6ml8yLdsaCe4KeLhV+JKh?= =?us-ascii?Q?2HCz/pqfr/e0wfr2t+Php8tMu6H3qm1Z433Cjo3p01adMpsVWmuq4S8jTRFv?= =?us-ascii?Q?IqbtA1R0mifGpxZ8cSzG/ZpIz7k=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 81918132-e9a8-4d09-6b95-08d9c5648e32 X-MS-Exchange-CrossTenant-AuthSource: AM9PR08MB6737.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Dec 2021 16:03:12.4750 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dMeIfQ5LO6CVnN43+BMq46IgJqjI7BOUjTYZb91Ac4EQofWglZgJ9boZZEyU3BPrjUVlFdvyZERwTPIlBEDcnOYSxl3iZVcJBcHMKSHdmRs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6148 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 1BMG3Zhv004643 X-loop: libvir-list@redhat.com Cc: kwolf@redhat.com, vsementsov@virtuozzo.com, libvir-list@redhat.com, dim@virtuozzo.com, igor@virtuozzo.com, qemu-devel@nongnu.org, armbru@redhat.com, hreitz@redhat.com, pkrempa@redhat.com, yur@virtuozzo.com, nshirokovskiy@virtuozzo.com, stefanha@redhat.com, den@openvz.org, eblake@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1640189040296100001 Content-Type: text/plain; charset="utf-8" To be reused soon. Signed-off-by: Vladimir Sementsov-Ogievskiy --- include/block/block_int.h | 1 + block.c | 13 +++++++++++++ blockdev.c | 14 -------------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/include/block/block_int.h b/include/block/block_int.h index f4c75e8ba9..79bdde8bf4 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -1433,6 +1433,7 @@ BdrvDirtyBitmap *block_dirty_bitmap_remove(const char= *node, const char *name, BlockDriverState **bitmap_bs, Error **errp); =20 +BdrvChild *bdrv_find_child(BlockDriverState *parent_bs, const char *child_= name); BdrvChild *bdrv_cow_child(BlockDriverState *bs); BdrvChild *bdrv_filter_child(BlockDriverState *bs); BdrvChild *bdrv_filter_or_cow_child(BlockDriverState *bs); diff --git a/block.c b/block.c index 0ac5b163d2..840d52e7c8 100644 --- a/block.c +++ b/block.c @@ -7727,6 +7727,19 @@ int bdrv_make_empty(BdrvChild *c, Error **errp) return 0; } =20 +BdrvChild *bdrv_find_child(BlockDriverState *parent_bs, const char *child_= name) +{ + BdrvChild *child; + + QLIST_FOREACH(child, &parent_bs->children, next) { + if (strcmp(child->name, child_name) =3D=3D 0) { + return child; + } + } + + return NULL; +} + /* * Return the child that @bs acts as an overlay for, and from which data m= ay be * copied in COW or COR operations. Usually this is the backing file. diff --git a/blockdev.c b/blockdev.c index 0eb2823b1b..ce23059d5e 100644 --- a/blockdev.c +++ b/blockdev.c @@ -3644,20 +3644,6 @@ out: aio_context_release(aio_context); } =20 -static BdrvChild *bdrv_find_child(BlockDriverState *parent_bs, - const char *child_name) -{ - BdrvChild *child; - - QLIST_FOREACH(child, &parent_bs->children, next) { - if (strcmp(child->name, child_name) =3D=3D 0) { - return child; - } - } - - return NULL; -} - void qmp_x_blockdev_change(const char *parent, bool has_child, const char *child, bool has_node, const char *node, Error **errp) --=20 2.31.1 From nobody Fri May 17 04:49:35 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=quarantine dis=quarantine) header.from=virtuozzo.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1640189026914971.2156127070448; Wed, 22 Dec 2021 08:03:46 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-244-z9I8_jJtNdOBmEKdZcOSjQ-1; Wed, 22 Dec 2021 11:03:44 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 10529501EA; Wed, 22 Dec 2021 16:03:40 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 465CB7E414; Wed, 22 Dec 2021 16:03:39 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 061614BB7C; Wed, 22 Dec 2021 16:03:39 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 1BMG3brd004652 for ; Wed, 22 Dec 2021 11:03:37 -0500 Received: by smtp.corp.redhat.com (Postfix) id 28DC240CFD19; Wed, 22 Dec 2021 16:03:37 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast05.extmail.prod.ext.rdu2.redhat.com [10.11.55.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 2305040CFD18 for ; Wed, 22 Dec 2021 16:03:37 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [207.211.31.81]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0741D8039D5 for ; Wed, 22 Dec 2021 16:03:37 +0000 (UTC) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70092.outbound.protection.outlook.com [40.107.7.92]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-523-Tkgo-84IMrSyDGoC2y1YEA-5; Wed, 22 Dec 2021 11:03:33 -0500 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) by AM9PR08MB6148.eurprd08.prod.outlook.com (2603:10a6:20b:284::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.18; Wed, 22 Dec 2021 16:03:13 +0000 Received: from AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b118:483a:d003:3112]) by AM9PR08MB6737.eurprd08.prod.outlook.com ([fe80::b118:483a:d003:3112%5]) with mapi id 15.20.4823.016; Wed, 22 Dec 2021 16:03:13 +0000 X-MC-Unique: z9I8_jJtNdOBmEKdZcOSjQ-1 X-MC-Unique: Tkgo-84IMrSyDGoC2y1YEA-5 From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Subject: [PATCH v2 4/4] qapi: add blockdev-replace command Date: Wed, 22 Dec 2021 17:02:54 +0100 Message-ID: <20211222160254.226909-5-vsementsov@virtuozzo.com> In-Reply-To: <20211222160254.226909-1-vsementsov@virtuozzo.com> References: <20211222160254.226909-1-vsementsov@virtuozzo.com> X-ClientProxiedBy: AM6P193CA0070.EURP193.PROD.OUTLOOK.COM (2603:10a6:209:8e::47) To AM9PR08MB6737.eurprd08.prod.outlook.com (2603:10a6:20b:304::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 53a2c510-b39f-497d-d3ae-08d9c5648e8a X-MS-TrafficTypeDiagnostic: AM9PR08MB6148:EE_ X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:61 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0 X-Microsoft-Antispam-Message-Info: JukFvGf7fmJzpyKpNdgS3YjzQ+/8SvIAMyjB/0y2bU+yHKrrpCqoUDU5LNiy9kXIWL6W+ZV+nwJAwytkpXupWbuIxpfam8fnGCo6pIUPdC8EZGoZ40vLrZOJO+gkYY2b9WguflktMA5tCV/Br8y2Hh+xF2TptE9QHRoJ7e65XE8eJVdhzP7QBVWuSXWOvGPBJJR8Bd+OqIf9sglE0uKPNg9tU41YrE699xZ2PKytL4L/CLsXmMZUGf/ozw11P3U0wfP5ADL+buSiy5412xaRzcLn04sVfP13+ntaWj3cYClEyMj+t3FOXXz7reCOqbV/u+FybL3eY1YFPCjZQUadFTYZCFM+Kdmdqk0QKZYKaFsRmaAYPQ7xD5iv3PHABRonAcXDiFj5rNrIoj90bmYGChecaABlWw+cWUsOnUSc5SKPwCmFETnnREZO0DbEfbI5pUjl6fqGCmnwgAiWPn/kWqjZpsRNM9+SRKxCoR5G17fBVETfV6ykAqo4TGojbxbZ+CDp4ZKxPPQ6x3rI52Blj9ZHfSoQ8ETgKsrxqK5bn/k+uoZ+Ik+KulvuN+vuvz4RTYoSbNNKtgN1d9cwYpjJMams/lO/4mPUa/9zha7aaXHjWBSfNTOzeBdrtej7jRhestYu/SukJYwFjLccgnovByMbdHLFpthjNiPR5T8S+IdRPYOgy46MD5LrSDU7lWclRoTdlbm4O6f4xc39jEyUHg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR08MB6737.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38350700002)(38100700002)(6506007)(316002)(2906002)(6916009)(2616005)(1076003)(5660300002)(83380400001)(6666004)(86362001)(8936002)(6512007)(66476007)(36756003)(6486002)(186003)(26005)(4326008)(8676002)(66556008)(508600001)(66946007)(52116002); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?61ee0YgjahY05rsF0ZhIva5WVlkFqB6+kcQumQEcMsdpvb6nPPmnX4hCLkkY?= =?us-ascii?Q?u8Japs91g3O1T3Lu62wx5097UfS3A2+Qe3ba23U/eVidAiZOkrj8GMB82oq/?= =?us-ascii?Q?rx9Rs9uBjoXyBRyVGSRIiHUd7EXnmJC9CDHuXrqhuWFE+aIs6BqZ7R1vm0eu?= =?us-ascii?Q?tdlecjEpBencC5wkTzVPfr2/n/JBQWMhHSYzBfaYn7LD0MzyAEV4JF/sGVoV?= =?us-ascii?Q?XL/6jJgjwWD/eN/ZAcznlD4RHZYbQSXAbf5eJhvLsrNjW2d5UYGSOsHeQj8/?= =?us-ascii?Q?txfo0cwFRqv3WXI2cHY10aazISem1DMzhHpreb1yVJtGIJAdcNBrHAITz/1S?= =?us-ascii?Q?NPtC6yj6QnmOUOdsGqi4sNTfibRLMcg0fPq8le/kFkIXnH/dGrJdupfwfCK/?= =?us-ascii?Q?CL97qP9kvU2vfxIZV4pohh2eiVQ7aFbqWJc3ydt5u7dexlVs6pE5FQxyCUxf?= =?us-ascii?Q?qGLu1pwgPfpUY5gdglKLgrFy2e+/C6fG4/XpqgvgOg6zM0LbFizjvafslajt?= =?us-ascii?Q?XZm4F5h1bbq/lMsMk1E6EBjYYuijfbPs/wMmRwbZFVVAtX7tbTPp+Q/8RcYW?= =?us-ascii?Q?IbBTK5h3H4eli4hdvPJfryO1s0eAqgTFP8vIaElXDnl8V1renHa0eQvNLpv0?= =?us-ascii?Q?cH8PXiqTQJK8PN/cZc3vFpwobPpO0uo4Z7EpZdlcF9xavnfksUhjm2htRRYB?= =?us-ascii?Q?rNObcqM/PbqsAJiak1lKqCs8P2s1cJiOMJ58FzT5ILufn2Du3HBUXBqo8yWO?= =?us-ascii?Q?jQgNRfEFlOdiR/aiQZdArvPvUWQmhvI781t8a6A6GbrtPDsrdx3KUNI3De9H?= =?us-ascii?Q?SA5hpjuzho3+nVU6tC/r7AlVrhJARxQA567m6n55meI6OcCE8pJn2fmlcjmo?= =?us-ascii?Q?gLtDJPI36baBFGEvbnS2tTPySRNZ/o7hac+bQqNoxsC2Yfh8ByBEhh7mTjik?= =?us-ascii?Q?l+go+cWtgS7U+Lw5xNjwucdi91y8uXpZNtTHOhy5ktz8y0UYlUrWlfqN5ytC?= =?us-ascii?Q?1N/pxA93ye2/WlJPW5IKXNjtTKgpZ5/P23a5xry/861I+/sBNqiN1hJx19Nt?= =?us-ascii?Q?4u8Se8aiSUBjOrp3P6iMdu3MNot3XgeYL5jrZnma+Zogvrht91HCEVDONWW4?= =?us-ascii?Q?BDZyBSSZbjOXGoucIodZyXqFMpQXKUifppox+82oZNW0kxFDcTBZbqYlyxwu?= =?us-ascii?Q?rNQPg6j4U00a9b28/KfB/AdmRTqjNljKpUqpypW1tv16LVQ1NsIkc6Xym8t0?= =?us-ascii?Q?GkTSo20CCQx4ok3ABqcA0N9VrXSZ8NTcsu5mY//Ey5YQTLzykWivxX9Obkwv?= =?us-ascii?Q?zH8W3Jbwy4RUvuQ8ZAVwAXcrFuO9cMe5HtuYeZL6Gm0vYoXTnzTd1CnOmcbX?= =?us-ascii?Q?aVb3bZRnJOR+Q5lodBBZoyTTOO9suypeGckWdg3jg6ocMYpz2xwM+VWf9BOo?= =?us-ascii?Q?rlLbvk0/UdqCfzXIxr2KVTjIkY5iuZ46N/lZYdR3GC7Jfp8dpD5LR/ukUKfl?= =?us-ascii?Q?3OP2wfBYBy7mGW8A0rNv4Go3/CnBNPQvkHiXd3hH3QuX96Vn5MC+9gsqpvg3?= =?us-ascii?Q?ZbW4b+VdMeJrgO1ILv1IoDitsdqh3wQxY94qIf17rT3Zo1Pxjz0KritniYQk?= =?us-ascii?Q?fw4RjZGIDGA3VpK0l0qHjy+atpv6q9pUcZn8tlBmSmSmRsibj77hL3GJeosp?= =?us-ascii?Q?sZcBb3IZ25UF1MmnsNpsbN53xvU=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53a2c510-b39f-497d-d3ae-08d9c5648e8a X-MS-Exchange-CrossTenant-AuthSource: AM9PR08MB6737.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Dec 2021 16:03:12.9749 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: JzjYA4vDOScfV84XKc/HI+eckm2C7kfL4IevKCOnZzFExhFhxrtgpz7Rcr6BozqE5Oc9dfRcVqUJS1AId0sybASjjXofc4eO7RH8PZDyuZY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6148 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.84 on 10.11.54.1 X-MIME-Autoconverted: from quoted-printable to 8bit by lists01.pubmisc.prod.ext.phx2.redhat.com id 1BMG3brd004652 X-loop: libvir-list@redhat.com Cc: kwolf@redhat.com, vsementsov@virtuozzo.com, libvir-list@redhat.com, dim@virtuozzo.com, igor@virtuozzo.com, qemu-devel@nongnu.org, armbru@redhat.com, hreitz@redhat.com, pkrempa@redhat.com, yur@virtuozzo.com, nshirokovskiy@virtuozzo.com, stefanha@redhat.com, den@openvz.org, eblake@redhat.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1640189028653100003 Content-Type: text/plain; charset="utf-8" Add a command that can replace bs in following BdrvChild structures: - qdev blk root child - block-export blk root child - any child BlockDriverState selected by child-name Signed-off-by: Vladimir Sementsov-Ogievskiy --- qapi/block.json | 61 +++++++++++++++++++++++++++++++++++++++++++++ block/qapi-sysemu.c | 56 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+) diff --git a/qapi/block.json b/qapi/block.json index 82fcf2c914..a4dd1e34d4 100644 --- a/qapi/block.json +++ b/qapi/block.json @@ -570,3 +570,64 @@ '*boundaries-read': ['uint64'], '*boundaries-write': ['uint64'], '*boundaries-flush': ['uint64'] } } +## +# @BlockParentType: +# +# Since 7.0 +## +{ 'enum': 'BlockParentType', + 'data': ['qdev', 'driver', 'export'] } + +## +# @BdrvChildRefQdev: +# +# Since 7.0 +## +{ 'struct': 'BdrvChildRefQdev', + 'data': { 'qdev-id': 'str' } } + +## +# @BdrvChildRefExport: +# +# Since 7.0 +## +{ 'struct': 'BdrvChildRefExport', + 'data': { 'export-id': 'str' } } + +## +# @BdrvChildRefDriver: +# +# Since 7.0 +## +{ 'struct': 'BdrvChildRefDriver', + 'data': { 'node-name': 'str', 'child': 'str' } } + +## +# @BlockdevReplace: +# +# Since 7.0 +## +{ 'union': 'BlockdevReplace', + 'base': { + 'parent-type': 'BlockParentType', + 'new-child': 'str' + }, + 'discriminator': 'parent-type', + 'data': { + 'qdev': 'BdrvChildRefQdev', + 'export': 'BdrvChildRefExport', + 'driver': 'BdrvChildRefDriver' + } } + +## +# @x-blockdev-replace: +# +# Replace a block-node associated with device (selected by +# @qdev-id) or with block-export (selected by @export-id) or +# any child of block-node (selected by @node-name and @child) +# with @new-child block-node. +# +# Since 7.0 +## +{ 'command': 'x-blockdev-replace', 'boxed': true, + 'data': 'BlockdevReplace' } diff --git a/block/qapi-sysemu.c b/block/qapi-sysemu.c index 8498402ad4..ca1aaef376 100644 --- a/block/qapi-sysemu.c +++ b/block/qapi-sysemu.c @@ -588,3 +588,59 @@ void qmp_block_latency_histogram_set( } } } + +void qmp_x_blockdev_replace(BlockdevReplace *repl, Error **errp) +{ + BdrvChild *child =3D NULL; + BlockDriverState *new_child_bs; + + if (repl->parent_type =3D=3D BLOCK_PARENT_TYPE_DRIVER) { + BlockDriverState *parent_bs; + + parent_bs =3D bdrv_find_node(repl->u.driver.node_name); + if (!parent_bs) { + error_setg(errp, "Block driver node with node-name '%s' not " + "found", repl->u.driver.node_name); + return; + } + + child =3D bdrv_find_child(parent_bs, repl->u.driver.child); + if (!child) { + error_setg(errp, "Block driver node '%s' doesn't have child " + "named '%s'", repl->u.driver.node_name, + repl->u.driver.child); + return; + } + } else { + /* Other types are similar, they work through blk */ + BlockBackend *blk; + bool is_qdev =3D repl->parent_type =3D=3D BLOCK_PARENT_TYPE_QDEV; + const char *id =3D + is_qdev ? repl->u.qdev.qdev_id : repl->u.export.export_id; + + assert(is_qdev || repl->parent_type =3D=3D BLOCK_PARENT_TYPE_EXPOR= T); + + blk =3D is_qdev ? blk_by_qdev_id(id, errp) : blk_by_export_id(id, = errp); + if (!blk) { + return; + } + + child =3D blk_root(blk); + if (!child) { + error_setg(errp, "%s '%s' is empty, nothing to replace", + is_qdev ? "Device" : "Export", id); + return; + } + } + + assert(child); + assert(child->bs); + + new_child_bs =3D bdrv_find_node(repl->new_child); + if (!new_child_bs) { + error_setg(errp, "Node '%s' not found", repl->new_child); + return; + } + + bdrv_replace_child_bs(child, new_child_bs, errp); +} --=20 2.31.1