From nobody Mon Feb 9 06:09:01 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1572126064; cv=none; d=zoho.com; s=zohoarc; b=oJJN0bST2ZcqK7UXc1GZaf9QwzOhVSdCETcWN+1Ut3HLRbHuFKEISKLiSM9rWDULKBXGDAK8ENzsEj4DCz5B85NFKgaouI1aDN3gctJBifHu3UQ1d3cdbQbtGSzv25jR/VHDt4N654PLpxG5yqBMcvS0zpgxZKj3OQU6ZfeovPc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1572126064; h=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=BvyMuOuieE1su4Zkm7aBIoGAexAAhcDUlQ/YuuwXAHc=; b=VVgg1nGTBOh71Rnqs9Qxo8Pihpy0qOvtzTfxetC5VZmfvpxFmsMFfu4I+hK4j276q2fkQAF+fYAHf0a1m/Qy7duvZILZFFnqxjOkhR9Z45SsXCYHHzXiuOthAn4FdeXAuHvFZU1Q9z8Pv0Ij8JUfQbEXhcK45rTiUYbxe++99Jc= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1572126064975915.1059689032197; Sat, 26 Oct 2019 14:41:04 -0700 (PDT) Received: from localhost ([::1]:42602 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iOTnu-0005cK-PT for importer@patchew.org; Sat, 26 Oct 2019 17:40:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:60302) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iOTZw-0000XQ-Su for qemu-devel@nongnu.org; Sat, 26 Oct 2019 17:26:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iOTZv-0005RB-ET for qemu-devel@nongnu.org; Sat, 26 Oct 2019 17:26:32 -0400 Received: from fanzine.igalia.com ([178.60.130.6]:42492) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1iOTZu-0005Ey-V6; Sat, 26 Oct 2019 17:26:31 -0400 Received: from 87-100-137-117.bb.dnainternet.fi ([87.100.137.117] helo=perseus.local) by fanzine.igalia.com with esmtpsa (Cipher TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim) id 1iOTZI-000462-T0; Sat, 26 Oct 2019 23:25:53 +0200 Received: from berto by perseus.local with local (Exim 4.92) (envelope-from ) id 1iOTZ0-0001PV-Mo; Sun, 27 Oct 2019 00:25:34 +0300 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From; bh=BvyMuOuieE1su4Zkm7aBIoGAexAAhcDUlQ/YuuwXAHc=; b=r8ldV3R901F8oaPjneVfFMrNufN3jDghwDOdWsNGSpqOssoPo1nOuU78Dq7QV7G/Aq9Rw7e+RZA8fMDqYwCDGQDArIzcCnXJWZfKryP5hNJA7O1uXTg2Ic2zaJS9TtQ2Soa038zcv+hO6A2vTq5TMLg3U6n1lxbVYb4MVk8lk7BUFmuhafalQj69tdOarf/M9IAOybBUXaCcahxPtUOwPA28Pcb+JCLzuzCx1RxP5hw5PtWjmJmPUDnjm63a4hwDULDPPr6uJvWoL8Nt9fv9gfAYEa6aWTxvpq51H7ODeMuLFqt6P1o9ve3OoK1L6GMesaRgiTJTUma10pwP1PzuPg==; From: Alberto Garcia To: qemu-devel@nongnu.org Subject: [RFC PATCH v2 15/26] qcow2: Add subcluster support to zero_in_l2_slice() Date: Sun, 27 Oct 2019 00:25:17 +0300 Message-Id: <8f366482d2b273c26ff67cba1de898289f613fc7.1572125022.git.berto@igalia.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 178.60.130.6 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 , Anton Nefedov , Alberto Garcia , qemu-block@nongnu.org, Max Reitz , Vladimir Sementsov-Ogievskiy , "Denis V . Lunev" 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" Setting the QCOW_OFLAG_ZERO bit of the L2 entry is forbidden if an image has subclusters. Instead, the individual 'all zeroes' bits must be used. Signed-off-by: Alberto Garcia --- block/qcow2-cluster.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c index e67559152f..3e4ba8d448 100644 --- a/block/qcow2-cluster.c +++ b/block/qcow2-cluster.c @@ -1852,7 +1852,7 @@ static int zero_in_l2_slice(BlockDriverState *bs, uin= t64_t offset, assert(nb_clusters <=3D INT_MAX); =20 for (i =3D 0; i < nb_clusters; i++) { - uint64_t old_offset; + uint64_t old_offset, l2_entry =3D 0; QCow2ClusterType cluster_type; =20 old_offset =3D get_l2_entry(s, l2_slice, l2_index + i); @@ -1869,12 +1869,18 @@ static int zero_in_l2_slice(BlockDriverState *bs, u= int64_t offset, =20 qcow2_cache_entry_mark_dirty(s->l2_table_cache, l2_slice); if (cluster_type =3D=3D QCOW2_CLUSTER_COMPRESSED || unmap) { - set_l2_entry(s, l2_slice, l2_index + i, QCOW_OFLAG_ZERO); qcow2_free_any_clusters(bs, old_offset, 1, QCOW2_DISCARD_REQUE= ST); } else { - uint64_t entry =3D get_l2_entry(s, l2_slice, l2_index + i); - set_l2_entry(s, l2_slice, l2_index + i, entry | QCOW_OFLAG_ZER= O); + l2_entry =3D get_l2_entry(s, l2_slice, l2_index + i); } + + if (has_subclusters(s)) { + set_l2_bitmap(s, l2_slice, l2_index + i, QCOW_L2_BITMAP_ALL_ZE= ROES); + } else { + l2_entry |=3D QCOW_OFLAG_ZERO; + } + + set_l2_entry(s, l2_slice, l2_index + i, l2_entry); } =20 qcow2_cache_put(s->l2_table_cache, (void **) &l2_slice); --=20 2.20.1