From nobody Mon Feb 9 00:56:11 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.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 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 15169808825691012.0332217984013; Fri, 26 Jan 2018 07:34:42 -0800 (PST) Received: from localhost ([::1]:33602 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ef61V-0001kq-8j for importer@patchew.org; Fri, 26 Jan 2018 10:34:37 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45552) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ef5q9-000141-1b for qemu-devel@nongnu.org; Fri, 26 Jan 2018 10:22:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ef5q7-00036X-Em for qemu-devel@nongnu.org; Fri, 26 Jan 2018 10:22:53 -0500 Received: from fanzine.igalia.com ([91.117.99.155]:54723) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ef5q7-00035z-5b; Fri, 26 Jan 2018 10:22:51 -0500 Received: from 88-114-101-230.elisa-laajakaista.fi ([88.114.101.230] helo=perseus.local) by fanzine.igalia.com with esmtpsa (Cipher TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim) id 1ef5Un-0007h0-TU; Fri, 26 Jan 2018 16:00:50 +0100 Received: from berto by perseus.local with local (Exim 4.89) (envelope-from ) id 1ef5UH-00087l-Ok; Fri, 26 Jan 2018 17:00:17 +0200 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=References:In-Reply-To:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From; bh=dOHlLKq7+2YIwQsMx8J7WqD+KPdFKtR5qLVxqZ49Zdw=; b=Ap3hT5Fb9qZpwtqcNf+dd1GgdCU0TOpxw1WQJGPyASxwxQO7zcnj/ZGxolrazmeXPpwv7bWpisy5B9RbRD/kSR0bSnr43DlpvWXEdeI44+mE6DXAuOr2Pqm+p+93CoP40FpQbB8YsS63Ww+Qqkpc7jiikoevUEGb+rzUk6q4sZRIq0pBhwUXZwDY6UZEmo4Z9JrrDiLFMYu3xXbZx1x4s5XggUdo79ubJRC0TWv6C6KLmlSvSd1bsylLMeGuS3+sqRTacbUmSsu2gsoN0s4gGxUeoer3UfYjcfoiVpqd/zU1EXPkDpwblXzYoypCDhTbCw1A/Nc0z9GQMwDuE/zKJQ==; From: Alberto Garcia To: qemu-devel@nongnu.org Date: Fri, 26 Jan 2018 16:59:55 +0200 Message-Id: <4bd645eb4a81eb2009fab318dfca6d47e657655c.1516978645.git.berto@igalia.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: References: In-Reply-To: References: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] [fuzzy] X-Received-From: 91.117.99.155 Subject: [Qemu-devel] [PATCH v3 28/39] qcow2: Read refcount before L2 table in expand_zero_clusters_in_l1() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 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 , "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) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" At the moment it doesn't really make a difference whether we call qcow2_get_refcount() before of after reading the L2 table, but if we want to support L2 slices we'll need to read the refcount first. This patch simply changes the order of those two operations to prepare for that. The patch with the actual semantic changes will be easier to read because of this. Signed-off-by: Alberto Garcia Reviewed-by: Eric Blake Reviewed-by: Max Reitz --- block/qcow2-cluster.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c index e13f8f2f14..1338485184 100644 --- a/block/qcow2-cluster.c +++ b/block/qcow2-cluster.c @@ -1899,6 +1899,12 @@ static int expand_zero_clusters_in_l1(BlockDriverSta= te *bs, uint64_t *l1_table, goto fail; } =20 + ret =3D qcow2_get_refcount(bs, l2_offset >> s->cluster_bits, + &l2_refcount); + if (ret < 0) { + goto fail; + } + if (is_active_l1) { /* get active L2 tables from cache */ ret =3D qcow2_cache_get(bs, s->l2_table_cache, l2_offset, @@ -1912,12 +1918,6 @@ static int expand_zero_clusters_in_l1(BlockDriverSta= te *bs, uint64_t *l1_table, goto fail; } =20 - ret =3D qcow2_get_refcount(bs, l2_offset >> s->cluster_bits, - &l2_refcount); - if (ret < 0) { - goto fail; - } - for (j =3D 0; j < s->l2_size; j++) { uint64_t l2_entry =3D be64_to_cpu(l2_table[j]); int64_t offset =3D l2_entry & L2E_OFFSET_MASK; --=20 2.11.0