From nobody Mon Feb 9 02:51:09 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.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 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1616633738; cv=none; d=zohomail.com; s=zohoarc; b=cai7iCHVQbhQZF9bC6uWPIrmGb/E9ppsRRF/uJpXpIkrptdV/PcuRLUvDrt2l0aWYfHrb1oK4IkUqidv0DksnMrReivHxOHmbnsZZnvrO7DKs1hCtvB95rdAEO1RlclqWAeEU387khrFiYO3RgDsZm/jIARrU2b3R5vdylwSFIk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1616633738; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=rLRpcIM7sdN26iXDiVLdLOf7ZY4oXHwPnMaBk5bSzO4=; b=lr4l+dWKKkqFX+egF4YMRD65KDFPbUeU2p4hE6TZnz4mQsK+Lf9hn40wsHsLAvJWtNWd0jokSNq4mN6KoxlRXWXPRjACpZIHgPraui3A9nrsSe50QjS4ijZ4pyiKton7uHwB8VzzmBt7sEFhft8cCEZAxcOMVVCjy8jct7/asAU= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 1616633738798127.70184943860772; Wed, 24 Mar 2021 17:55:38 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-551-eje11IRkOX20JVJ0cKz3Sg-1; Wed, 24 Mar 2021 20:55:35 -0400 Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 6A5BC83DEAE; Thu, 25 Mar 2021 00:55:26 +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 468C26727A; Thu, 25 Mar 2021 00:55:26 +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 D27FD1802135; Thu, 25 Mar 2021 00:55:25 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 12P0t2cS024543 for ; Wed, 24 Mar 2021 20:55:02 -0400 Received: by smtp.corp.redhat.com (Postfix) id 134D4F5199; Thu, 25 Mar 2021 00:55:02 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast01.extmail.prod.ext.rdu2.redhat.com [10.11.55.17]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 0D11BF51A5 for ; Thu, 25 Mar 2021 00:55:00 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.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 A140985A5A8 for ; Thu, 25 Mar 2021 00:55:00 +0000 (UTC) Received: from mail-qk1-f180.google.com (mail-qk1-f180.google.com [209.85.222.180]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-148-lnyQis1mM-i8QRxSnCl-Sw-1; Wed, 24 Mar 2021 20:54:58 -0400 Received: by mail-qk1-f180.google.com with SMTP id z10so224004qkz.13 for ; Wed, 24 Mar 2021 17:54:58 -0700 (PDT) Received: from localhost (209-6-122-159.s2973.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [209.6.122.159]) by smtp.gmail.com with ESMTPSA id 6sm2649455qth.82.2021.03.24.17.54.57 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 24 Mar 2021 17:54:57 -0700 (PDT) X-MC-Unique: eje11IRkOX20JVJ0cKz3Sg-1 X-MC-Unique: lnyQis1mM-i8QRxSnCl-Sw-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rLRpcIM7sdN26iXDiVLdLOf7ZY4oXHwPnMaBk5bSzO4=; b=eF/RvZCDnF16OTE+Cz7jeXHmcINiKYX3YZ24ZoEOgxW92am1HPBOmmcND2I0K7fUoj axArfR8qU8zNVkBBTc/oIky45V8lhUh2eAQ36IF/oMOv2cbfR7pkKOwXtl8byLV741mh 4xaL/p7AwYfK1Nn0KQWGIZmZNM4oDqZ5Xk3A5wYyh6EqwSZEBU1x7JGTNoiqVXOilm9b +SKYhPVVrVZw7wJvSRlPKPcDeuZSEL2opRcZf3I1nLGLG5qx+4Q9zDmzB1yJHWSrxJn8 6r+t2LPP/hRMFBaF+8ahadXGzBlG0gd+yFhMFnJLTzb8tAzfDSvyYVvYyxl9KXjR/AAI cRRQ== X-Gm-Message-State: AOAM531Bn1C84G3HLgjpIZcO3nGgEjQtcZ651nV11eyeSqA8tVHyjJ+Q a0DivRTyY2bPPms4Kyo1CrZ6sNuQ+Q== X-Google-Smtp-Source: ABdhPJwTN4/6OmCwGaicaoy6pE4ACKZM5/g/Jg7XmBOClXJNAO+JE55p/DgPeY16cjnqpqd2wmcw1g== X-Received: by 2002:a37:8c42:: with SMTP id o63mr5872934qkd.449.1616633697797; Wed, 24 Mar 2021 17:54:57 -0700 (PDT) From: Masayoshi Mizuma To: libvir-list@redhat.com Subject: [PATCH 02/10] qemu_hotplug: make transient disk sharable Date: Wed, 24 Mar 2021 20:54:06 -0400 Message-Id: <20210325005414.275401-3-msys.mizuma@gmail.com> In-Reply-To: <20210325005414.275401-1-msys.mizuma@gmail.com> References: <20210325005414.275401-1-msys.mizuma@gmail.com> MIME-Version: 1.0 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.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Cc: Masayoshi Mizuma , Masayoshi Mizuma 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.16 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 Content-Type: text/plain; charset="utf-8" From: Masayoshi Mizuma Enable disk option for transient disk hotplug. Signed-off-by: Masayoshi Mizuma --- src/qemu/qemu_hotplug.c | 3 +++ src/qemu/qemu_validate.c | 21 +++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 138645260f..04b76db5e3 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1124,6 +1124,9 @@ qemuHotplugDiskPrepareOneDiskTransient(virQEMUDriverP= tr driver, QEMU_ASYNC_JOB_NONE, created) < = 0) return -1; =20 + if (origsrc->shared) + origsrc->readonly =3D true; + transrc->backingStore =3D origsrc; disk->src =3D transrc; =20 diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 6043f974ce..5426e7a784 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -2907,6 +2907,23 @@ qemuValidateDomainDeviceDefDiskTransient(const virDo= mainDiskDef *disk, } =20 =20 +static bool +qemuValidateDomainDeviceDefDiskShareable(const virDomainDiskDef *disk) +{ + virDomainDiskBus bus =3D (virDomainDiskBus) disk->bus; + + if (!disk->src->readonly && !disk->transient && + !qemuBlockStorageSourceSupportsConcurrentAccess(disk->src)) + return false; + else if (disk->transient && + (bus !=3D VIR_DOMAIN_DISK_BUS_VIRTIO) && + (bus !=3D VIR_DOMAIN_DISK_BUS_SCSI)) + return false; + else + return true; +} + + int qemuValidateDomainDeviceDefDisk(const virDomainDiskDef *disk, const virDomainDef *def, @@ -2927,8 +2944,8 @@ qemuValidateDomainDeviceDefDisk(const virDomainDiskDe= f *disk, if (qemuValidateDomainDeviceDefDiskTransient(disk, qemuCaps) < 0) return -1; =20 - if (disk->src->shared && !disk->src->readonly && - !qemuBlockStorageSourceSupportsConcurrentAccess(disk->src)) { + if (disk->src->shared && + !qemuValidateDomainDeviceDefDiskShareable(disk)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("shared access for disk '%s' requires use of " "supported storage format"), disk->dst); --=20 2.27.0