From nobody Tue Apr 8 23:36:19 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1598345606; cv=none; d=zohomail.com; s=zohoarc; b=L7UHZ7ZJK0lu0/f0OsH0mmLVFqIt9W90/nRkU1maAf6dF7TLtgOU/Pb4mU8xH6Wtff5pac70PXCp6blDK+Ti39GT2IMOvrc03BgiieIASn59uUSDgUSPb2qi4ZblbvtvZ+u19LdgWILlYwgBuTzxqVZ+o4ripuRvo7YACLe/iu4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1598345606; 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=pICOX+Zyo3ETu/4gyJf/aQ+Uh3WU6G99th0gZuNTS6Y=; b=Q3S/3uyqVJfk+TpO+A70+Jt+2qyOZWW2fKrGrzh6ySqBUlUfevSCcgvS23kJls2n6DvDhU3eGx1ITy13mF7G7ucCQnHSPOLsUKve6k0ziYRdSPoXIRbt3Xe2/GfJ++itLCpQhqIhnRzjJaEafNECZI0y8MNqm4NMRQ9NIk0uELc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1598345606647213.54628440318072; Tue, 25 Aug 2020 01:53:26 -0700 (PDT) Received: from localhost ([::1]:39816 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kAUhp-0006jw-CG for importer@patchew.org; Tue, 25 Aug 2020 04:53:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60938) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kAUPf-0005WD-TP for qemu-devel@nongnu.org; Tue, 25 Aug 2020 04:34:39 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:55063) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kAUPc-0000kz-Be for qemu-devel@nongnu.org; Tue, 25 Aug 2020 04:34:39 -0400 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-83-VKVv0cWkPg2p6tpDmf0UpA-1; Tue, 25 Aug 2020 04:34:29 -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 1C45480732F; Tue, 25 Aug 2020 08:34:28 +0000 (UTC) Received: from localhost (ovpn-113-72.ams2.redhat.com [10.36.113.72]) by smtp.corp.redhat.com (Postfix) with ESMTPS id ACB795F707; Tue, 25 Aug 2020 08:34:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1598344475; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=pICOX+Zyo3ETu/4gyJf/aQ+Uh3WU6G99th0gZuNTS6Y=; b=fjQPWujRrBN7wEGZhwO03umXndwfkpAUEGvyd/OSR4BPw8w84SrSeS7UUeNx38f3ch0D9v vKnulFHr4OmLb3PsT9SR1rZLr31jEbr7kQZu+ocDk9ZJcEVNwY8ItkUvexl1rOi4LQU2FI 03lQ/sOoHGjewbVtG0Ch9rTRWcYJd08= X-MC-Unique: VKVv0cWkPg2p6tpDmf0UpA-1 From: Max Reitz To: qemu-block@nongnu.org Subject: [PULL 32/34] qcow2: Allow preallocation and backing files if extended_l2 is set Date: Tue, 25 Aug 2020 10:33:09 +0200 Message-Id: <20200825083311.1098442-33-mreitz@redhat.com> In-Reply-To: <20200825083311.1098442-1-mreitz@redhat.com> References: <20200825083311.1098442-1-mreitz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=mreitz@redhat.com X-Mimecast-Spam-Score: 0.001 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.205.24.124; envelope-from=mreitz@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/08/25 02:03:58 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.956, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Maydell , qemu-devel@nongnu.org, Max Reitz Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Content-Type: text/plain; charset="utf-8" From: Alberto Garcia Traditional qcow2 images don't allow preallocation if a backing file is set. This is because once a cluster is allocated there is no way to tell that its data should be read from the backing file. Extended L2 entries have individual allocation bits for each subcluster, and therefore it is perfectly possible to have an allocated cluster with all its subclusters unallocated. Signed-off-by: Alberto Garcia Reviewed-by: Eric Blake Reviewed-by: Max Reitz Message-Id: <6d5b0f38e7dc5f2f31d8cab1cb92044e9909aece.1594396418.git.berto@= igalia.com> Signed-off-by: Max Reitz --- block/qcow2.c | 7 ++++--- tests/qemu-iotests/206.out | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/block/qcow2.c b/block/qcow2.c index 00cda5696b..da56b1a4df 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -3449,10 +3449,11 @@ qcow2_co_create(BlockdevCreateOptions *create_optio= ns, Error **errp) qcow2_opts->preallocation =3D PREALLOC_MODE_OFF; } if (qcow2_opts->has_backing_file && - qcow2_opts->preallocation !=3D PREALLOC_MODE_OFF) + qcow2_opts->preallocation !=3D PREALLOC_MODE_OFF && + !qcow2_opts->extended_l2) { - error_setg(errp, "Backing file and preallocation cannot be used at= " - "the same time"); + error_setg(errp, "Backing file and preallocation can only be used = at " + "the same time if extended_l2 is on"); ret =3D -EINVAL; goto out; } diff --git a/tests/qemu-iotests/206.out b/tests/qemu-iotests/206.out index 363c5abe35..a100849fcb 100644 --- a/tests/qemu-iotests/206.out +++ b/tests/qemu-iotests/206.out @@ -203,7 +203,7 @@ Job failed: Different refcount widths than 16 bits requ= ire compatibility level 1 =3D=3D=3D Invalid backing file options =3D=3D=3D {"execute": "blockdev-create", "arguments": {"job-id": "job0", "options": = {"backing-file": "/dev/null", "driver": "qcow2", "file": "node0", "prealloc= ation": "full", "size": 67108864}}} {"return": {}} -Job failed: Backing file and preallocation cannot be used at the same time +Job failed: Backing file and preallocation can only be used at the same ti= me if extended_l2 is on {"execute": "job-dismiss", "arguments": {"id": "job0"}} {"return": {}} =20 --=20 2.26.2