From nobody Sun Feb 8 21:21:10 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 1543591776944987.9661487118915; Fri, 30 Nov 2018 07:29:36 -0800 (PST) Received: from localhost ([::1]:33307 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSkjX-0000ah-Jn for importer@patchew.org; Fri, 30 Nov 2018 10:29:35 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51505) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gSkZa-0007S2-Br for qemu-devel@nongnu.org; Fri, 30 Nov 2018 10:19:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gSkZW-0006Vz-Ba for qemu-devel@nongnu.org; Fri, 30 Nov 2018 10:19:18 -0500 Received: from fanzine.igalia.com ([91.117.99.155]:53236) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gSkZU-00062X-52; Fri, 30 Nov 2018 10:19:14 -0500 Received: from [194.100.51.2] (helo=perseus.local) by fanzine.igalia.com with esmtpsa (Cipher TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim) id 1gSkYp-0007XE-60; Fri, 30 Nov 2018 16:18:31 +0100 Received: from berto by perseus.local with local (Exim 4.89) (envelope-from ) id 1gSkYZ-0003eT-JE; Fri, 30 Nov 2018 17:18:15 +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=CuPIpHcPpLuIgJjmVWnd2l0bSibdcfbLMjDkBkkdbr4=; b=ClTCi4EKWmCu6W2f8buIJ9DYOz14ANQIXzpRvb/ZxZUC090fVc1cm0KqNPZQ+41+NifAoUugIH7m3Y1TPGk1bzSPt/wyuKyKFt767BAVFhz/lI+SWbqUG4W5KD0Uy9mS23iwbJEOpexpM0meAIReVx9fgOJszADHw/xegmXo6se9rxGqKWwIwbe5GT6kPAmKcZkIPjlzGY4rR1iZISVU2zIuuRAfqfR8vUAWw3hfjv7aTgrw/cwjRzdGqn3pKZZu2CgN0ua1YYhbLSkGJIGWMmoR3LvBXNtaEsOmx5W99BP3qztXDWyPosRHSk1slvivNetSa16GfiUXAq3mGCP36A==; From: Alberto Garcia To: qemu-devel@nongnu.org Date: Fri, 30 Nov 2018 17:17:45 +0200 Message-Id: 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] [RFC PATCH v2 07/12] block: Allow omitting the 'backing' option in certain cases 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 , Alberto Garcia , qemu-block@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-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Of all options of type BlockdevRef used to specify children in BlockdevOptions, 'backing' is the only one that is optional. For "x-blockdev-reopen" we want that if an option is omitted then it must be reset to its default value. The default value of 'backing' means that QEMU opens the backing file specified in the image metadata, but this is not something that we want to support for the reopen operation. Because of this the 'backing' option has to be specified during reopen, pointing to the existing backing file if we want to keep it, or pointing to a different one (or NULL) if we want to replace it (to be implemented in a subsequent patch). In order to simplify things a bit and not to require that the user passes the 'backing' option to every single block device even when it's clearly not necessary, this patch allows omitting this option if the block device being reopened doesn't have a backing file attached _and_ no default backing file is specified in the image metadata. Signed-off-by: Alberto Garcia --- block.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/block.c b/block.c index 4a2f81b129..5ecdbbac9e 100644 --- a/block.c +++ b/block.c @@ -3330,7 +3330,11 @@ int bdrv_reopen_prepare(BDRVReopenState *reopen_stat= e, BlockReopenQueue *queue, =20 drv_prepared =3D true; =20 - if (reopen_state->backing_missing) { + /* We must provide the 'backing' option if the BDS has a backing + * file or if the image file has a backing file name as part of + * its metadata. Otherwise the 'backing' option can be omitted. */ + if (reopen_state->backing_missing && + (backing_bs(reopen_state->bs) || reopen_state->bs->backing_file[0]= )) { error_setg(errp, "backing is missing for '%s'", reopen_state->bs->node_name); ret =3D -EINVAL; --=20 2.11.0