From nobody Sun Feb 8 18:48:31 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.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; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1491565813990973.4643854414904; Fri, 7 Apr 2017 04:50:13 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B68D966CB0; Fri, 7 Apr 2017 11:50:12 +0000 (UTC) Received: from colo-mx.corp.redhat.com (unknown [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 8E6F59498E; Fri, 7 Apr 2017 11:50:12 +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 3F6994EBDC; Fri, 7 Apr 2017 11:50:12 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v37Bo7Ip011480 for ; Fri, 7 Apr 2017 07:50:07 -0400 Received: by smtp.corp.redhat.com (Postfix) id ECF27A8864; Fri, 7 Apr 2017 11:50:07 +0000 (UTC) Received: from localhost.localdomain.com (ovpn-116-19.phx2.redhat.com [10.3.116.19]) by smtp.corp.redhat.com (Postfix) with ESMTP id ABDD3A887C for ; Fri, 7 Apr 2017 11:50:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com B68D966CB0 Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com B68D966CB0 From: John Ferlan To: libvir-list@redhat.com Date: Fri, 7 Apr 2017 07:49:59 -0400 Message-Id: <20170407114959.22362-4-jferlan@redhat.com> In-Reply-To: <20170407114959.22362-1-jferlan@redhat.com> References: <20170407114959.22362-1-jferlan@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 3/3] storage: Resolve issues with disk partition build/start checks 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: , MIME-Version: 1.0 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.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Fri, 07 Apr 2017 11:50:13 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" https://bugzilla.redhat.com/show_bug.cgi?id=3D1439132 Fix some issues discovered when building between multiple different supported disk partition types. 1. The "dvh" and "pc98" were specifically checked during the blkid partition processing in commit id 'a48c674fb', but commit id 'a4cb4a74f' really messed things up by missing an else condition causing PARTEDFindLabel to always return DIFFERENT. 2. Add the "bsd" to the list of format types to not checked during blkid processing even though it supposedly knows the format - for some (now unknown) reason it's returning partiion not found. So let's just let PARTED handle that too. 3. During 'matrix' testing of all possible combinations I found that if device is formated with "gpt" first, then an attempt is made to format using "mac", a startup will fail. By adding a clearing of the first 2048 bytes of the device (similar to the logical pool code), the issue is resolved. Signed-off-by: John Ferlan --- src/storage/storage_backend_disk.c | 4 ++++ src/storage/storage_util.c | 10 ++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/storage/storage_backend_disk.c b/src/storage/storage_backe= nd_disk.c index 39371f2..ce40ddd 100644 --- a/src/storage/storage_backend_disk.c +++ b/src/storage/storage_backend_disk.c @@ -496,6 +496,10 @@ virStorageBackendDiskBuildPool(virConnectPtr conn ATTR= IBUTE_UNUSED, } =20 if (ok_to_mklabel) { + if (virStorageBackendZeroDeviceHeader(pool->def->source.devices[0]= .path, + 4 * SECTOR_SIZE) < 0) + goto error; + /* eg parted /dev/sda mklabel --script msdos */ if (format =3D=3D VIR_STORAGE_POOL_DISK_UNKNOWN) format =3D pool->def->source.format =3D VIR_STORAGE_POOL_DISK_= DOS; diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index 784df7a..812429e 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -3034,10 +3034,12 @@ virStorageBackendBLKIDFindPart(blkid_probe probe, =20 /* A blkid_known_pttype on "dvh" and "pc98" returns a failure; * however, the blkid_do_probe for "dvh" returns "sgi" and - * for "pc98" it returns "dos". So since those will cause problems + * for "pc98" it returns "dos". Although "bsd" is recognized, + * it seems that the parted created partition table is not being + * properly recogized. Since each of these will cause problems * with startup comparison, let's just treat them as UNKNOWN causing * the caller to fallback to using PARTED */ - if (STREQ(format, "dvh") || STREQ(format, "pc98")) + if (STREQ(format, "dvh") || STREQ(format, "pc98") || STREQ(format, "bs= d")) return VIR_STORAGE_BLKID_PROBE_UNKNOWN; =20 /* Make sure we're doing a partitions probe from the start */ @@ -3245,8 +3247,8 @@ virStorageBackendPARTEDFindLabel(const char *device, /* Does the on disk match what the pool desired? */ if (STREQ(start, format)) ret =3D VIR_STORAGE_PARTED_MATCH; - - ret =3D VIR_STORAGE_PARTED_DIFFERENT; + else + ret =3D VIR_STORAGE_PARTED_DIFFERENT; =20 cleanup: virCommandFree(cmd); --=20 2.9.3 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list