From nobody Mon Feb 9 06:34:03 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1555598601; cv=none; d=zoho.com; s=zohoarc; b=kCPI1JTkXgi0TTaeWPCINvN9cOYhdfEblbXaGKMfUksttjqNe5qYfwUa6tiYTg3p8VFisoOHzRpURpzkrW0eZeoySPrd/pdIn3lpfvGs9BRqb9lSE2yWdvTGB56exkKjHWOPhA9YI9eOXqAsxV9cqV2sHva8bQrCJz/QuRbzkjY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1555598601; h=Content-Type:Content-Transfer-Encoding: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:ARC-Authentication-Results; bh=ktGLVDoCOT3DXeptcODv9sHVrTQ3uOxKir2Jv71KA+M=; b=DymwRzou6Af7Y/oFeI2Gwwbu7hZhEeEtMjZSgNRirje3gU87CSxmBu1Wo1BOVoAOgFN/V6M6rMP5rPgosEvvJCiILzAK7KKQ7l3UUAWaL/jSZZm9gkYeKSgYOR3SM8QmnnS2X5UuBY6nsQLdfGF+BlicPqU8Cuv6nNilEuLMjrQ= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1555598601159411.87578269889434; Thu, 18 Apr 2019 07:43:21 -0700 (PDT) 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 mx1.redhat.com (Postfix) with ESMTPS id 76818307E061; Thu, 18 Apr 2019 14:43:19 +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 4EBE15C207; Thu, 18 Apr 2019 14:43:19 +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 0C5A63FAF7; Thu, 18 Apr 2019 14:43:19 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x3IEhFP3020780 for ; Thu, 18 Apr 2019 10:43:15 -0400 Received: by smtp.corp.redhat.com (Postfix) id 91EFA60BF7; Thu, 18 Apr 2019 14:43:15 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1A58860BEC for ; Thu, 18 Apr 2019 14:43:14 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Thu, 18 Apr 2019 16:43:01 +0200 Message-Id: <8619844bd794a08a0ccb87a2f30c2efde64b5adc.1555598422.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 06/12] qemu: Allow using qemuDomainStorageSourceAccessModify on singe images 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: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Thu, 18 Apr 2019 14:43:19 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Add a new flag QEMU_DOMAIN_STORAGE_SOURCE_ACCESS_CHAIN to select whether to work on single image or full chain. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_domain.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 6644c1418b..30acba3c47 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -9214,6 +9214,8 @@ qemuDomainDiskGetBackendAlias(virDomainDiskDefPtr dis= k, typedef enum { /* revoke access to the image instead of allowing it */ QEMU_DOMAIN_STORAGE_SOURCE_ACCESS_REVOKE =3D 1 << 0, + /* operate on full backing chain rather than single image */ + QEMU_DOMAIN_STORAGE_SOURCE_ACCESS_CHAIN =3D 1 << 1, } qemuDomainStorageSourceAccessFlags; @@ -9239,6 +9241,8 @@ qemuDomainStorageSourceAccessModify(virQEMUDriverPtr = driver, const char *srcstr =3D NULLSTR(src->path); int ret =3D -1; virErrorPtr orig_err =3D NULL; + bool chain =3D flags & QEMU_DOMAIN_STORAGE_SOURCE_ACCESS_CHAIN; + int rc; /* just tear down the disk access */ if (flags & QEMU_DOMAIN_STORAGE_SOURCE_ACCESS_REVOKE) { @@ -9253,20 +9257,30 @@ qemuDomainStorageSourceAccessModify(virQEMUDriverPt= r driver, if (qemuDomainNamespaceSetupDisk(vm, src) < 0) goto rollback_lock; - if (qemuSecuritySetImageLabel(driver, vm, src, true) < 0) + if (qemuSecuritySetImageLabel(driver, vm, src, chain) < 0) goto rollback_namespace; - if (qemuSetupImageChainCgroup(vm, src) < 0) + if (chain) + rc =3D qemuSetupImageChainCgroup(vm, src); + else + rc =3D qemuSetupImageCgroup(vm, src); + + if (rc < 0) goto rollback_label; ret =3D 0; goto cleanup; rollback_cgroup: - if (qemuTeardownImageChainCgroup(vm, src) < 0) + if (chain) + rc =3D qemuTeardownImageChainCgroup(vm, src); + else + rc =3D qemuTeardownImageCgroup(vm, src); + + if (rc < 0) VIR_WARN("Unable to tear down cgroup access on %s", srcstr); rollback_label: - if (qemuSecurityRestoreImageLabel(driver, vm, src, true) < 0) + if (qemuSecurityRestoreImageLabel(driver, vm, src, chain) < 0) VIR_WARN("Unable to restore security label on %s", srcstr); rollback_namespace: @@ -9289,7 +9303,7 @@ qemuDomainStorageSourceChainAccessAllow(virQEMUDriver= Ptr driver, virDomainObjPtr vm, virStorageSourcePtr src) { - qemuDomainStorageSourceAccessFlags flags =3D 0; + qemuDomainStorageSourceAccessFlags flags =3D QEMU_DOMAIN_STORAGE_SOURC= E_ACCESS_CHAIN; return qemuDomainStorageSourceAccessModify(driver, vm, src, flags); } @@ -9300,7 +9314,8 @@ qemuDomainStorageSourceChainAccessRevoke(virQEMUDrive= rPtr driver, virDomainObjPtr vm, virStorageSourcePtr src) { - qemuDomainStorageSourceAccessFlags flags =3D QEMU_DOMAIN_STORAGE_SOURC= E_ACCESS_REVOKE; + qemuDomainStorageSourceAccessFlags flags =3D QEMU_DOMAIN_STORAGE_SOURC= E_ACCESS_REVOKE | + QEMU_DOMAIN_STORAGE_SOURCE_= ACCESS_CHAIN; return qemuDomainStorageSourceAccessModify(driver, vm, src, flags); } --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list