From nobody Sun May 19 14:32:52 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1615479204; cv=pass; d=zohomail.com; s=zohoarc; b=go//K6LY0ICiRoIWXS0WPFBUkdNEkFD02o29Dx/tAsyzzZA4KyH40gVeCPRd2zfZZtFDiEHJeu7Z7SSwPCljUxPbaERcHMIZ0d7+cZpdkduiV6AS2h7Fz/jJkmFLJcVb3FUg13kK+fLaWtP/2wkXaAue7fkDrCVjk6KT3jdQZ7k= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615479204; 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=m9eV5j8EuIiLtfYerDdH+/iTZ5FMevFgEabQSfzV0q8=; b=m/q4lZJ9zik530G1TfjY4RssLH0vBbyuXhUZj+E/kCfbSoIpluaCJn/2SlAnq0Xv4QIXkbKHAVlBBz+s/iRCSppt3p9JZ5fBDytYLlkPr9VUyy8MSXmbAxOARk1jAWQStT59PSd5wSpNpNTObrqeQQQSM101xjXozgrLf5DWkWE= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass header.from= (p=quarantine 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 1615479204951781.3133985052956; Thu, 11 Mar 2021 08:13:24 -0800 (PST) Received: from localhost ([::1]:51278 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lKNwB-0007ZH-KP for importer@patchew.org; Thu, 11 Mar 2021 11:13:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49504) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKN2S-0003Z6-AA; Thu, 11 Mar 2021 10:15:50 -0500 Received: from mail-am6eur05on2123.outbound.protection.outlook.com ([40.107.22.123]:43129 helo=EUR05-AM6-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKN2N-0001YX-Kl; Thu, 11 Mar 2021 10:15:46 -0500 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AS8PR08MB6551.eurprd08.prod.outlook.com (2603:10a6:20b:319::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17; Thu, 11 Mar 2021 15:15:39 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::f1f0:6610:11f5:5e4a]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::f1f0:6610:11f5:5e4a%8]) with mapi id 15.20.3912.030; Thu, 11 Mar 2021 15:15:39 +0000 Received: from localhost.localdomain (185.215.60.202) by HE1PR05CA0247.eurprd05.prod.outlook.com (2603:10a6:3:fb::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 11 Mar 2021 15:15:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PR8Zg0yxwQPlaEA72HomLqMFgS90bfyDz/AERLdRoyZHii5Mk6dX6bQ5qAP3v5DcpfDtBLN7eVKHZgVZSavZDG1hRJvYPBI6swPMXAIh32yZQjAA9rQ9llEg+x6MNwbjaJn/W3KSSn8xFrlEOMrovCK8zhTiYCoufgkMJpf0+nXfYMl17D4ozAnW9hBm+2Uh0rdcftlppIkzbCO5QxGZBa09J0A336JWTUT+GG7NK0S0dzHalVgxoK4oPLClGVHn4X8fEZ0sIo6Z1xkhuNyjWO7OdE28CsB2sgUjeWCJju+lOtFkRvMMW2mMOf3Y8m7zQVCu3Nzvj+N3HmQPsJh0TQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m9eV5j8EuIiLtfYerDdH+/iTZ5FMevFgEabQSfzV0q8=; b=P/jmVO8daXjXpoq9mgei5sve7uviGmO3sgRHBC3PzCuga1PeLv7vxCFm3xu2jx+agV2kQbmKj5q/YYoZ5GqPdgnKIisjwHTZQH8ut8imW8GP9jKgrt3kHkDsQXW7ihtie94Lir5EIWurocwEKOngElsT8lntWa7IFDFYX6VHLlGpJMcz66cjtc5fym3a9Zxkz9ZmnAjgC6BVyEHny5N+921zXtfmCXnK6tXaJqw/cOdwC4OERrmfjQxT0bBWWF0VigCh7JJLGueAW5O0SjZFZqu+fMeqR1haKv7xjtq5xf4YEQhkGh+gI+aTYv/gl1LGdcLyg74Hct0DuXo1Wiuy7Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m9eV5j8EuIiLtfYerDdH+/iTZ5FMevFgEabQSfzV0q8=; b=Yo89fD8gX7OPqLCakUvOYPQtZw3MMOfGk92G1JKFTrTq1H+NoErVXfCXnx+I6LglXgMKcRmwknkb/kZHcXex1qNrJKQ9V+uN/TmwoE8Ghd0KikgWUfQMgjeS7Rv4RMOpOgHENkI+WMBI6dX+YNn20VsnN8UvNcPbEIA/1InatXw= Authentication-Results: nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=none action=none header.from=virtuozzo.com; From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 1/3] block/commit: keep reference on commit_top_bs Date: Thu, 11 Mar 2021 18:15:03 +0300 Message-Id: <20210311151505.206534-2-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210311151505.206534-1-vsementsov@virtuozzo.com> References: <20210311151505.206534-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.202] X-ClientProxiedBy: HE1PR05CA0247.eurprd05.prod.outlook.com (2603:10a6:3:fb::23) To AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 90b2e3e4-3927-4a1b-f6e9-08d8e4a08761 X-MS-TrafficTypeDiagnostic: AS8PR08MB6551: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:227; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /5o5BPAdD2DTHYe8gFHWNfLhlWROVYU1H+9yd6oCnHZSR7WG6H9W+oxikGyFNVxnIU9pIc/io0IMedFXVBUTqTtN4DTYq7e+bivwMuPfDTHCuAPRAhK2JTrQcOkoET+CXzIthgKV0yrPXDUGOlmp9tCE3GXyBLgF6gysyh/95q8r+nh2RZodTluUuZemRcbB54snYJgH38cwXqwXzBfvp2TUL3xmQGMdPiKEkuHG9OafQxGzv62Z3xtqo1QT11utdnrisH7Dm52F5NXm/ppBGwAlsXoe6xwtzVGZ2J+ileli6EJFBY84jSIoptexDFCJNQ2fQZFcnWlWy22sw6RqvRSswlebIcrUPcdP840j3dhGz/Qd6ntipCw//pQ0GPbtzg8chhJBckJHa+LiofJNugq3Dd/heOSEqTcAO9Y8yPAcpqY1kEt0CoTJqDUSXQRRU7KLf4RFv1JuizQulVXxfVfekvJEOT66gjwxv/ujYhX1G42GgKeFYRGkY+FPsxnhLmaU/RTwONvYOId5DblWlq6uX81M24c/gEvcrQi9lS1bmBvDSPNiwT+5CuZXeFPcn6zhBpR6ObatVL6xYLZt1g== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR08MB5494.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(39840400004)(366004)(346002)(396003)(136003)(86362001)(6512007)(956004)(8936002)(2616005)(5660300002)(316002)(6506007)(1076003)(52116002)(83380400001)(69590400012)(6666004)(107886003)(478600001)(6916009)(2906002)(4326008)(26005)(16526019)(186003)(66476007)(66946007)(66556008)(6486002)(36756003)(8676002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?wmslUgHd0vWXQ2/0Q8b1ScLxf7L+53H8piPLvvjNZYOtJ8i/IoxsfWU21CsJ?= =?us-ascii?Q?x4gT1NdSUCUotsOCzG9kgFnmwGuInVA/apDu4l0Ubecq0ev6P8Sepic/RoY3?= =?us-ascii?Q?nc9jSozp1hBkfu6J2M73qMg44WsKdmn6wBbpIFnDPxFYIbauw1ruwFlVPYj5?= =?us-ascii?Q?MOZYMLKTXJWL4a+PSBOFq1uw+rkMHErfudIyN7eGDSpch3dAsMmVn0qeR3J+?= =?us-ascii?Q?tji4CNjrvTfE6lV+Eb147C+lfKX+34TuaMhar0qeG88mF87ADcOAC6pgARVQ?= =?us-ascii?Q?Jyee2R1FdO8qKxSVl9Vfy0NqnngrKC704sx8IMZs/u7GwUPEiXblXeFwy2SP?= =?us-ascii?Q?HAgDLVyk3lP475YCMSQ8TdF1ANV/QhWPBB2y/nvxp5rSNrr7pd7oZsWx4dnl?= =?us-ascii?Q?P+9AJJwQQA8iYbHTTRlIIuoNRq0IrvQJwjA3VpB+KKa316f1FkEHiHoyVEOn?= =?us-ascii?Q?asjZAqPvg/GhPGTdWd1GFdFPrpQGHtCzeP+wo4MFHzTk8nrVsmC9QniegC2i?= =?us-ascii?Q?H4MOiT4YTSFduYuZ0+o5GuWv6Th+jH3HlPstgm3FpRmyNsxW/dmn0f3mc0hR?= =?us-ascii?Q?YB6syoj6CPdyaDctLWEc0m1/U6eqhdJDJeyyi/R8QahrSZ7rEVTvk0aMwobL?= =?us-ascii?Q?Nom6XwfAK7/o/6unXbO7ab6UWZf8xG3RkcW7xBz3NNHBGQPp7Zj3dh7l7/6R?= =?us-ascii?Q?LIhw4ExtAgDMt24CGcGmSoUO/zstZbyF6fOpA0/uGKkeTyXo7fjhhiaCvGbp?= =?us-ascii?Q?RhqERDvMV7FH0DiRlv8jVOGHensPOhey6cBGBZSg2sAD1spT7339gaEpUdSX?= =?us-ascii?Q?Z368lExTgAZ4qbJBeKahfhK8DFuGGHX8w9uDLNwCzLoAHbR6qKGCP/wT9fwa?= =?us-ascii?Q?a3n81NpwdhEgKy+gzaAkS1UIYqEWqCgkeFBki0OhjC9QsaVxmJPNFk78mC2/?= =?us-ascii?Q?j9E0k1EscIQWBK3cZc2CR0PV7d0+HrDDGcrDN5wgh39Jis/QuPPP6dmFXAdk?= =?us-ascii?Q?WqPZb6odigzcxowl/Gszg+GqoPaCR6gqoFjhWfHV+OtNbba8KranBUHTuFbg?= =?us-ascii?Q?QIke2wOpRjSDpZKFS7KJZnSrAFIZEXQGo1lYsZ7BJqhznObIGcQ5+7PmPfvk?= =?us-ascii?Q?f6yzyQvvYTlVUOR0teZiGZgHSTr5+sZ12p+GCvtfeeyglTWtHdfzJaMXxruP?= =?us-ascii?Q?lojydCTAIwJzgZh8cuB97iUe3Oj/14/364GX2xmQqx//92n7qtl8PjzDsEny?= =?us-ascii?Q?BJUxpMergk4BUu5QcqzDUGVOYBjmLtaU22/RDmLwatQRbNY7DGC5+eI5Mu+z?= =?us-ascii?Q?Q6wnLe1T6duHxMMYDf0G2g7v?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 90b2e3e4-3927-4a1b-f6e9-08d8e4a08761 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2021 15:15:39.2056 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: q+LxFc+aliG3fNdeVpCQKOSn1kO/phi7Qu9/potUHeVxILQePPUjxA4RhNjkAQW2oLQbgVHEoUvaSkBySYkTBsYq1nLqiL384hE6ZMf9k4g= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6551 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=40.107.22.123; envelope-from=vsementsov@virtuozzo.com; helo=EUR05-AM6-obe.outbound.protection.outlook.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @virtuozzo.com) Content-Type: text/plain; charset="utf-8" Nothing prevent removing of this node during the job. Job needs this node to be present, so it must keep the reference. Signed-off-by: Vladimir Sementsov-Ogievskiy --- block/commit.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/block/commit.c b/block/commit.c index dd9ba87349..57f054ad5d 100644 --- a/block/commit.c +++ b/block/commit.c @@ -71,9 +71,8 @@ static void commit_abort(Job *job) bdrv_unfreeze_backing_chain(s->commit_top_bs, s->base_bs); } =20 - /* Make sure commit_top_bs and top stay around until bdrv_replace_node= () */ + /* Make sure top stay around until bdrv_replace_node() */ bdrv_ref(top_bs); - bdrv_ref(s->commit_top_bs); =20 if (s->base) { blk_unref(s->base); @@ -93,7 +92,6 @@ static void commit_abort(Job *job) bdrv_replace_node(s->commit_top_bs, s->commit_top_bs->backing->bs, &error_abort); =20 - bdrv_unref(s->commit_top_bs); bdrv_unref(top_bs); } =20 @@ -109,6 +107,7 @@ static void commit_clean(Job *job) } =20 g_free(s->backing_file_str); + bdrv_unref(s->commit_top_bs); blk_unref(s->top); } =20 @@ -317,6 +316,8 @@ void commit_start(const char *job_id, BlockDriverState = *bs, goto fail; } =20 + bdrv_ref(commit_top_bs); + s->commit_top_bs =3D commit_top_bs; =20 /* @@ -416,6 +417,7 @@ fail: * otherwise this would fail because of lack of permissions. */ if (commit_top_bs) { bdrv_replace_node(commit_top_bs, top, &error_abort); + bdrv_unref(commit_top_bs); } } =20 --=20 2.29.2 From nobody Sun May 19 14:32:52 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1615478729; cv=pass; d=zohomail.com; s=zohoarc; b=OpSAbvdona3mqWYdVA+NudusPPVwv67DVbB0ia66dHV1Jiys0J9Wq12t8iF3jmpR+oA0lm/oEBYdrHqUCFoD4HBNQIbotLt1oDgWu4/jAJA1FP6JzeJrc39ODp9gfqm7S92ST+/wrSk9Cmy0fxeHfYTYU3YoX87sy01u+L+SCC8= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615478729; 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=S1MYexCjjvee7Inz2DIGd1b+/epnG65l/7a8yRHKGIY=; b=OcJKoAL/0nICHDrMUxCEiVDbj6xmBnhl293xl3aw4X/R0yOe9BuM5nfPdrPZHVyTfI/rIlBH5ioHZ3g6SaFpiplJgqiNxqrCu8gE/1NTb9jlbCKoh3LlQBSpcEniIMTjB+F+0liJm+LbGD4p010ArlJFAyLZDL3igyA2L8y02pI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass header.from= (p=quarantine 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 1615478728956454.37738371663966; Thu, 11 Mar 2021 08:05:28 -0800 (PST) Received: from localhost ([::1]:53226 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lKNoT-0003qX-GH for importer@patchew.org; Thu, 11 Mar 2021 11:05:25 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49586) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKN2d-0003iX-Ty; Thu, 11 Mar 2021 10:15:59 -0500 Received: from mail-eopbgr80115.outbound.protection.outlook.com ([40.107.8.115]:13537 helo=EUR04-VI1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKN2S-0001X4-HK; Thu, 11 Mar 2021 10:15:57 -0500 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4407.eurprd08.prod.outlook.com (2603:10a6:20b:bd::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.27; Thu, 11 Mar 2021 15:15:40 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::f1f0:6610:11f5:5e4a]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::f1f0:6610:11f5:5e4a%8]) with mapi id 15.20.3912.030; Thu, 11 Mar 2021 15:15:40 +0000 Received: from localhost.localdomain (185.215.60.202) by HE1PR05CA0247.eurprd05.prod.outlook.com (2603:10a6:3:fb::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 11 Mar 2021 15:15:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LAG8JhfuV6cyls6B6qe1vBRqkrUrF6fBTrPTUxg1NjHKhIvy/SfDh8Nkpy8EQbZMQIm5SftqnImyRWvPxxkuBd9yHQmLTkGwYIxc9nGolosqGUGiVKDnusinyj48iqT409haGZMuNsFa+uGWLSTVL21dwi+RDw0iNJzTv+NupCGWC+C6vSklQG9F7utTJIDGOxeWHnLBGXSrBiHRkD4oKS2bUW9mzr3GTDK8O5ihJYC7492I9G5qF1WC6UxM1pF3zXVI7j5+JjSN3PSewV10QxclxkfSMlOXWWs3lfChH6CWKnhUe7VOmHog6d5848UI3jmp2/OcUDbNG4UhbLj4Ow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=S1MYexCjjvee7Inz2DIGd1b+/epnG65l/7a8yRHKGIY=; b=nx0bv/p0aVcFbsTBN4+PyFdPFiNJcIHXD+nXotxUaPaMxQc9tXVM0NROO0KNQvkMMV91hsDH2DWI0KPY/ncBboJfh5U/FP1N7ToMT+9AauXNPFHJZAJMS7adZEt1bO3Z5YwP6EtBAT4k+n5S0Yx54wNkYERy7yIRkotSkpL+8UW2SKsHrhmqybvCIBYG8nhzJzxxBJtFcAXcnUp/nDXtH0WqgHujA4YoXszWK8oIdPlOdfj8RD5Ke5c5moJQqhuH66lF8LokjQA03f/UWmJPdLucE0dXPSZRSkEzITK4+rrwmBCdPDBEdYC7cfQmQYABiA0RVJsmYw2z+Qj41xtn5g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=S1MYexCjjvee7Inz2DIGd1b+/epnG65l/7a8yRHKGIY=; b=X88dpAa35MUg5Q93+3IVG8knK0c/1iXmlhwrGze17iuqGsnIKsDv3gYNUfr7kkuXF3/+S2OIhq5LvT8nOOUoWD72xYCe65z/kQd+4tGQvpuWBYSGfWCzjN18BHoIN7lu760YhbJ7V5BJ2pu4fJJAUtF6eAE7CE9E+T+ylkmqYwo= Authentication-Results: nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=none action=none header.from=virtuozzo.com; From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 2/3] block: allow filters to be reopened without .bdrv_reopen_prepare Date: Thu, 11 Mar 2021 18:15:04 +0300 Message-Id: <20210311151505.206534-3-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210311151505.206534-1-vsementsov@virtuozzo.com> References: <20210311151505.206534-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.202] X-ClientProxiedBy: HE1PR05CA0247.eurprd05.prod.outlook.com (2603:10a6:3:fb::23) To AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1181d44f-f9bd-484e-4924-08d8e4a0882f X-MS-TrafficTypeDiagnostic: AM6PR08MB4407: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:169; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: s4mYple8DAFECq14quHSbSZ9ctBnMMLtg+oFIsk2qByX/YU/7jOhjXa4DOOwadIG4I4SqtigVS/R2kj6CL6VR8rYtCUfrW6NA53yODz4kJmJANwVHgZxQIoiEVy3oexgQrVKMkhjZpxacbe73vXEvncFXsup5JGuVpTvcIe/Gd6KfB5MhBOawYzefFRLRuROz0lCjrRcgaMMA/dha4zBXgHPv7/7wKxu89K+PkzPRb9rXO5W4665u2t3OqiliTQNQP2P1x3OhTBwAuSM9Rrx5r59wwPvzY5YZvSY+453NOLWWGOrMr4Jwq95aHglRwK6fvx0MGp/+hg1UJB29vSMtk4ZHJr+H4zsCfuSd4fYg0zhnJXPasB4BWi3M2wGF0+XdpTL47DmG0HUWTDyhPSUzEJS7/QXlXmEnjX6wSgAW7LS28ZfFO9P7cDW/3nxa0zF/HGnKDYW1eSmbyQTTUuhK/7UdpAk+6ho5fJIki2lYEBO5fXE+Tf7H4b+dyDS7AtpVAJZ/xP24MjxlWxM/Ysi+aVzQcnX7DdhhjYz8iUhmipkfHsve82h/xBUKIyJKzZ5qQPiIOluGi2IYomHpNJnbZOC1K/cU9FlMeAwUZ91SJU= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR08MB5494.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(396003)(39830400003)(346002)(136003)(376002)(6512007)(4326008)(6506007)(16526019)(36756003)(478600001)(6486002)(107886003)(2616005)(956004)(8936002)(1076003)(6666004)(83380400001)(2906002)(316002)(66946007)(66476007)(26005)(69590400012)(8676002)(66556008)(186003)(52116002)(5660300002)(6916009)(86362001)(142923001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?kMIYWfEu02hU6GN4firZjxs17ciAe2+FqLMJ0+GtoENHC9aJOD9fC9uazldy?= =?us-ascii?Q?pnRxMguCDrPAhRo0S69As8THvh6DTwgclH67tuPKeolO+333UA23cV/UNHxM?= =?us-ascii?Q?Tq8wQXLdGXdQpzEoON+eQhEDwP24tOassZRps3qx9+z1b0vB+uUcKQF1J9Al?= =?us-ascii?Q?/IdmmDukT60OAcskbScnoPmZqNv1nCN+hYqfEUoDvqKTh2kKT1pJXWRwG2GB?= =?us-ascii?Q?eHpsGMynOQnr0L0kDNVR8pxeqNbtV1iBFxPjWwuCNotF9JkweZCbxV4ffQCu?= =?us-ascii?Q?j+DYGH2BiorSw+TgFolk61KF1Zf+72GO1+sGIZFJsYa+cHOc7d6RrnN3eFPU?= =?us-ascii?Q?jDcH6bVxhb1w3UoO+oUQS9pp1g6rlTJjc6qRDPKawEYq6XXVHqMKrOzaMvLY?= =?us-ascii?Q?DlkLtHoOW1erucIE0PlJgxGJHysZYHRTVxGi6DMrNmHXQcxggIi7oYZSrvkf?= =?us-ascii?Q?fA8IPNKVHbJ9vH8t9IC64n5iouHO0gkLlZa7YEBMqckSxHqVOt54xygBYUXk?= =?us-ascii?Q?ttOCPVAwUn0hI5SMd+p2WfILfh9kd0w63MI8EZK82QaYbbgMcEWYiBDXav83?= =?us-ascii?Q?jfnbTVaHM5/+F2A4PcQEi46OjnsDhefYrJHnrlDF5NCb3Oc8TedUdzJH+H7q?= =?us-ascii?Q?NVST9DoZYdvGLIJkgjlncb9qRSIJFoYA5F/OcGsgeWpQEfzMe4ZJilgJJD5W?= =?us-ascii?Q?ks3jsFFE4LWhcb38uzCyklQv8ZewKV+Nf/rbcph9/RJdEYHOQDsl3VtDyY3B?= =?us-ascii?Q?E6ULBEpmGnScvFmYhGtoZE0VtWChVMdVL02AV+T9jXQbZPqPu5j/V18HLMpp?= =?us-ascii?Q?NgptCGs11Xeyxt39OGSM0S16qzguznXNtkCrYXRzAgKpmVUrLW1UWCtBnJYT?= =?us-ascii?Q?XS6DeG5siPRDt2z27OA1Eo/Q/95TXx5e7XkoeO9gLC1wlElFXuzb1PXkQ+In?= =?us-ascii?Q?b2S6mn4krE+/jNZRMYdAB4Stl9HWbep8PaiS/aCuknioUtP/g1b671Fx2jLu?= =?us-ascii?Q?ybjN1rYasCiuU8vf0c19AQpc2ozTvbXemgBwECQa2J2cxtH60zvIBr91pygv?= =?us-ascii?Q?gG4kfwHa5IYxNvTbQx6bG6GXQsRfZxQgGMdqGhjgs+dS8HKyJMamFZB/XxL4?= =?us-ascii?Q?MJkd1cmlM2AyMh3N53kD16Yab7M9prd3vBB8Z1uFR/DJhTa9mVcw4sxtENdi?= =?us-ascii?Q?8ljkNTpMbEs6HmPIDd+q3K/zC4S85opDt+Ij2zFq49Jce0jxzxea3rOFMgg2?= =?us-ascii?Q?v5EFlISIiNeUwesbqZBX04qaDqnKef3ptZqP7CqLYQ9Q7uLveUHIHYUk4Rvs?= =?us-ascii?Q?n81YCHPcFQqwu7LOZ1RjpcLo?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1181d44f-f9bd-484e-4924-08d8e4a0882f X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2021 15:15:40.5353 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: F/lF/6W7SAMNUwQZYgdKlsSBlYhcgPg+X4uWqWd/aLEyNFEUT4mU2PbQUgjWWcib+hptDgVM1Y+qhMJOrQjfXxZsRItYbjtaTmUiImWjwbA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4407 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=40.107.8.115; envelope-from=vsementsov@virtuozzo.com; helo=EUR04-VI1-obe.outbound.protection.outlook.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @virtuozzo.com) Content-Type: text/plain; charset="utf-8" We are going to drop inherits_from logic, so every child will be recursively reopened including filters. Let's assume that by default filters do nothing on reopen prepare. Signed-off-by: Vladimir Sementsov-Ogievskiy --- block.c | 23 +++++++++++++---------- tests/qemu-iotests/245 | 5 ++--- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/block.c b/block.c index 2daff6d29a..815396f460 100644 --- a/block.c +++ b/block.c @@ -4189,7 +4189,7 @@ int bdrv_reopen_prepare(BDRVReopenState *reopen_state= , BlockReopenQueue *queue, goto error; } =20 - if (drv->bdrv_reopen_prepare) { + if (drv->bdrv_reopen_prepare || drv->is_filter) { /* * If a driver-specific option is missing, it means that we * should reset it to its default value. @@ -4201,16 +4201,19 @@ int bdrv_reopen_prepare(BDRVReopenState *reopen_sta= te, BlockReopenQueue *queue, goto error; } =20 - ret =3D drv->bdrv_reopen_prepare(reopen_state, queue, &local_err); - if (ret) { - if (local_err !=3D NULL) { - error_propagate(errp, local_err); - } else { - bdrv_refresh_filename(reopen_state->bs); - error_setg(errp, "failed while preparing to reopen image '= %s'", - reopen_state->bs->filename); + if (drv->bdrv_reopen_prepare) { + ret =3D drv->bdrv_reopen_prepare(reopen_state, queue, &local_e= rr); + if (ret) { + if (local_err !=3D NULL) { + error_propagate(errp, local_err); + } else { + bdrv_refresh_filename(reopen_state->bs); + error_setg(errp, + "failed while preparing to reopen image '%s= '", + reopen_state->bs->filename); + } + goto error; } - goto error; } } else { /* It is currently mandatory to have a bdrv_reopen_prepare() diff --git a/tests/qemu-iotests/245 b/tests/qemu-iotests/245 index 11104b9208..a7c70213dd 100755 --- a/tests/qemu-iotests/245 +++ b/tests/qemu-iotests/245 @@ -524,9 +524,8 @@ class TestBlockdevReopen(iotests.QMPTestCase): result =3D self.vm.qmp('blockdev-add', conv_keys =3D False, **bvop= ts) self.assert_qmp(result, 'return', {}) =20 - # blkverify doesn't currently allow reopening. TODO: implement this - self.reopen(bvopts, {}, "Block format 'blkverify' used by node 'bv= '" + - " does not support reopening files") + # blkverify allows reopening + self.reopen(bvopts, {}) =20 # Illegal: hd0 is a child of the blkverify node self.reopen(opts[0], {'backing': 'bv'}, --=20 2.29.2 From nobody Sun May 19 14:32:52 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; 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=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=2; a=rsa-sha256; t=1615477836; cv=pass; d=zohomail.com; s=zohoarc; b=fawoyofDnKtSFPZDdYXa/TaaP6fKPlp4vc6Pl/Sw4I5dv7sxWBUgAXI9xu0hQnG1Mdv3hW2n2C/sNQ2c+ArJlIZURxQhC2EU5LSdaIAad4p6lR35NaXiRY3doAj9kNwArEY/vgPvzL5M6Fcb0KIUK5WmIrjLfUJ77k7oRxdghFw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1615477836; 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=GVA5XJwSAiujePkGym1f2ScH2EKp+MoilVodh37nydU=; b=IpaUSo0+GPZPnXPbsXcKV7dNCSdAqPobzZNWpLa/ui/beAZs+g/lnRhvSGUaxjLUC6oJ1JY3oF7g5YoFguvdUshnMCn6vWQOpIVogvAN3Pc42Vh1lx+wHD7Xtl9MMmnPhZZeA4P2vTKkX1ZxbzN0Ewtq2nTAoYRTpWoqn2y1808= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; 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=pass (i=1dmarc=pass fromdomain=virtuozzo.com); dmarc=pass header.from= (p=quarantine 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 1615477836736299.90366019432975; Thu, 11 Mar 2021 07:50:36 -0800 (PST) Received: from localhost ([::1]:38168 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lKNa7-0000ax-Hn for importer@patchew.org; Thu, 11 Mar 2021 10:50:35 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49628) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKN2i-0003sC-LT; Thu, 11 Mar 2021 10:16:04 -0500 Received: from mail-eopbgr80115.outbound.protection.outlook.com ([40.107.8.115]:13537 helo=EUR04-VI1-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lKN2g-0001X4-32; Thu, 11 Mar 2021 10:16:04 -0500 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4407.eurprd08.prod.outlook.com (2603:10a6:20b:bd::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.27; Thu, 11 Mar 2021 15:15:42 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::f1f0:6610:11f5:5e4a]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::f1f0:6610:11f5:5e4a%8]) with mapi id 15.20.3912.030; Thu, 11 Mar 2021 15:15:42 +0000 Received: from localhost.localdomain (185.215.60.202) by HE1PR05CA0247.eurprd05.prod.outlook.com (2603:10a6:3:fb::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3912.17 via Frontend Transport; Thu, 11 Mar 2021 15:15:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M/D0nYOffw/sRU9S2UQ4eMuZ7wus5Zw1nF25EXnNN6PjDEVqqm+9IUpTXkJIzFSque4DzoTcASetd7nOpz8dYtOjrFxshj/EhhXcdklzaz3ty6pACFfXTrb6oRyHfiuFmbxbq/W2EfuYbKICi7Jq5asZg9MBmUGcg4VVi+cZFpWZH+7Ivo3RTGH3Ht1K2J88+NE1zlArve7Dwi02f4zACqZXkLhQaNlK3zj1/0nbT8/M44qpGk9KdMkP9PqS7hU+oU/qHzBBkQUALKZp/DViavaVaXkA9FS7QczSyQpJ9173JJRI5sMs69OG03+joU8z3JnRDQ4OeGTY2+z+MGV2gA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GVA5XJwSAiujePkGym1f2ScH2EKp+MoilVodh37nydU=; b=KDVNf8SsyQsf4fRhJN6Ez2QDKedQpQf7J47dSVJYJArcux1K0l5c7BzyovG+zuCn0TM4aQXp/cV6pXtEUjOEq6NUiVmgxt3PHYcLdGvvWlnV9HjDGAdaix3rW0yAs2nuTVE2pCrBuJK3V9vlOlNL2lXaALHgo4wo19wmihWP2Pz8f4F70S+Te9EIourgKyuWLi+fdOaaU0naHX9pXFEU6PyqyYYwUSyDIUP84ZGPolVc/YyZreyRBk5Bncc4leGu+eTpHFh5onMrhnajtv7a+OX+QzLSQGzi9ajBou1Cjy/SnY+YB/C3d4j6Hjt2MT2ZP8EapC2zmpDiiyoxNC1S3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=virtuozzo.com; dmarc=pass action=none header.from=virtuozzo.com; dkim=pass header.d=virtuozzo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=virtuozzo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GVA5XJwSAiujePkGym1f2ScH2EKp+MoilVodh37nydU=; b=jWSr8BfnM9rHg6hg18ncfyUhtYCCA3pUnSYH3oJliyCGIHu4lYyR2IROv6c22HzOpeJ13GfdAzy963ditt9YdQg9XZCtlIdWBEE4h10AcOAyIQWiBze4542lXXjC205t0PpnfKPFJ9PCPFYtcW3hGDu/IVU+84j6hBUOJUanolc= Authentication-Results: nongnu.org; dkim=none (message not signed) header.d=none;nongnu.org; dmarc=none action=none header.from=virtuozzo.com; From: Vladimir Sementsov-Ogievskiy To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 3/3] block: drop inherits_from logic Date: Thu, 11 Mar 2021 18:15:05 +0300 Message-Id: <20210311151505.206534-4-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210311151505.206534-1-vsementsov@virtuozzo.com> References: <20210311151505.206534-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.202] X-ClientProxiedBy: HE1PR05CA0247.eurprd05.prod.outlook.com (2603:10a6:3:fb::23) To AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b9e3298f-4a79-4b62-81f7-08d8e4a0890a X-MS-TrafficTypeDiagnostic: AM6PR08MB4407: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:5797; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fhOYk72yumAWyunpHKcktCtt7T4lxV6wzJHciWEQL5Ea7zWeVfUEApOJXIjRsd/tZnsQaZJDKQ4GZB1tCSEW86BjkYSFA1Uyv0TQUe9yMGqhQfskfXZpgT4woPQLc94c4iYOtgEbwkzHCw7anhZHn97VgBNosXZgks1Kh0nmC4cAOHK+otkVrLbRAYMpkP1iVtn6aAO8huq4K4Q/6LbE6eorPbAzSYQ37K6Nr2lertD7v2iWxkjVZJLB0auNrBWZl81V1Wiyc2leTQ42zeROdwVP/6nUF9S5JBywrf9A2y+9KsAxe27P133ecU8Svt3b2wu0gyNvkGbBByHtg/MTy2T28uBlb47r70V1lNtTygBt2pA4fQQ33QxcGbjM/8P1Rkcm0ZR8uql2WuV9pT5qMzyahEZB7ZlYuudlhIpFNR/1tBFxyq9wfpVwpQSXj5e+3dmNk/QjvDy7mG/6+SwjSr6QZfzQZoPhzG0uCtKcBZhodbEunECCUReBKWFncypYbC9vknwlCruoyMfBXORUVFt2/93uiqgPEcmk9Sz0FHf/dp9dE62fcJnqsv58VvP5EoBtnbVwjpKbF//t+XL3PQ== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM7PR08MB5494.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(396003)(39830400003)(346002)(136003)(376002)(30864003)(6512007)(4326008)(6506007)(16526019)(36756003)(478600001)(6486002)(107886003)(2616005)(956004)(8936002)(1076003)(6666004)(83380400001)(2906002)(316002)(66946007)(66476007)(26005)(69590400012)(8676002)(66556008)(186003)(52116002)(5660300002)(6916009)(86362001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?opsCCt0t9PnvMrSXI2mF4fnuhF3PXYg/3T9jLdbIxXTtk37eXRMBX53+P41C?= =?us-ascii?Q?ZMp1i+s806tL1P1VeboZBoKojdyLCXBz3uP6KeqxqWXKvCPY6avj+9hoJ6k7?= =?us-ascii?Q?UrRDifZD8SRXHnUj3nqo3kCuYILpc+jjwMH0UgA4EWT9wRGd8VUuQO1fcrYO?= =?us-ascii?Q?8s7BJcjTgFNHfEQnmcGNQnC+6OXLYaTtyCs1AiN8Tf5zessE3QiYP68DQDZw?= =?us-ascii?Q?JF1OpQ7/I9ys6+Knw+fiIZ0vLxbP+DEVCmcG9KVdZxoLw4sSfLeEoJyqAajc?= =?us-ascii?Q?xRRSWiMRyHXQJ32bJS1OwhYTJxl/3G/6zIg9Ymt4v3E4IKCi/OL06Bg63Bad?= =?us-ascii?Q?V2jksjqpTc64lcLV7XnWWa7XhVMaV3P9asRIqEKE32048Eb4wqbOH9/QV1C1?= =?us-ascii?Q?aUncU/czyMeessnPDuTqRgSEtVACidswazqH/s/sumb6l0xHT4q4ukOZQz95?= =?us-ascii?Q?EKlBEhNbz3G2WnsroLLdg8TMV6EtJQkck2GhdykNsz/UO6x18U8x9B7QwiBm?= =?us-ascii?Q?yFYEAGlTrSq/YAv0QpmG1fvo5YJzqFaLOSt43EDNN9ke7i1pTnbUQ3R0oc3S?= =?us-ascii?Q?hN6icezWNGMq1RyqqezrRiXU2yUTXU0QaGgekmhlPHwrBQjKsrHE9n1R0BE1?= =?us-ascii?Q?ijCHFXS77hygvfurSZ4hLMhGg49xinuiz91bqU1LiiWz/rBUBSAa9CRqheXA?= =?us-ascii?Q?ZjFjCG6Mac5IbW4aJy2sh1yIq1fobq41WMCyqQj+oGxkiCFa1s6lBYYeONqg?= =?us-ascii?Q?DS8v+xzSV15q1e5c+Tai+Q1r1nB5Mrvt/xWdB4PekVBo9EzMZ9DBQA+0otQC?= =?us-ascii?Q?qrn7ZYWkshFWeVBI1dLt0FMA0gBr3jpTdpDTeXxnR9JmcW08OMbEYM3WzwSF?= =?us-ascii?Q?BNcz8nqnfjVOOMYNf14ylYdmJwPgVcA/U2lhQPmJG3Tqf8ot/yiknvmL/l3q?= =?us-ascii?Q?z0cbES18TeJU6zXTGA7DMmRGTBdGnODPTY9Sik9eF/YdeFEoorqnr7mY+t0H?= =?us-ascii?Q?8LYrGEwHT9uA4tDUW+dkjgS0HSMCrjhLBQCEc3VLuD2fODzc4BBdJcaOlawH?= =?us-ascii?Q?+MRkGjepkk8cJO7ZU2vIEek7udOGlN11WUNf2j2fohN53uBYtWMK7qhgqH1c?= =?us-ascii?Q?c06eqgYQJRIyIFN5DM9UQLdga96b4ThwNldZGv+ZSTiImwLocqMzxyHWv/ya?= =?us-ascii?Q?de+5f8Nrvf/WO+PtKfkmzYFUhAhbP+Y5EnFt50QMPqAkyPBD0TboRX5mghJl?= =?us-ascii?Q?yYad0LTip+hyPRAz+uHQuOn1mNvsJ2ahL7levxNAWJBuRwD6EK9G01wfU93H?= =?us-ascii?Q?wSbruTzv8y4CTRI9sdNlbpRK?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: b9e3298f-4a79-4b62-81f7-08d8e4a0890a X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2021 15:15:42.0138 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 0bc7f26d-0264-416e-a6fc-8352af79c58f X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vNhRIXNr8l3GSEVhncZUh2CcJpUO26sLfvL59xAA71STXMWe3u461dmT8GGF3JL3RoPj9J5D4EyP5Xc1DG22unnHuB8/N5ta7xO6owh62Ao= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4407 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=40.107.8.115; envelope-from=vsementsov@virtuozzo.com; helo=EUR04-VI1-obe.outbound.protection.outlook.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, MSGID_FROM_MTA_HEADER=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @virtuozzo.com) Content-Type: text/plain; charset="utf-8" inherits_from is used only to restrict recursively adding of block children to reopen queue. Still, we have public block graph and we are going to "blockdev" era, when user controls every nobe of block graph. So, what's wrong in just reopening every child? Moreover, is it correct to silently skip children hidden by filters from reopen process? We have BdrvChildClass::inherit_options() to specify how child inherits options. Why some dynamically created children should not inherit what they want? Dropping inherits_from simplifies things a bit, clearing the way for updating fixing and refactoring of block graph permission update. Also, inherits_from has some problems: 1. bdrv_unset_inherits_from() is called only from bdrv_unref_child(), when it probably should be called from bdrv_replace_child_noperm() to cover more cases. 2. bdrv_unset_inherits_from() tries to check that root has two children with same child->bs, but it doesn't check that there may be several long paths from root to bs. Signed-off-by: Vladimir Sementsov-Ogievskiy --- include/block/block_int.h | 4 --- block.c | 72 -------------------------------------- tests/qemu-iotests/245 | 31 ++++++++++------ tests/qemu-iotests/245.out | 8 +++-- 4 files changed, 27 insertions(+), 88 deletions(-) diff --git a/include/block/block_int.h b/include/block/block_int.h index 88e4111939..ae8db04a0a 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -935,10 +935,6 @@ struct BlockDriverState { /* operation blockers */ QLIST_HEAD(, BdrvOpBlocker) op_blockers[BLOCK_OP_TYPE_MAX]; =20 - /* The node that this node inherited default options from (and a reope= n on - * which can affect this node by changing these defaults). This is alw= ays a - * parent node of this node. */ - BlockDriverState *inherits_from; QLIST_HEAD(, BdrvChild) children; QLIST_HEAD(, BdrvChild) parents; =20 diff --git a/block.c b/block.c index 815396f460..af4f6095ca 100644 --- a/block.c +++ b/block.c @@ -2769,34 +2769,6 @@ void bdrv_root_unref_child(BdrvChild *child) bdrv_unref(child_bs); } =20 -/** - * Clear all inherits_from pointers from children and grandchildren of - * @root that point to @root, where necessary. - */ -static void bdrv_unset_inherits_from(BlockDriverState *root, BdrvChild *ch= ild) -{ - BdrvChild *c; - - if (child->bs->inherits_from =3D=3D root) { - /* - * Remove inherits_from only when the last reference between root = and - * child->bs goes away. - */ - QLIST_FOREACH(c, &root->children, next) { - if (c !=3D child && c->bs =3D=3D child->bs) { - break; - } - } - if (c =3D=3D NULL) { - child->bs->inherits_from =3D NULL; - } - } - - QLIST_FOREACH(c, &child->bs->children, next) { - bdrv_unset_inherits_from(root, c); - } -} - /* Callers must ensure that child->frozen is false. */ void bdrv_unref_child(BlockDriverState *parent, BdrvChild *child) { @@ -2804,7 +2776,6 @@ void bdrv_unref_child(BlockDriverState *parent, BdrvC= hild *child) return; } =20 - bdrv_unset_inherits_from(parent, child); bdrv_root_unref_child(child); } =20 @@ -2819,18 +2790,6 @@ static void bdrv_parent_cb_change_media(BlockDriverS= tate *bs, bool load) } } =20 -/* Return true if you can reach parent going through child->inherits_from - * recursively. If parent or child are NULL, return false */ -static bool bdrv_inherits_from_recursive(BlockDriverState *child, - BlockDriverState *parent) -{ - while (child && child !=3D parent) { - child =3D child->inherits_from; - } - - return child !=3D NULL; -} - /* * Return the BdrvChildRole for @bs's backing child. bs->backing is * mostly used for COW backing children (role =3D COW), but also for @@ -2853,8 +2812,6 @@ int bdrv_set_backing_hd(BlockDriverState *bs, BlockDr= iverState *backing_hd, Error **errp) { int ret =3D 0; - bool update_inherits_from =3D bdrv_chain_contains(bs, backing_hd) && - bdrv_inherits_from_recursive(backing_hd, bs); =20 if (bdrv_is_backing_chain_frozen(bs, child_bs(bs->backing), errp)) { return -EPERM; @@ -2881,13 +2838,6 @@ int bdrv_set_backing_hd(BlockDriverState *bs, BlockD= riverState *backing_hd, goto out; } =20 - /* If backing_hd was already part of bs's backing chain, and - * inherits_from pointed recursively to bs then let's update it to - * point directly to bs (else it will become NULL). */ - if (update_inherits_from) { - backing_hd->inherits_from =3D bs; - } - out: bdrv_refresh_limits(bs, NULL); =20 @@ -3283,7 +3233,6 @@ static BlockDriverState *bdrv_open_inherit(const char= *filename, parent_is_format =3D true; } =20 - bs->inherits_from =3D parent; child_class->inherit_options(child_role, parent_is_format, &flags, options, parent->open_flags, parent->options); @@ -3717,13 +3666,6 @@ static BlockReopenQueue *bdrv_reopen_queue_child(Blo= ckReopenQueue *bs_queue, QDict *new_child_options =3D NULL; bool child_keep_old =3D keep_old_opts; =20 - /* reopen can only change the options of block devices that were - * implicitly created and inherited options. For other (referenced) - * block devices, a syntax like "backing.foo" results in an error.= */ - if (child->bs->inherits_from !=3D bs) { - continue; - } - /* Check if the options contain a child reference */ if (qdict_haskey(options, child->name)) { const char *childref =3D qdict_get_try_str(options, child->nam= e); @@ -4933,8 +4875,6 @@ void bdrv_unfreeze_backing_chain(BlockDriverState *bs= , BlockDriverState *base) int bdrv_drop_intermediate(BlockDriverState *top, BlockDriverState *base, const char *backing_file_str) { - BlockDriverState *explicit_top =3D top; - bool update_inherits_from; BdrvChild *c; Error *local_err =3D NULL; int ret =3D -EIO; @@ -4953,14 +4893,6 @@ int bdrv_drop_intermediate(BlockDriverState *top, Bl= ockDriverState *base, goto exit; } =20 - /* If 'base' recursively inherits from 'top' then we should set - * base->inherits_from to top->inherits_from after 'top' and all - * other intermediate nodes have been dropped. - * If 'top' is an implicit node (e.g. "commit_top") we should skip - * it because no one inherits from it. We use explicit_top for that. */ - explicit_top =3D bdrv_skip_implicit_filters(explicit_top); - update_inherits_from =3D bdrv_inherits_from_recursive(base, explicit_t= op); - /* success - we can delete the intermediate states, and link top->base= */ /* TODO Check graph modification op blockers (BLK_PERM_GRAPH_MOD) once * we've figured out how they should work. */ @@ -5001,10 +4933,6 @@ int bdrv_drop_intermediate(BlockDriverState *top, Bl= ockDriverState *base, } } =20 - if (update_inherits_from) { - base->inherits_from =3D explicit_top->inherits_from; - } - ret =3D 0; exit: bdrv_subtree_drained_end(top); diff --git a/tests/qemu-iotests/245 b/tests/qemu-iotests/245 index a7c70213dd..9fcb1b144e 100755 --- a/tests/qemu-iotests/245 +++ b/tests/qemu-iotests/245 @@ -307,8 +307,9 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.reopen(hd_opts(0), {'read-only': True}) self.check_node_graph(original_graph) =20 - # The backing file (hd0) is now a reference, we cannot change back= ing.* anymore - self.reopen(opts, {}, "Cannot change the option 'backing.driver'") + # The backing file (hd0) is now a reference, buf we can change + # backing.* anyway + self.reopen(opts, {}) =20 # We can't remove 'hd0' while it's a backing image of 'hd1' result =3D self.vm.qmp('blockdev-del', conv_keys =3D True, node_na= me =3D 'hd0') @@ -899,7 +900,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): # We can't reopen with the original options because there is a fil= ter # inserted by stream job above hd1. self.reopen(opts, {}, - "Cannot change the option 'backing.backing.file.node-n= ame'") + "Option 'bottom' cannot be reset to its default value") =20 # We can't reopen hd1 to read-only, as block-stream requires it to= be # read-write @@ -949,7 +950,7 @@ class TestBlockdevReopen(iotests.QMPTestCase): self.wait_until_completed(drive =3D 'commit0') =20 # Reopen the chain during a block-commit job (from hd1 to hd2) - def test_block_commit_2(self): + def do_test_block_commit_2(self, detach_hd1): # hd2 <- hd1 <- hd0 opts =3D hd_opts(0) opts['backing'] =3D hd_opts(1) @@ -959,23 +960,33 @@ class TestBlockdevReopen(iotests.QMPTestCase): =20 result =3D self.vm.qmp('block-commit', conv_keys =3D True, job_id = =3D 'commit0', device =3D 'hd0', top_node =3D 'hd1', - auto_finalize =3D False) + auto_finalize =3D False, filter_node_name =3D= 'fl') self.assert_qmp(result, 'return', {}) =20 # We can't remove hd2 while the commit job is ongoing opts['backing']['backing'] =3D None - self.reopen(opts, {}, "Cannot change the option 'backing.driver'") + self.reopen(opts, {}, "Cannot change 'backing' link from 'fl' to '= hd1'") =20 - # We can't remove hd1 while the commit job is ongoing - opts['backing'] =3D None - self.reopen(opts, {}, "Cannot change backing link if 'hd0' has an = implicit backing file") + if (detach_hd1): + # But nothing wrong in detaching hd1 together with the commit = job + opts['backing'] =3D None + self.reopen(opts, {}) =20 # hd2 <- hd0 self.vm.run_job('commit0', auto_finalize =3D False, auto_dismiss = =3D True) =20 self.assert_qmp(self.get_node('hd0'), 'ro', False) self.assertEqual(self.get_node('hd1'), None) - self.assert_qmp(self.get_node('hd2'), 'ro', True) + if detach_hd1: + self.assertEqual(self.get_node('hd2'), None) + else: + self.assert_qmp(self.get_node('hd2'), 'ro', True) + + def test_block_commit_2(self): + self.do_test_block_commit_2(False) + + def test_block_commit_3(self): + self.do_test_block_commit_2(True) =20 def run_test_iothreads(self, iothread_a, iothread_b, errmsg =3D None): opts =3D hd_opts(0) diff --git a/tests/qemu-iotests/245.out b/tests/qemu-iotests/245.out index 4b33dcaf5c..c1fda88f1a 100644 --- a/tests/qemu-iotests/245.out +++ b/tests/qemu-iotests/245.out @@ -2,6 +2,10 @@ {"return": {}} {"data": {"id": "commit0", "type": "commit"}, "event": "BLOCK_JOB_PENDING"= , "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} {"data": {"device": "commit0", "len": 3145728, "offset": 3145728, "speed":= 0, "type": "commit"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"micro= seconds": "USECS", "seconds": "SECS"}} +{"execute": "job-finalize", "arguments": {"id": "commit0"}} +{"return": {}} +{"data": {"id": "commit0", "type": "commit"}, "event": "BLOCK_JOB_PENDING"= , "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} +{"data": {"device": "commit0", "len": 3145728, "offset": 3145728, "speed":= 0, "type": "commit"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"micro= seconds": "USECS", "seconds": "SECS"}} {"execute": "job-finalize", "arguments": {"id": "stream0"}} {"return": {}} {"data": {"id": "stream0", "type": "stream"}, "event": "BLOCK_JOB_PENDING"= , "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} @@ -10,8 +14,8 @@ {"return": {}} {"data": {"id": "stream0", "type": "stream"}, "event": "BLOCK_JOB_PENDING"= , "timestamp": {"microseconds": "USECS", "seconds": "SECS"}} {"data": {"device": "stream0", "len": 3145728, "offset": 3145728, "speed":= 0, "type": "stream"}, "event": "BLOCK_JOB_COMPLETED", "timestamp": {"micro= seconds": "USECS", "seconds": "SECS"}} -..................... +...................... ---------------------------------------------------------------------- -Ran 21 tests +Ran 22 tests =20 OK --=20 2.29.2