From nobody Mon Feb 9 09:29:10 2026 Delivered-To: importer@patchew.org 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; 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 ARC-Seal: i=1; a=rsa-sha256; t=1584470103; cv=none; d=zohomail.com; s=zohoarc; b=bSlP0KJCty4ozJFG0EfCadKOXqbFD1EdM9V/2YcdH3lgrrwNpXIqsEGb/dSGTTbPNH/Jr0/FDstOJRze/v5arMhwAN1SHPRovDTL8JnlesyuVgwI9lRyMby7AJxKNZgT2XRBVqX+4Adx/nakwm1BIo5ARADosgydn/5ydfAzg38= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1584470103; 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=/N5tR/EenqLcII0SrkA0hO9WogY+jGlaf4KeRI4XFi4=; b=JShgTjW5l8RAz2QxGJKIq3L3GckLSzqfXDQUOdgK1iSmb2fm379HUzrsSpn0Y0aUD+Y36pFon3GXVPxSPeWUrl3biiirXzr6FWGRaG0azI9RgL74REA9YH4F0WEXx9Kq5MZouA6iFOT5k/DYcBMR067FjaZVX+SHrZUIN44HYPI= 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 Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1584470103482324.71384094173095; Tue, 17 Mar 2020 11:35:03 -0700 (PDT) Received: from localhost ([::1]:39428 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEH3O-0003XS-CA for importer@patchew.org; Tue, 17 Mar 2020 14:35:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48843) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jEGmx-0003U7-IJ for qemu-devel@nongnu.org; Tue, 17 Mar 2020 14:18:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jEGmv-00008k-1x for qemu-devel@nongnu.org; Tue, 17 Mar 2020 14:18:03 -0400 Received: from fanzine.igalia.com ([178.60.130.6]:58012) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jEGmu-0005yA-4H; Tue, 17 Mar 2020 14:18:00 -0400 Received: from [81.0.35.138] (helo=perseus.local) by fanzine.igalia.com with esmtpsa (Cipher TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim) id 1jEGmD-000151-2y; Tue, 17 Mar 2020 19:17:17 +0100 Received: from berto by perseus.local with local (Exim 4.92) (envelope-from ) id 1jEGlw-0006Of-M8; Tue, 17 Mar 2020 19:17:00 +0100 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=/N5tR/EenqLcII0SrkA0hO9WogY+jGlaf4KeRI4XFi4=; b=TBul/DslfCmx4VQNouxwZxLTeT8ahqYMUSOZlDG+HF5UuwWX4OvIOT/azJ9SKn9E2/2S4gc3I8LK0hWFiox4Cg9KdE95Yx0ldV3SJITpEaCpYqbP8L/poxJ278uIkqCWA0jSYMBbRSNJK3xN5LLadbwtFqcdTfHgMni5Sbjwas2U7JiZ82/rPT6QEJo1Gn9Vptu0yagUvYQuGWzx0KGxaU8v98qE8yaazdmrUQdIUi/UJH+odNMG1+vJQEJte1m4cM/otZcdYoISZGQprRwfiyMNyqUhuwWh94LjDPVBMcxVkYklvHuN530iF7m1DTnCwHaB7YFu+ZspPzIJ8G/spw==; From: Alberto Garcia To: qemu-devel@nongnu.org Subject: [PATCH v4 19/30] qcow2: Add subcluster support to zero_in_l2_slice() Date: Tue, 17 Mar 2020 19:16:16 +0100 Message-Id: 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 Reviewed-by: Max Reitz Reviewed-by: Vladimir Sementsov-Ogievskiy --- 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 6f2643ba53..746006a117 100644 --- a/block/qcow2-cluster.c +++ b/block/qcow2-cluster.c @@ -1897,7 +1897,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); @@ -1914,12 +1914,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