From nobody Sat May 18 07:08:56 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=1621234101; cv=pass; d=zohomail.com; s=zohoarc; b=gfxufgsK9hEVTY7FvIolZb5CwI3IkWyC2thVVGJvwnGz2bPn7VKilChH+/OuUyu13IS2+8PPAPIn6fxhUvGVRGZNaL5bbXRy1G2tADrb9SM6CMFreEki8+CDsWeK/krb/HSrra2alE4miKna0S8xQdD4sSiq3+T+nItEFQeuE/Q= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234101; 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=lc5en+TQwRms/3shKTuoyBietRcJuOfexHtfH6OvFD8=; b=kBhyu4stwi9HpiRvpYzm4vR/Xd4Xl1Gk5+9UK9+7Eoc4IITIIhG2lMtGIirbB5CMlJfmkCPZNtWgLT6pHGE5ohv6im5kOKy6TSelqXybuLdwGy65obOYg8YGZKPuLI43VSnT3TmO6lKgqhcaSxBAiAnZzbqLSbvm1iRqWLpsYpw= 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 1621234101042915.3676349801204; Sun, 16 May 2021 23:48:21 -0700 (PDT) Received: from localhost ([::1]:37010 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liX31-0008AC-HG for importer@patchew.org; Mon, 17 May 2021 02:48:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33172) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liWzn-0003Ei-MP; Mon, 17 May 2021 02:44:55 -0400 Received: from mail-eopbgr30130.outbound.protection.outlook.com ([40.107.3.130]:60322 helo=EUR03-AM5-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 1liWzl-0001jR-Uh; Mon, 17 May 2021 02:44:55 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB3382.eurprd08.prod.outlook.com (2603:10a6:20b:47::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.26; Mon, 17 May 2021 06:44:46 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:44:46 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:44:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HWqDvO69aCcsHtj7olMJNR9I3eR+yy5e0GXFo3U8S7gpV62NtVTcwn+r9INW1N2yGW6zwC+OwHrPtUe6otV/akQ2kmbIxfr1l6/JuALe3SwzcKVtYnDp6EhKH2PjOrfJzp2oN0BB82To25qdOx1BoxkubxZgDWWwaPRRN2zuhzQMxMdjfLS6KlSBX2DPvf6VP0ovG2rsTH5iBtdxea68UhrdxZgZv4bA8lKNb0UQZkfLH/a0ebtmDGuqFewyLHH195D56nqov6RSbJLZbgMNlpljuhmxcA+3VGpMDhsE7c/yk6JS1wymzxySllloew2yIn34niWjc+l6bFDDwhRSaw== 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=lc5en+TQwRms/3shKTuoyBietRcJuOfexHtfH6OvFD8=; b=NqZQ/7Qas/JTa2qmB3zKpw3BYxwwBLboPOyh6q8AvpN5bF3f09ZckV8Zw9DLureeG92qxItKat0x9jtJf44HtIw4qYRCAiCQyXKfoU/hsFFvm3am3bNg1qmzEZi+eupNqcB78Q0z1rdFDZMKd2Nth0UDcLqlZQmC4Ia8yhpRnQfEQDX41U898nAyDOddHCmurvc404heZx+fGProjIPH3fkXp4dBeKHpoREUUm9JL0WYt4I8F62mBCHIVouvPqgQzwm2tjNH5l+6ELLjYzFyxP+rZDeoJdY4bjTsYgheUjXiXWCpdIJCZPxQSLKM/h14tj7bFvGljWrawMITbc2WSg== 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=lc5en+TQwRms/3shKTuoyBietRcJuOfexHtfH6OvFD8=; b=Ne4s2mRbUeCE44IZz4Qyxuu2d/eM/V+7Au4i4SmuENt7i7Yp59WPQzpG3dJ919nWbcU95EXLkynEnL7BJ62wBd2Zp6TeAXXEkrU8w+NPwdgsiyg/WdnM8o9V+00f5I4FJKHmnd0ccD/pLb6SLdBvKMWRjWuTTMEr4isWivHZG6A= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 01/21] block: introduce bdrv_replace_child_bs() Date: Mon, 17 May 2021 09:44:08 +0300 Message-Id: <20210517064428.16223-3-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: a380f861-dfe0-46d9-d827-08d918ff4296 X-MS-TrafficTypeDiagnostic: AM6PR08MB3382: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:198; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OWJPqdRVqFmIMDS6Sol26aIODxMLSdTW1JinKQKDvx/GSuf9rez6CXDpq+Y8vm7pONcFBpcST86TMWOd7zq8jvWfmTTBd+tmeJwrKbyuoAaU7NDymQ5UP9Fk5P/tQgYxSmT8w6yiLA/4n7HS8iugwwueoWK1O4SU+lgYfX1I741Lxl6NAQDLGSv5EdG4HC8ySOEnr9FI5ybBIvHGiaUt+llhhp27C7HNzAcFgRb5Ef8FKUViUFEFDl8ph3deJA9pOVNTygW6KbcwA+2ta0LN2sqSGZuL3g0k2/hsmdOJbtgDqld1F2viP3EYfnEekncL/p3Y/llmSkJsp9quxYoKxQ9ZlUQhBieOIbN6sCDyV+Wudg1KS44u6IeJH/DePy4G+qt3LVy7xUvAqqElfLNKTqYuarO2Aq8UcPONDjJchcpi8oNRRAj6ATQqloegoJKAElE0bizPgDt/g9yRTt8YBIl6IWwr+KX5p6jVWpXL6CNgRkC0m3KAPnrt4qN7eR+8B80dz2N6b0dsVoZUKi98tz+Qdy5gqNSdZl39Fwn10TkV70seEgurt6FqUS2Zg9fGinjdjaz24PTwAsSeg1oXPslUQgWuiWamN1S1Z/nIglfr45prJ2vt7owumOfxsm1MiVqs2PRirh8sheE1s7d6MFn3tTRJRWCmqDeWKT+5zEivVTEw3xj4gJTbfKasGWah 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)(366004)(346002)(396003)(136003)(39840400004)(6486002)(26005)(2906002)(316002)(36756003)(66946007)(1076003)(107886003)(5660300002)(16526019)(186003)(478600001)(38350700002)(38100700002)(8676002)(6666004)(86362001)(2616005)(66556008)(52116002)(8936002)(66476007)(83380400001)(6916009)(6506007)(6512007)(956004)(7416002)(4326008)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?NgzLxAJxZZQvmGuvKO6ekZgLuJwaajTjwhMFaocIxg0E16/j5f2jJYD0u/Dg?= =?us-ascii?Q?4WiIhbc+eEJYjzaZC4kygA+Xl2D8Uqxq2LNo3UfID73MHMseAhnKLrutGq4L?= =?us-ascii?Q?vAvbw91K423RL4Eppb+dBqt//iCTuLS3q3UJnJWMzi3nqhEGWyzvIBfy0/Qt?= =?us-ascii?Q?Pdklo/Y0QBzB7UIdmx0IbR8SLb1MdSmzEqBVgEzalseLwkoAPGlt4Nojs5pG?= =?us-ascii?Q?T1EPgIQ2vzSpEJ5eiQUjSSAjKvvpeI6iUoMz4augHWzAJR8pofHsH3R4ifmQ?= =?us-ascii?Q?SCWm91ogpS3/JKVa5xZtO6g4wt41FkGw4bmYECclCGi+1blwJf94X1/20MvI?= =?us-ascii?Q?xuLW+W2/16R+I2y6/f8nsybPoxUvA4YrDZs63MyK35Ypl/W2bD7NxqWXelN8?= =?us-ascii?Q?1PWg/ti6M+oJYrwQr4PaYmdfFQ6vuTxB5GFbBPPCaqwsSapQZ4KTSpiEEdVh?= =?us-ascii?Q?1xZnVrGLcZLwvglGRHC8h1yMaCMgmeV9XGIPCmG8q6NClWUm6vDwQpKWyHaz?= =?us-ascii?Q?Ys3LHOtWl6vmH9+hMPOlBJOreJw+j1NWoqejRux2O9g1AslmDll1cg5VdbFa?= =?us-ascii?Q?bzBWrVDCvGuvoIDbMCASuwhFCR1f2iyZIHsNOJCRGz818oopSyu39o196EQF?= =?us-ascii?Q?AZnvvK3jDuQ+fMpxOf2EfWe0hOZwTWP8zZg0Q6j9HsQ/Fo6+Mv5gNzvCbhoJ?= =?us-ascii?Q?V1APhcKMhc4hZod7PB7rAY7dR862QJYv+9DhydFM2gR2MOr7Wg9AhjVoWFmK?= =?us-ascii?Q?9fAqdbURztbo+aJmGH+RaUrhZbQ7wCUIzgFuWU0SC4jzHSYyX6wKwi2rYs/y?= =?us-ascii?Q?bzL5F4sFOSauCjkqAOIuqNxZbe28YB2HDpxU55RYBPHnEsd/3rWO8lHpunyJ?= =?us-ascii?Q?gFO7PRIPbTHf86T63v++s05z1Bsfq03s8xPNTDNjN8EaFR+MR0QTVfoOBQm/?= =?us-ascii?Q?sOSVigWCBTJvtjXH3AMqdYTymCClOywxkOBRiMJLYy6HHZ+8g3GMBxSgcTKn?= =?us-ascii?Q?hmHjpIhnhHaVnKqTvOsY5412/YeIBscCvD7qcCJvI9NPo4VlKgwt8yc+Qng8?= =?us-ascii?Q?BwmStus47RyGP5htuVoAJ7fAhmkLVdd5qNuLwywLAeiCYyJs+CcUBSrMlU/V?= =?us-ascii?Q?hupLU1WKL8JtPozY2aNihy3Dv0yf+b825pV6t5FxkEBrtiWyxNtsvg9B+36w?= =?us-ascii?Q?gYpwr/J8bxpzMh8TEcKU6xkh7/ahmrYv36yjHbSMVFb9jT/rL9W6Ps7nbnO0?= =?us-ascii?Q?I4fn4Do0ZEnROToVg0cQicJtnBtj7PA5jkLj7X2+AhI5iv1IWqiWEG1qGR3C?= =?us-ascii?Q?V1nZi6DAjxvh7QSPkwpB1g/K?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: a380f861-dfe0-46d9-d827-08d918ff4296 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:44:46.4108 (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: rF7WYD+vxCm0ARMsx04zaXAsTOIKLaaUKYd/szoINLr7VmQpryleOybydlCQPLF9Lc+OCYqwKQQkrrmG4AepiQZPQeajE4K7egEHvnx/Foc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3382 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.3.130; envelope-from=vsementsov@virtuozzo.com; helo=EUR03-AM5-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, 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" Add function to transactionally replace bs inside BdrvChild. Signed-off-by: Vladimir Sementsov-Ogievskiy --- include/block/block.h | 2 ++ block.c | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) diff --git a/include/block/block.h b/include/block/block.h index 82185965ff..f9d5fcb108 100644 --- a/include/block/block.h +++ b/include/block/block.h @@ -361,6 +361,8 @@ int bdrv_append(BlockDriverState *bs_new, BlockDriverSt= ate *bs_top, Error **errp); int bdrv_replace_node(BlockDriverState *from, BlockDriverState *to, Error **errp); +int bdrv_replace_child_bs(BdrvChild *child, BlockDriverState *new_bs, + Error **errp); BlockDriverState *bdrv_insert_node(BlockDriverState *bs, QDict *node_optio= ns, int flags, Error **errp); int bdrv_drop_filter(BlockDriverState *bs, Error **errp); diff --git a/block.c b/block.c index 9ad725d205..755fa53d85 100644 --- a/block.c +++ b/block.c @@ -4961,6 +4961,42 @@ out: return ret; } =20 +int bdrv_replace_child_bs(BdrvChild *child, BlockDriverState *new_bs, + Error **errp) +{ + int ret; + Transaction *tran =3D tran_new(); + g_autoptr(GHashTable) found =3D NULL; + g_autoptr(GSList) refresh_list =3D NULL; + BlockDriverState *old_bs =3D child->bs; + + if (old_bs) { + bdrv_ref(old_bs); + bdrv_drained_begin(old_bs); + } + bdrv_drained_begin(new_bs); + + bdrv_replace_child(child, new_bs, tran); + + found =3D g_hash_table_new(NULL, NULL); + if (old_bs) { + refresh_list =3D bdrv_topological_dfs(refresh_list, found, old_bs); + } + refresh_list =3D bdrv_topological_dfs(refresh_list, found, new_bs); + + ret =3D bdrv_list_refresh_perms(refresh_list, NULL, tran, errp); + + tran_finalize(tran, ret); + + if (old_bs) { + bdrv_drained_end(old_bs); + bdrv_unref(old_bs); + } + bdrv_drained_end(new_bs); + + return ret; +} + static void bdrv_delete(BlockDriverState *bs) { assert(bdrv_op_blocker_is_empty(bs)); --=20 2.29.2 From nobody Sat May 18 07:08:56 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=1621234105; cv=pass; d=zohomail.com; s=zohoarc; b=LVZmGXOANXMSKT7aRTbHADNzEqgpuePDyYLO3CR5ED7xzvTh1NXIz9FLaeqaJdlV19AAzJTaxkE5EVf/++PmmrjwIPqZi1iCL6ooUFraPPkjD6scNKzWinXMf546TUp4oXU1uWSfzXtheLDmQFU54MEYAAht8zOVk2edVyyUPmY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234105; 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=FnT+zrPQ2v8EOgoxrgKVbfNcI3ysoPxNMOOeoTGbbcM=; b=OygGYmD7gNnveGBc36yCXunkzSvW/v+0osJB857IpU8TkNmrMF54N6zedfHKRiRJCbH57Mna7iYFS/8NuAS8lxBZfd6vJve8s5P11g7HPNqou0XtEAAV7/cyzQiK6NMpTMbqKOIbvXnj1gLTJi3gOsDlU2VYpYCQZp6jHRRLKc0= 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 1621234105924177.97365886881812; Sun, 16 May 2021 23:48:25 -0700 (PDT) Received: from localhost ([::1]:37490 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liX3A-0008UO-NN for importer@patchew.org; Mon, 17 May 2021 02:48:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33196) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liWzp-0003N2-Vq; Mon, 17 May 2021 02:44:58 -0400 Received: from mail-eopbgr30130.outbound.protection.outlook.com ([40.107.3.130]:60322 helo=EUR03-AM5-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 1liWzo-0001jR-Ba; Mon, 17 May 2021 02:44:57 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB3382.eurprd08.prod.outlook.com (2603:10a6:20b:47::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.26; Mon, 17 May 2021 06:44:47 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:44:47 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:44:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ipQbn20e3ACbK0/0K1UDJoboksPDcuDTl9y52Hy6CTGQGFZxAyBdcE/YyC2/ITBEkmBUAXDumDc86d2aQy4Z/VJ//oKGMeyzeVM9XreAZ1QLHNgVNb2lHrF9euBSv7f1NZk1qQSh18rs+ZP43dgcmJw873tQ9OLXfJKyxF6s7NWV6Jh0PBmJP/tvlvK3LkXS5KsBXEyuVytBs5VpB/TaoyoVw9RQ+dzkVPmauJg8rnL0geM/9E36D+FBG6QnTYZUQHMS2dhA6lPF+FCWfsfl/eMwAWOqXwgJXAS+SYPjPpxzs+RBKcoFa23W/r1PLwprvLq+6uFCspTpvc9zXWsqDQ== 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=FnT+zrPQ2v8EOgoxrgKVbfNcI3ysoPxNMOOeoTGbbcM=; b=I49FjaAqIzWuyG+ZbUAm4ko7AwH5ES4Wjo7Qr4tST1Sc5LqYHnOrAdX+eEj7aOW0lA8vPysw4Efltg+cC0Axhf8nnhyLIUgE8rCALzW9cEksw1ahwNh0ZCdk4cwSQkhN1x4/YsLnFDaZr4o/UBfcpEnPsS4NSdHzol94m6LCuznx9lLaeQ07u9E89U13WQ0c3qBBlWnJL4yIm2ItgdwVVj9xADCUICMdb1k7+90kIL3TPestHlNkMqxKHQatOIitVkyO+vd6b8TYVjP4PXZSA0an6Vio5dpKsIqz4J3SUs2iu74uJPPf2v2CvKYqESV6OVFoU4F8ra1AeUliOPHvPg== 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=FnT+zrPQ2v8EOgoxrgKVbfNcI3ysoPxNMOOeoTGbbcM=; b=fT1Q+Hqf3PVkXyJIdr6ned7+ar/v60NFmnCdza/yO5kFLl9wcP0WX6H14ZG2J1o5e+8xQ+/PTPCagAQqbFhcNYHcDdcOPC9N3xG1y6F0crSpa/qZmOVcZewMY2aX9V26k+lVWN/Kcd8WwBvHps9UC+O1VqKDe7NpPqNxiZOeUlM= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 02/21] block: introduce blk_replace_bs Date: Mon, 17 May 2021 09:44:09 +0300 Message-Id: <20210517064428.16223-4-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: b74ab889-80a2-46a9-4e12-08d918ff4365 X-MS-TrafficTypeDiagnostic: AM6PR08MB3382: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:352; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: P6/nkRazXHNJsBfNVXLiltOZEvL7QjNm+RvIRaOZTUiR2+hHcjXvK+81E5bkZWBzNoKcin4JxGU9Ju5FmVrNx4JJG3EwEZ50vrUf4vA4r0fuFTcGaelcxiS9GNUpru60aFo4WfmRRGWkqDm81WyaJRfiAzh0Su57p30Pk6Iy0mp7OIzIX6wZTBQL8tj9crOTfoB0NV8BQItrC2IQCM8QNC0M2yVqHTqwEO68Uei/YaMuzVkIM+MX+Y5dpM9PiZUAdQ1eAzRV3yCbtDJcxeOOkbVEgMjFvRez8mPx03UrA/O6mnHCjrSSoEHos8NrTH32UtID45ps6rNkiKVgAboHnAj69ygxYkV1X/hiyqA87a33FJLB0cZXZ+looeIfA8qrQp3HP92orzsU984PMP/f5BbBMZ12Coau0kz1P5MgvxeoS06jY4LZimpBx2wZ5ggPV9IW60K854AwnxYFUZ4cFuPwSVX5HF1yZm76YVi30dcoA6CyIagxKg5AkyYwtXmwwgTp0Qc1gzJxeKiaykCg4DzvmefFxJY66+L/VYAmXIOCUMtKP2lMw3GtwMaW2ufKYDPLU+UsiQMsRZsMuW3wHVavK+xUPkqZK6BL3LRDmlx4BlG7oHyFDASvTCfrTjcMGM31VvzKh4T43M8oMSHV8xnzlsHrhCTi8uTnaiXOHb6m9tHAd33bRx7syXO0V8LC 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)(366004)(346002)(396003)(136003)(39840400004)(6486002)(26005)(2906002)(316002)(36756003)(66946007)(1076003)(107886003)(5660300002)(16526019)(186003)(478600001)(38350700002)(38100700002)(8676002)(6666004)(86362001)(2616005)(66556008)(52116002)(8936002)(66476007)(83380400001)(6916009)(6506007)(6512007)(956004)(7416002)(4326008)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?50DcX3CiGw8Ccd8bx/gxeK876XXxMaSnZaLUrLvPzhdEuc8XjK6SjOGOV4rP?= =?us-ascii?Q?DhkMT8TOdE0utGvo+YslrpAIyg4CdhMvx2V+mpCq6sn4hz0Tg9INZqoulY8X?= =?us-ascii?Q?wAjEn8DOlYQs6DLVJtOte9Shwr3LnQlQ/fv7R/8pKyT22H0T2Br/dWNTqvNU?= =?us-ascii?Q?iDGX99bHNefgtiMGFLFYlQWtzchETKmcezU0v/PncqeE+fpTXOL/P7JZmUVN?= =?us-ascii?Q?s1UP1N0ekGMyAXB4V1g2b0ckjeRbEvuzQGdRO8gMHXsJRDoHTrFp+BRk8OQ9?= =?us-ascii?Q?4X9p8gG+KDcJ8bC8e/yvoPijtaYzOzA8CypMvaZD2p1lRHUC/w4fxKFIDpjT?= =?us-ascii?Q?ycJ96Aj0Jr5XgUvQNT1S5d2iQ0FMUVG4WMJGQOR8tt/pmztl5U1Q7JlBo25t?= =?us-ascii?Q?mYDmFR7WHxdKpL1lAHP+6Dx6RqcIL09thjNQpS3g/7taBuh7H75Ln/n0DsdH?= =?us-ascii?Q?QrxAc8INGNX6LALs5KVDUgUzzJMiBi/RTGafsQyTmqEvAbLi3tDqNgm4zgEw?= =?us-ascii?Q?xtOzdbzK3a0i6RzKLAwD+pyL0NTx/eYZLknPKVHGPNtZEHQqYUCaTV/xLgwu?= =?us-ascii?Q?Uqtj2ce9eOFvTmz7AYWilUrtmdRLyHQZX3fTNOBkCyQLDWw3xO373gi8ULpZ?= =?us-ascii?Q?cp122uCMLYzo+CbZHeDNjM25NdX58b2bU3vk8I90B0nVGCBEL07wN/BQjH9Q?= =?us-ascii?Q?ejzf7h895qomwzsMMQJ1mDKCI1NRJt62vRh+0Da9IpzG3YUtSnKvDdZruhmT?= =?us-ascii?Q?GIMCDT2Wg8g70VizPEHohdsozAqk/iO2XXTtPvbJGxPgwzAbtiMJTSpf4X7R?= =?us-ascii?Q?vK2oieZP1ceYnd/ujCJWSrjKHZdGMnwT4+bzYezucIdZ51b8t7R+wnR92+a2?= =?us-ascii?Q?9dDW3ITSNsybijpoo89ydzCKpk3bmD3ZlTyTp6D+N2z5ugyDYdVaCWEwMwZX?= =?us-ascii?Q?U5JX3OhE6YEdQRMiThOV6ZYlSFNXbXWeUzfFhkG7aHEBspfhqm+xtjlU25Ms?= =?us-ascii?Q?C39s4Bg2MO2qxXWGjumxHsbpWafWZTYsUo5qGD8fZ/H6t4O/2hPFQhbd9ob/?= =?us-ascii?Q?zSYgZciuEo9Gh4KWCFHMQORjxCNrrlD9WChxRw+CdBcVAu3OYIfkZujBY+kJ?= =?us-ascii?Q?3Pz2xgLrRaGA1g0Mv1TIp4wUapcWchITwFcdmoynUfhiVCuzCy+1qIQJgQbW?= =?us-ascii?Q?hTh7e64IAT8Q1O+kFQ4sKospgUGk7WprYpdCEebDceDZXG9W+IcTl3nUoJqn?= =?us-ascii?Q?pvrIvUlq4OHPYPUaMs2a6AljOGrhQA0rm4K10FIVzP1hCwKwdsdwn5Pj84gA?= =?us-ascii?Q?dHlfpmaQRk1jtc96fDJj7Mt2?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: b74ab889-80a2-46a9-4e12-08d918ff4365 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:44:47.7539 (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: qJTVSTVZqc9ZJ3twCIF69FV7G5tHGhaGzh5HjdpXjjaBCMQtCOip/WhX4Aifl0iIBWVCtichWLjkcL25umjT91yVllVVasjOU0kTb1X5eww= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3382 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.3.130; envelope-from=vsementsov@virtuozzo.com; helo=EUR03-AM5-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, 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" Add function to change bs inside blk. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Max Reitz --- include/sysemu/block-backend.h | 1 + block/block-backend.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/include/sysemu/block-backend.h b/include/sysemu/block-backend.h index 880e903293..aec05ef0a0 100644 --- a/include/sysemu/block-backend.h +++ b/include/sysemu/block-backend.h @@ -98,6 +98,7 @@ BlockBackend *blk_by_public(BlockBackendPublic *public); BlockDriverState *blk_bs(BlockBackend *blk); void blk_remove_bs(BlockBackend *blk); int blk_insert_bs(BlockBackend *blk, BlockDriverState *bs, Error **errp); +int blk_replace_bs(BlockBackend *blk, BlockDriverState *new_bs, Error **er= rp); bool bdrv_has_blk(BlockDriverState *bs); bool bdrv_is_root_node(BlockDriverState *bs); int blk_set_perm(BlockBackend *blk, uint64_t perm, uint64_t shared_perm, diff --git a/block/block-backend.c b/block/block-backend.c index de5496af66..b1abc6f3e6 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -870,6 +870,14 @@ int blk_insert_bs(BlockBackend *blk, BlockDriverState = *bs, Error **errp) return 0; } =20 +/* + * Change BlockDriverState associated with @blk. + */ +int blk_replace_bs(BlockBackend *blk, BlockDriverState *new_bs, Error **er= rp) +{ + return bdrv_replace_child_bs(blk->root, new_bs, errp); +} + /* * Sets the permission bitmasks that the user of the BlockBackend needs. */ --=20 2.29.2 From nobody Sat May 18 07:08:56 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=1621234307; cv=pass; d=zohomail.com; s=zohoarc; b=S+GKxMadk4l5YsEZD4ppFRgazc/jewWjhnIQti3Ket23MNM8Y8XegSgURDPQ151tAsXt67WLIM1WaB+joTYqZtfmDbszSpm2epbA1dlfmz9i9MAovAO5/4BXIQNwbnNPYg/z8grcO/dIHMPg7PM/CLlliIvA2Bw9L7ZX94iBIkk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234307; 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=1YegxtiaAeNT9R2Y6VtQBS1yg+abF7zZI0GqYPJNVQ8=; b=S006x20GneWpYdNewVDrb641hItjfCXz0OriiDl/lDgu4+BD9Co+5RzLkmSrE5wcPOBtMRyCR/BBZkvCOUqnJSwunzNxyMTKjvp/EmnZfkA3yHYJE7CfPBfnKYAvB9BxST9MQWitipoWIFNdA6eqVl+tjw9GiYbKeBXZ3dBpjO0= 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 1621234307116215.44179665144475; Sun, 16 May 2021 23:51:47 -0700 (PDT) Received: from localhost ([::1]:44552 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liX6Q-0004mh-52 for importer@patchew.org; Mon, 17 May 2021 02:51:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33218) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liWzt-0003bC-Ta; Mon, 17 May 2021 02:45:01 -0400 Received: from mail-eopbgr30130.outbound.protection.outlook.com ([40.107.3.130]:60322 helo=EUR03-AM5-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 1liWzq-0001jR-M5; Mon, 17 May 2021 02:45:01 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB3382.eurprd08.prod.outlook.com (2603:10a6:20b:47::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.26; Mon, 17 May 2021 06:44:49 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:44:49 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:44:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Wat5xTfP1HUUAwMYmmUxmb1VhBcdFCZp+RYd6dwOzdWgR2ZK6en21dVKFC+Hn0B4ii1IT11o1iKFQ2jJdrp6yivuSW9TSb3G5Awo3wtaYyjcsSHrHLRcLoxSG2FFTfs5XOYeii2PKR9prg93ub3Y6tkbXS7nyiOqVj3Wf9kfWOTPaS69eyZN4mqN8k4CMfkIpJdN02XLZTZdPTZcWBPYys9F7/pWN9BYJRBFKKpEatCB5274b6GyL9w0AvcJ+Lf2lwYQjuj/IdaSJn124Bgaz66j6a5LxLPliavVjCs2Q/95+fu8jgGOMsvBWfh3ljY34a77wXXumzKjRISxRnvc8w== 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=1YegxtiaAeNT9R2Y6VtQBS1yg+abF7zZI0GqYPJNVQ8=; b=cUCWFyorfebays7B+7oDgybv6yMi48/ELhoBe6w9Ll6net6u9qhLcLi9VTlKKxiUbJ105GwrTjJu9bOIgGZ7rXj7n/V1rP5xFdPtGmZ5R3c5s9vVm27RE65WOiQlZNdsXebEU4cLPATqStWJBbMsVllh9q3qW2UWmFBvqyfKA4tNgu37Qlh6wdA3Rn4rS+5y5cwl4D1Gvl8VUs99btTFwmcsGfkxiAXMy4jPpC9wZHoNs53ZYfrA4GJBD1SfJBA1jyW+rLdFiMx64AeeIn0JWiMs6VXNTxfrXb+sXNs3A6aGov91tgHotzpSoPDjEUw9KabGp8EAoUqj8vSiSgNwEw== 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=1YegxtiaAeNT9R2Y6VtQBS1yg+abF7zZI0GqYPJNVQ8=; b=vm2jfYrdYD9Ur5/c5tcLuDlL5t59N+qu90y5OOcCEgTAD0vOEwL1yN6xI/ZVHeU7ydFv5ez0z4XIbaH+Eotl76BHi6AJJWW7um7Rr+ppYLp57gKFuga68g4gry5ErNhv5fixdaJWb73JYiiwv6DExE9a1kg4Uy6+UQ0KVFLQius= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 03/21] qdev-properties: PropertyInfo: add realized_set_allowed field Date: Mon, 17 May 2021 09:44:10 +0300 Message-Id: <20210517064428.16223-5-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 64d1305e-4436-4312-4bed-08d918ff442e X-MS-TrafficTypeDiagnostic: AM6PR08MB3382: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:534; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /sore2cIERSfeQYDCAaHj9HOhRO2MHeSdbSyDOBwufss2lcp/apMUdxQqNfY1qNjXhLXGXS+GVy3M0ITS4+Dqp2P7SUWXTqEcH7jgEozR2cNoX0u9d6JQ9rfnY1TPUUHjSVRE+ZWVLjqpcxOnwE1vva1T5MQBTLBygySxFGWzuV4pU1toHDmQuY9I/3qg5BB0kzyqo0cXQZYScoCjVpTzGMKqu4ikbyIOrjRTgeJ02gi72gxLG6NqRxBizVKXio4A9m8G2qGbsWt4ey/zZ7phTVYbSxa4njTlJVhsV3b+AoNIe121TyML7gV9arIAL8mGHTFLqsA/rpafJt9Y6gpmyQTcQUZuqqcOgeCMsjoW69+s6HpN/3wl+vjBX4YoDfSyyX2YOX1IiKx4Pe3j/P+gPgCSNe5yQMmGpN+Z7IAb1DGJT647IuDQafscFcXaWDnPVN1KD2dXndApRbCrynwiVogJZKre8yAFbRCst/0ez88pIzUBPreYodAgJMOggDaFtZQcMbGUKhN6uyeao37zHMDr+adE/M8JvqjQ26vYP4oWzHRK2njWUeuN2bcWN+SU+11lgoE89ACoioJcE/m4Jpgnu0aGMjgtgwM+fGWjc2VovozaJ+9Z39IWZzWAT5ha3Qbd1doHpi1hbfCcScTuqXm9g6TdSj2DpYvfbviF80SNX3kNL0xIfj3RLpvRqhW 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)(366004)(346002)(396003)(136003)(39840400004)(6486002)(26005)(2906002)(316002)(36756003)(66946007)(1076003)(107886003)(5660300002)(16526019)(186003)(478600001)(38350700002)(38100700002)(8676002)(6666004)(86362001)(2616005)(66556008)(52116002)(8936002)(66476007)(83380400001)(6916009)(6506007)(6512007)(956004)(7416002)(4326008)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?QZr2QSLRa4hZtKhpvIn27DJbpWE0yVIZcm1Wi6WmQUo5fp+fzhZfj+GccK7Z?= =?us-ascii?Q?aQpsH0y1Fzx8/ZwFIuRiaJ8bwF7kyT3MkA+WKLoidoXRL/q7KlgnOPJGD2k4?= =?us-ascii?Q?zZmXwSUCv5dUdQ6ocKlBGupBpe8BC8Zd7rfAYzjmBd7CUGbgvVTZdZ72DL4t?= =?us-ascii?Q?bd2g6dYoqTDnP56RB+RQe/YI2C70cjckpASVaPcnJxJkV4rSWPBCPKuCb9fl?= =?us-ascii?Q?SQt7Y7j2Tfi3/tcj/bfEm9kglNfpB+tfNG6ky7KheoGLvyarCZKtjgipyVT6?= =?us-ascii?Q?RVHc1iR6Y8QdAFIoTUe8JnKogavY6Fm99qGHSrYFg+H5ZNDpCTR7Ih04HnFg?= =?us-ascii?Q?xcUhkRjanOlOKZk3f0m/9ibRmCAGyGd2snJVcbiGICRsSAP7EkJLgGI2P70E?= =?us-ascii?Q?Az9nyzkU8Q4HOT3CuRdOz4H/DWqEMlXtbtJtzhSJ2VwThC/MiLKaP6cpq0XV?= =?us-ascii?Q?h9yTrOztqgKsRGC26017Z5b0Hu7mXa/kTqIQv+379pYuG/CNubbL3Z5chk9w?= =?us-ascii?Q?wFSfa3C7cOPRAC+XJRRxRcvz+Dh0k71ckcsIyqPSa4WLszA2vC5ZG7Kkg35o?= =?us-ascii?Q?Tkh7HCjl2faRlIUGchGAoFxlhMncZWXU2qY8jnSjYp580fiBVr1n8MwO69dZ?= =?us-ascii?Q?RhEMxMIiSd7b6o/qDzO+i1cwYiIb8WlnGHraM7aQPm0dtw5BcLzkfENdKAre?= =?us-ascii?Q?Tp+XzMbu1B+fgUInrZWpnAXZbZMub593fV2Gnk5R/nLDjx235L89qVmZ5l5s?= =?us-ascii?Q?5ppkTsyTPrARBUZzmz6mlLnO1BT3DXluV+d3RlbK1T2HaHtrvyOuBnEjNHy5?= =?us-ascii?Q?1VkykxDrmkBxSXd2ja5dY6p9hPbuDjrMBKurNSNg12r0Xsj+MUl/mcT5YJBt?= =?us-ascii?Q?bHs1SAmigUmDVAoZyFfezvAu8N3wjKYOh/3bh7zTBa62MYXTG/DFYW91O1kM?= =?us-ascii?Q?NuqFNja/tJMWz1SYSxZQ1gCaYQKfG34IabZD4MheOQtk7iwIaqvr6+MEGO2G?= =?us-ascii?Q?7xb3bpuftsv/X7xIK7vdBHnoY35Qm7jASMdwBtlTLhsEkWaQANk1GTLBvCwc?= =?us-ascii?Q?N4IeE4J/An2ia/aPvGX/13g6Fmobg3437AaUlMu19i0fQo2k03+W2IRSF3Qj?= =?us-ascii?Q?Jeu7cmsUqyClDVf7s2FT0JiLyNE5DkidMu6Z2VrTyXike8fJlg8exnTV3om1?= =?us-ascii?Q?Ms7KPMX1A1fqtKSrCqJcl2XQTzaZZ6vmS3NC91DSLFDeztnlk5+oDD8N77M+?= =?us-ascii?Q?3L916yacNGUFhGBZDWeMC+2vKMnEyiGk11IOGXtGA8L9TP5Fx+Fjjgfy2OeR?= =?us-ascii?Q?waU0c0TjLWJgeYerJtbpnF90?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 64d1305e-4436-4312-4bed-08d918ff442e X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:44:49.0790 (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: EJ6okdANMKJFZkbJSdbvDto8oPkF6MLwmp7WoETGjGj1MAuWprx8XFF2CLOC7jyqMobhI1hTjMJisr7BW2xObCBt87FVkywQjf2Qd2vhkRU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3382 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.3.130; envelope-from=vsementsov@virtuozzo.com; helo=EUR03-AM5-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, 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" Add field, so property can declare support for setting the property when device is realized. To be used in the following commit. Signed-off-by: Vladimir Sementsov-Ogievskiy --- include/hw/qdev-properties.h | 1 + hw/core/qdev-properties.c | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/include/hw/qdev-properties.h b/include/hw/qdev-properties.h index 0ef97d60ce..007e1f69f4 100644 --- a/include/hw/qdev-properties.h +++ b/include/hw/qdev-properties.h @@ -32,6 +32,7 @@ struct PropertyInfo { const char *name; const char *description; const QEnumLookup *enum_table; + bool realized_set_allowed; int (*print)(Object *obj, Property *prop, char *dest, size_t len); void (*set_default_value)(ObjectProperty *op, const Property *prop); ObjectProperty *(*create)(ObjectClass *oc, const char *name, diff --git a/hw/core/qdev-properties.c b/hw/core/qdev-properties.c index 50f40949f5..c34aac6ebc 100644 --- a/hw/core/qdev-properties.c +++ b/hw/core/qdev-properties.c @@ -26,11 +26,11 @@ void qdev_prop_set_after_realize(DeviceState *dev, cons= t char *name, =20 /* returns: true if property is allowed to be set, false otherwise */ static bool qdev_prop_allow_set(Object *obj, const char *name, - Error **errp) + const PropertyInfo *info, Error **errp) { DeviceState *dev =3D DEVICE(obj); =20 - if (dev->realized) { + if (dev->realized && !info->realized_set_allowed) { qdev_prop_set_after_realize(dev, name, errp); return false; } @@ -79,7 +79,7 @@ static void field_prop_set(Object *obj, Visitor *v, const= char *name, { Property *prop =3D opaque; =20 - if (!qdev_prop_allow_set(obj, name, errp)) { + if (!qdev_prop_allow_set(obj, name, prop->info, errp)) { return; } =20 --=20 2.29.2 From nobody Sat May 18 07:08:56 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=1621234488; cv=pass; d=zohomail.com; s=zohoarc; b=lvuHB0iWfgaT4yX58XYxaK/o6hmMtOnzGV1/gKb9vJm0izr2hYzABcnmIMj7sEqBG4x668s1wY2/HVw5G9m1v08pGqkqhvEr/VeiizedY/2TM1QZZaeyAxMYnboaEyux/rFk7NCChN8ax07BbNrW1DCO5PH2+NqHn0P2Ry5Rtxo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234488; 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=kOrHBzHfSh4rVE+n0RYahokr8YYT082PseajZ6AxKvc=; b=TiT4xL8D8ezhycAVnR6qSgRsgvqxCbhDmuDLTVXIZCDFruzLoOPdh1bAge7gJO1ibjjk4DZQfYyp03Q46MKN1rj24VsuKR5WPBSrNSIDw8joj83izbfZBjkBl+P7QJyatK5Q2xR+gr23gDZ+2oGlS85g1jy542VF9VkKSN63lEo= 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 1621234488487496.4775050233228; Sun, 16 May 2021 23:54:48 -0700 (PDT) Received: from localhost ([::1]:51796 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liX9L-0001Gp-2Y for importer@patchew.org; Mon, 17 May 2021 02:54:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33322) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX03-0003id-Sc; Mon, 17 May 2021 02:45:12 -0400 Received: from mail-eopbgr30113.outbound.protection.outlook.com ([40.107.3.113]:13457 helo=EUR03-AM5-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 1liWzu-0001tv-EP; Mon, 17 May 2021 02:45:11 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB3382.eurprd08.prod.outlook.com (2603:10a6:20b:47::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.26; Mon, 17 May 2021 06:44:50 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:44:50 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:44:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NKR+Yam/2TlskphWghH6Qa+XEWsknHDEPus7QJpM0x55EC9Aq9zK9/5uBjGFRK8U2ndNjMYTGoA1a5BS4F8BCRbedsRdKk0jMlRR6vr2bPNl3kCjzwUNuy7DeNKkKkcG3w7j+MptzN485RSvPw6w7QJfv3hV5Z772QPpZw2j57Ic6TxwYo6LfgeWNIcqtckSv2GYrDroD9hN4SJSrW1K69WnwHeZdngdi9fm64v5OBlpJvXCDPc62koe8d14mdPY54WrmyufUhRBXkQe44xG219uQEpyf9F0LkgKC/oOaEvT3Ux64ysxQ0eksAo0JCCiBoTjMKmIcIwu+JEU0VvjRw== 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=kOrHBzHfSh4rVE+n0RYahokr8YYT082PseajZ6AxKvc=; b=Du/XdpshATfBD0H23AFxg4PLfmh226VFmYou4s2wHqUGNPV3qJ1CXZVIuXp8ASidwp5PypNq8sWPieqAbhXIYuFBQgKwErZ4RuxsjfYCmttjWyBxvYo0iRFGi2BEHd6bI8O2sW8NSnOXqPi0ENCzvNTjdq3i8ZOCwjwkV1rWEwLF1kxeWjAympYgWE+5jkeAoaq4BY5jAH24B+ReWPFH1UnQJzpwHXcaPM0i7xOhduZTv+1MxS3x3zwMtdDY+traKCOgSGXt+VB4RaSdQeC2S6ujiX3aFTSRqQFwc6ABT7YomGKX6TauxsDmztl2hPRhhnz5jS5WKHuMtPXPKhhiKA== 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=kOrHBzHfSh4rVE+n0RYahokr8YYT082PseajZ6AxKvc=; b=eQWrBdpa0n0jAzZupftT92dIl1RHib7+7NPzwTP4nREnWCU1eURN1c0F6IlIM2QfEFv7xJIUCNU58nnMJOM17hCvRe4E2JcvS/pdHkK5VvzHtBjICfU4E4IOykySs0exByfB0f1M3FwyWXFq+MhXZxmKbu9MT0Q4MA6Jp9lessc= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 04/21] qdev: allow setting drive property for realized device Date: Mon, 17 May 2021 09:44:11 +0300 Message-Id: <20210517064428.16223-6-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 2c2f05e3-08df-420f-b19a-08d918ff44fb X-MS-TrafficTypeDiagnostic: AM6PR08MB3382: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HPSBdVoBCVbtonkEtPMoy/EGSzzgXYdSR1uCzYkdPWzAhQXJNPAqmteKMNCM+exQbqkUz0t9OkBZ0PaAFMiCokbHcHTArxZts/9F4UsVLc9DfUZQ7GgkoPE3FF2s2rh4n/wpfVcHgyPUSBpKS5qN4I+/pEM9k/6fTVaYyo9cCoVCBNhBnpb6nTx7sbnI8ssd5/9Eqhb0T9Tea92pK6yL5ELgOf+OwuBfMET7cFCmkDTFueR99GXOy8GFyJXTiI7XRWt1bm6EAZOVXzHA0iwlivFhavJVgo9nf5JScvksp66kP593HhjAWLvkasHQFeuRpG0kDGpmT1559jLt9AciG/A91Pb2/f9xwJTWWTsX0E+2lrzdSAWKgKvORYxd7MrLTDlamebAeDKSF1LLNHX/izgoIU+EXVsgfNlpzpQtmgLPdLHAX0RGA3LlIY2VIh6w3I+JbqCst2tXTSK3tWh/9mNG1uVj+tiVWpvGnsf37dcUBybnC+OIcHg0HcssjL/nEc9MLgkwZV8nnDOey4mRAcZzrQXBTgxHqSUmrdlpTwDZ0QxOowejeBERvzpG95LbB97wVQJimv8cu2/Io5SeaMHRGRfUYJjYWHXfQTJBugAHS7OSqV67uDX/PHR11+aDXnFDKIPmS5ud2RlGfUCyVp75N2yk5+xQvCerVxJZ1Qdxl4Hr5I2oMUKp+U5ydRid 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)(366004)(346002)(396003)(136003)(39840400004)(6486002)(26005)(2906002)(316002)(36756003)(66946007)(1076003)(107886003)(5660300002)(16526019)(186003)(478600001)(38350700002)(38100700002)(8676002)(6666004)(86362001)(2616005)(66556008)(52116002)(8936002)(66476007)(83380400001)(6916009)(6506007)(6512007)(956004)(7416002)(4326008)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?l95yFIkOPcfFY17u8EeX1I4LP2vMw29XsPPe3zciFbbQSkxaB0EDqpyv6K1z?= =?us-ascii?Q?ACT+K1QlXsOkRzBLoR1MsHSYyNfm/95IxYA0HccmXmnNqOk0gVS+xBOaKDmU?= =?us-ascii?Q?Nku3hpth1MnWVj27+k74xIYxd4zw4HRg7tIYJ9q1uog27MsufGtJfcWszyjh?= =?us-ascii?Q?p68D53lpZrwLsj+kWjBKEmmDSKznonLVohspm46hilVst23l4ZtkkZu9BwuW?= =?us-ascii?Q?knnGJfgMlGqBALIb+f86jdON06Ck6hPkPVLQSgtxnr1UTJK7IfF2V6+1x5dX?= =?us-ascii?Q?6PjQsWR7t2HZmxAjhuo4LR/ra3zhKiEeo5l++/uij3jHHHeZalSC9wGvSkkF?= =?us-ascii?Q?tfKOBE38aM/wJyVtnKN94uYi+EK4ddXVbw/ptLOz8P+KVc1x018bhyQPqaPg?= =?us-ascii?Q?2tmXm1bV+HRJ6nFX4pMcZX0qw/b67zcmIpGMfH/GGrTV1gt4zG3VBjQLPY/c?= =?us-ascii?Q?GtgKEz4JzXANMZuTTxvQbWl8yg7acQb9CYhyTVlWokqZuy64p6+Z8yQht/y7?= =?us-ascii?Q?GBHxVN+J3HvVpsvQWUaxBsf3zdTcLckVCLKqS0ulfO/gxRzJ6nBUyaf2S81C?= =?us-ascii?Q?h1pSTDOZ0Q218fvOmpmsb9mQrvcwHI1AX7RkUVmfOHIB5y43PTfTPmBixhMn?= =?us-ascii?Q?WhPb5OxNoLOfaFnTODlX0hhJdUr4Eruj0TPqqgQi7dkKn2EwBVs91R42Gdgm?= =?us-ascii?Q?2yq+wGjYXbfEEXTKvPWAHrDoCsZ9+g1tRdd5NgICZJTQyQlJ9AUvMAc4hKwP?= =?us-ascii?Q?bAp151UyI5sXgYiFHvXD/yFPPK/UeOnNg4Aa6+kIBROIHSSl/zWtuW0CXv2V?= =?us-ascii?Q?z7QchGN6NwtcnBFztZ8tHVlrth4ESB27BZLOYN1xAS6BSrrQ1VC3aeEzDPBm?= =?us-ascii?Q?6iq4yW+iIy7ZzeYPZIXHI2+g4So+jtZoV6kMrnJjnxXvAOB37Fs/UQ1fhS8Z?= =?us-ascii?Q?J/Gy9YkZr0YJ2jNKj5z+xC8n2gbYpwhqzaFCIQim9LbdLSx5f6kWBnGzGWLw?= =?us-ascii?Q?pYOJaa93cnqk7xet+sDSwuSPWfTv9Z7/Jj9WToNyqIdHAOG2+2pdl7zrVE3s?= =?us-ascii?Q?fIEaFYXbeW+EQAgiGHXTwjrkcRU2SlDRTQrP9/eyAzl1SLWnPW9VKEoqni4j?= =?us-ascii?Q?jQ0om6HQOC/p/C0mFfaDyJm2O3jxrVyTlN0FmcpTFuzX/rmm/YsJlre3XJGf?= =?us-ascii?Q?ETwbUbh2q2n36+/3nhQBuy5guieII7lfr7ZUnobMv95MBRmUsSacz6+0ljz+?= =?us-ascii?Q?e7gLzEn90yGzC33YwSfpA8Sg6jzNEQvMP411JLti8vADkZ73mhTFbxyds+Tn?= =?us-ascii?Q?1PFUthU/egsHLqO/wpjZmbUn?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2c2f05e3-08df-420f-b19a-08d918ff44fb X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:44:50.4789 (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: MvS3tx6U5s6mqQt/0zimK3o9vDYzLomK5+BBNcSOtqIUG7fyI1UImD3SaEXqMx/krgpi8AdY2sgZcOth7mWCjHkc27D3Y6JdX1bZsGKV7FQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3382 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.3.113; envelope-from=vsementsov@virtuozzo.com; helo=EUR03-AM5-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 need an ability to insert filters above top block node, attached to block device. It can't be achieved with blockdev-reopen command. So, we want do it with help of qom-set. Intended usage: 1. blockdev-add, creating the filter, which child is at top node A, attached to some guest block device. 2. qom-set, to change bs attached to root blk from original node to newly create filter. Signed-off-by: Vladimir Sementsov-Ogievskiy --- hw/core/qdev-properties-system.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-sys= tem.c index 2760c21f11..7d97562654 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -93,16 +93,30 @@ static void set_drive_helper(Object *obj, Visitor *v, c= onst char *name, BlockBackend *blk; bool blk_created =3D false; int ret; + BlockDriverState *bs; + AioContext *ctx; =20 if (!visit_type_str(v, name, &str, errp)) { return; } =20 - /* - * TODO Should this really be an error? If no, the old value - * needs to be released before we store the new one. - */ - if (!check_prop_still_unset(obj, name, *ptr, str, errp)) { + if (*ptr) { + /* BlockBackend alread exists. So, we want to change attached node= */ + blk =3D *ptr; + ctx =3D blk_get_aio_context(blk); + bs =3D bdrv_lookup_bs(NULL, str, errp); + if (!bs) { + return; + } + + if (ctx !=3D bdrv_get_aio_context(bs)) { + error_setg(errp, "Different aio context is not supported for n= ew " + "node"); + } + + aio_context_acquire(ctx); + blk_replace_bs(blk, bs, errp); + aio_context_release(ctx); return; } =20 @@ -114,7 +128,7 @@ static void set_drive_helper(Object *obj, Visitor *v, c= onst char *name, =20 blk =3D blk_by_name(str); if (!blk) { - BlockDriverState *bs =3D bdrv_lookup_bs(NULL, str, NULL); + bs =3D bdrv_lookup_bs(NULL, str, NULL); if (bs) { /* * If the device supports iothreads, it will make sure to move= the @@ -123,8 +137,7 @@ static void set_drive_helper(Object *obj, Visitor *v, c= onst char *name, * aware of iothreads require their BlockBackends to be in the= main * AioContext. */ - AioContext *ctx =3D iothread ? bdrv_get_aio_context(bs) : - qemu_get_aio_context(); + ctx =3D iothread ? bdrv_get_aio_context(bs) : qemu_get_aio_con= text(); blk =3D blk_new(ctx, 0, BLK_PERM_ALL); blk_created =3D true; =20 @@ -196,6 +209,7 @@ static void release_drive(Object *obj, const char *name= , void *opaque) const PropertyInfo qdev_prop_drive =3D { .name =3D "str", .description =3D "Node name or ID of a block device to use as a backen= d", + .realized_set_allowed =3D true, .get =3D get_drive, .set =3D set_drive, .release =3D release_drive, --=20 2.29.2 From nobody Sat May 18 07:08:56 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=1621234300; cv=pass; d=zohomail.com; s=zohoarc; b=EeGBCorcdCeNwApRgyua2b7mPOySrzhAn1ZlC5yBttONHkzD8FS0C6A6yE5+Hkkv1XGnPf6s3ZU+yN/zSAeAb2f86Af28aAlVh2roCeyoOkG+M/sWUUGJx2+UPwb/2dOhF8EGJbJESFfozO5qKQmoOAqdUUakoqHgT1yTVwxWDM= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234300; 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=sqBsmd6jB399GpX5GcvreD8qaJNct3QJdMPmxYJgH74=; b=hriLHA0KA3c/yjL3RivLYOhWHfWJgNsOVF82q+y7vh6UUuuSOlWCxHG259moGionT8cGptTyFa20lFUX9D+9qScp01nZuIiQMJeoY+Pkpfx0qDMFpcH61B76lCZccFRR9jjVbeNbYl4YjJzNtVftrHrLE65mK7LHRDBo9jxyuxo= 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 1621234300338690.8425033479344; Sun, 16 May 2021 23:51:40 -0700 (PDT) Received: from localhost ([::1]:44212 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liX6J-0004YD-5m for importer@patchew.org; Mon, 17 May 2021 02:51:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33202) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liWzr-0003RH-95; Mon, 17 May 2021 02:44:59 -0400 Received: from mail-eopbgr10130.outbound.protection.outlook.com ([40.107.1.130]:34617 helo=EUR02-HE1-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 1liWzn-0001ph-M7; Mon, 17 May 2021 02:44:59 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4341.eurprd08.prod.outlook.com (2603:10a6:20b:b9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 06:44:52 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:44:52 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:44:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fWh9qAtmAnAiGhngVD/xn7yZB+qCpLDhHalZzTmWSOJGd+0b68KTSY1ABsFD6Gc3DYS+6fImvwLmJ8NsewoContT19vjPqGws8qG03C1V23CBqnWQdcq5aUzo9eHiCE0FWKguM9MgbxVKRW5CTeSpfVqicBho/agN1MF5FpjRtMUP5YfEha179HtuwrLoiYQOw8HFNowUfeJd42dv9m5E8xegO9/ulSyXVWeb4ujazOiQjVlVbYzFcr1vnQkF1OPDHRFS/+4gS4w670MuSkuBUxyUWKkPy6PdJtk14Vgrn9DNQ6CXYBcF10vkDhFU2nEYWQQsoPKeXO9fx3IhJMh8g== 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=sqBsmd6jB399GpX5GcvreD8qaJNct3QJdMPmxYJgH74=; b=PHyTdinBB6Qrl7hg7c45Aoo13DGi3WAW03cZQ/4UqHdC23ugl6DSgRvkmzmhD5O2bC3K52zw7tUXsFXJ0tTFh+e3CxygrDwUapfJfeLFDxFUWDO9Kwt8bpLjq7pvGFPooHHRqJY5ZCSUiy9Vxga4f8CvJoobmySUWXVIHu3vADs0Oh15OKy8g9iGpoD3V3Yql3a2CPMa5+iFooRzNgS6Yk4E+6X10CpJNNdWNVy5Kb/y8uiDyMLNKKNyPQ0/hNZFQVeRlqKY4/bfJpCphESgkycXbTS1KTVKdrINsAbJYPxXtlwOvxzqpn/m87lRikh5eZeZHJEHbJbI+9MutRIH8Q== 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=sqBsmd6jB399GpX5GcvreD8qaJNct3QJdMPmxYJgH74=; b=rtxhv2Y9TGvjCsAuSeouf160Qomb12E0LAnDw5gG1gKCXQ4Kl6iACI1eaUp6QlHVDBar3Um8ffVVd0QnFW+Lss9IZhLqRJOSfNl2SaSQKYP7qQG7Q8LSmBxxeuo7bdyCcZyMV+kdd3wL8Fu7g7vyUeVr0RzHVkPyaiLHRYjygBk= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 05/21] block: rename backup-top to copy-before-write Date: Mon, 17 May 2021 09:44:12 +0300 Message-Id: <20210517064428.16223-7-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: a94be239-8832-4db4-afdd-08d918ff45d0 X-MS-TrafficTypeDiagnostic: AM6PR08MB4341: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2043; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: n6CQOu3wXh7Xip83Pwbj3AH1uLYYqpjYMGue3kTvwB9ljRYwGh+6bnLKKpwlBxObkVQhGADr1WrPubVQIYWRgPT6QRQ0XI4mrGjtdN5VbdPFGxxRPDRtMQYxNk7qRaPfvWDSN+RtoEVZ6wpoEje17cbb14lx2DXidBLYCrvEGqA9kGoafne/iYS4JFA+lkNz0+V+2C/CJluGwqaRQUHpHjOdaFOU+9tjHIqtqjo6djZXBzF6pTu/WgdqpmdUPQyeW69hBUP0AiPfNyuqnM409p+VdvLmlz6DoIESw9A2xZcYvhiuqLNbudqj1GzmKzeuy/PhDHts1XPaG/FWoLcLXOI9ax2Sk2vSBGjNhGVaoMHxkhEIlFTlwHd7bjKmicVVicRXFbhFml8Gmic3ezYrGIJI4aXmE7fG34m/TpU5e5Sqq05iaM2bkVhTNuQyjflNWRIgg7C2u8vCIG3syWvI3Y6fHfzPZvzberLBYto/6g2B835cF+o+zVo4SSlhlJdPSu7hMEjTFqoHsskgPEe5tqWr7CnlW+QuZ1OQRMbd0SmM1rMKcjW2ag4BGLHkjKsu1pA3DNQjkQEPrQ0MTr7vS+JL9TVdEw3MjgaM1fk0gh5K157GxQKKdSlwPWTDuoYj3dNMpGJO4TzI2yLx4W0W4Qaun+9B0QEuL8fFbkNWRB85GccBfDFZVcxnIDra2asIzUNbmTvFcD9IM3XexfUMohE/hOewfA94zORjM8mKfMk= 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)(136003)(346002)(396003)(39840400004)(366004)(1076003)(30864003)(8936002)(316002)(107886003)(4326008)(6916009)(6506007)(38100700002)(26005)(8676002)(5660300002)(86362001)(38350700002)(186003)(7416002)(2616005)(6666004)(16526019)(66476007)(66556008)(2906002)(36756003)(6512007)(6486002)(956004)(66946007)(52116002)(83380400001)(478600001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?MUc0QzZnbXlESExmVEdOR1RSVFpHY0pIQm5zb3ZDeWxFVUpDM0czYk1zWFgy?= =?utf-8?B?a3dTZUN4MUdNdGl2M0N6NUY4Z0diYjMvTmtMWUhjVGRZY3FEY0VieWlMbjJs?= =?utf-8?B?K0RJTnpPWC9MZ2czU0hENDM1YXZ4NStCNGg2aU1tV3hwbW5qUW1WVmx3WENJ?= =?utf-8?B?b092NUN2Q0tBckVydWJOWnRvd0FES3R6bzVVS1FnWlhmZWJoUHE4aTA3aFl4?= =?utf-8?B?c3ZJOU9pVVdEbmxBR1Y5Nlc0ZFZ5cTRoRVJhalNDQmJpSkkzU3EzNUx0Y01o?= =?utf-8?B?bUVxQnFOUVFyVUJqeW8vN3Z6a0UxZjUxRXVzOExLZkEvMEUwd2xGeS9FV3kv?= =?utf-8?B?N1g5eWJCUFNta2VxV0pMa1Brc0lIckxxWGtyVFB4bXFIa2hyTUhvR1IrV3Zr?= =?utf-8?B?YlBtbWhPQUpKYjRTcWZQR2QrZzZ0ajhxb3JLOEhEU1Vxb1pEcWk3S3pnSjZF?= =?utf-8?B?cVlrenhjcCtCMWx3WjVsYVF1NzdlVU1lSmt0N3RoOFVjSmlUODlJRjBVZTVG?= =?utf-8?B?eWJXaXZ1Q3Mza3VEbUJwMm84cUxOU1J0QVNaWC9RR1dKNjZPVjl3aGl6cFY3?= =?utf-8?B?MStoRjEwOEdrN05leVJ1ZUUxaS80Ly9BRmV5QXUwSldXdVpQalpxZm40QXNs?= =?utf-8?B?M21OaXVrRXQ2Zm9vbWFzUzhOR1M0SkJadU1GUlJNWGpNUW14V3Q3MG9NM3Fm?= =?utf-8?B?VkplVXBpa3pGQkVYdmNsbllWUkpqMlM1MVVrLzdnWU4vN2pwdkdwbWFCc0lH?= =?utf-8?B?S2dqckVwNDcrZC9vUDZTQ0NFdmVaMGJvOUdXL3RwazF2RHlnWURIZk1ESUVH?= =?utf-8?B?MTlXOVNMUExIU2Y2dXlSRklhbTkwUDJkMmU2RGthaFJnWkhnYWY4RTdVMk1j?= =?utf-8?B?Q3VxbUpEVmNhRm03VldSOENuYUh1cEExVUxkd0dHQkUvREx5aHViOXJiNEcx?= =?utf-8?B?NXBJdjRmQmErNldkTHEwMkh3cXc4U2ZXWHBUdGdRNkc2QWV4UFo0N2RPN2Ju?= =?utf-8?B?NllwVlRGTjd1MVNnWWQ5MXgrSHc3ZDRjZDNkbTczemVJMXMxaUtyRXFOQk1K?= =?utf-8?B?UnpheGNpNkh0UXo4YmI5c05vR0JzNHc0Q3FrTHozZTk2QjJzdEZyMHllTENy?= =?utf-8?B?VXp5QjYzVEY1dlpLY08rODdjUThYVnRlZFRDSnJ0VVNOU2h6QzYyYmFicUZE?= =?utf-8?B?aGk2YmhmN2RrSUVwcnFsODhyQlVldnZqTENuRW9DYUpiK1N0WmZCQ2JkZGFO?= =?utf-8?B?eE0xYmdDMGYyMERjZ2xYWHM1U2loclVpMExxbXRVSkZHb0dXcWJUWkJzY21r?= =?utf-8?B?dk93NEtUOHc3eEZGeFZRWGQ5NjIwS1BncXdFNk9aSm9sd25MeUpQR21SQXVZ?= =?utf-8?B?SE12K2YrWWVybDB1a2JpUXFRR3JYMDYxVS95c3lKQS82QnJXcWEwYWNwUTJo?= =?utf-8?B?SEpLdHMzd083eWZNdC8vejN4T1lyUlhGNXpSL0o3R3F3bmVoNnZLa0drYXJF?= =?utf-8?B?YmIxZ1JzelhIdXJGR3lzVVFlL21VelNROUNvMytzUENLV0hmZmRlcG5yWXBR?= =?utf-8?B?ZFBsQmFVK1pqS1FaMHYxM3FUVlBPZHp2N2ZJWjJjTGVwNUFjVGJBMzg1bTNO?= =?utf-8?B?d2V1OENrOFAwYS9HMGZ2OFlTMGIrZVFpeVN3OElva0RkaUkxQ0pPcTdVNFBy?= =?utf-8?B?OWs4WFQ1aVJDSEtQQ2tZOU9PeklqVnh0NE5EaCtDd3BJSkt3TkVDVk5yYnB2?= =?utf-8?Q?wFfPBd0lQ9p5lZb1ZNubg3xESwGF7C2t3x+Xszv?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: a94be239-8832-4db4-afdd-08d918ff45d0 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:44:51.9704 (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: ifKzfExWj3OnNfRQKq+CXzaHXjh+pXZSqHdQ05ADy+f84Lbi8Cqfh1Sa8zNaXpBC4L2huF4MygR35faR4czbEjPR2AtcKrlwD22gWR8turw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4341 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.1.130; envelope-from=vsementsov@virtuozzo.com; helo=EUR02-HE1-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) We are going to convert backup_top to full featured public filter, which can be used in separate of backup job. Start from renaming from "how it used" to "what it does". While updating comments in 283 iotest, drop and rephrase also things about ".active", as this field is now dropped, and filter doesn't have "inactive" mode. Signed-off-by: Vladimir Sementsov-Ogievskiy --- block/{backup-top.h =3D> copy-before-write.h} | 28 +++--- block/backup.c | 22 ++--- block/{backup-top.c =3D> copy-before-write.c} | 100 ++++++++++---------- MAINTAINERS | 4 +- block/meson.build | 2 +- tests/qemu-iotests/283 | 35 +++---- tests/qemu-iotests/283.out | 4 +- 7 files changed, 95 insertions(+), 100 deletions(-) rename block/{backup-top.h =3D> copy-before-write.h} (56%) rename block/{backup-top.c =3D> copy-before-write.c} (62%) diff --git a/block/backup-top.h b/block/copy-before-write.h similarity index 56% rename from block/backup-top.h rename to block/copy-before-write.h index b28b0031c4..5977b7aa31 100644 --- a/block/backup-top.h +++ b/block/copy-before-write.h @@ -1,10 +1,10 @@ /* - * backup-top filter driver + * copy-before-write filter driver * * The driver performs Copy-Before-Write (CBW) operation: it is injected a= bove * some node, and before each write it copies _old_ data to the target nod= e. * - * Copyright (c) 2018-2019 Virtuozzo International GmbH. + * Copyright (c) 2018-2021 Virtuozzo International GmbH. * * Author: * Sementsov-Ogievskiy Vladimir @@ -23,20 +23,20 @@ * along with this program. If not, see . */ =20 -#ifndef BACKUP_TOP_H -#define BACKUP_TOP_H +#ifndef COPY_BEFORE_WRITE_H +#define COPY_BEFORE_WRITE_H =20 #include "block/block_int.h" #include "block/block-copy.h" =20 -BlockDriverState *bdrv_backup_top_append(BlockDriverState *source, - BlockDriverState *target, - const char *filter_node_name, - uint64_t cluster_size, - BackupPerf *perf, - BdrvRequestFlags write_flags, - BlockCopyState **bcs, - Error **errp); -void bdrv_backup_top_drop(BlockDriverState *bs); +BlockDriverState *bdrv_cbw_append(BlockDriverState *source, + BlockDriverState *target, + const char *filter_node_name, + uint64_t cluster_size, + BackupPerf *perf, + BdrvRequestFlags write_flags, + BlockCopyState **bcs, + Error **errp); +void bdrv_cbw_drop(BlockDriverState *bs); =20 -#endif /* BACKUP_TOP_H */ +#endif /* COPY_BEFORE_WRITE_H */ diff --git a/block/backup.c b/block/backup.c index 6cf2f974aa..0b5887269c 100644 --- a/block/backup.c +++ b/block/backup.c @@ -27,13 +27,13 @@ #include "qemu/bitmap.h" #include "qemu/error-report.h" =20 -#include "block/backup-top.h" +#include "block/copy-before-write.h" =20 #define BACKUP_CLUSTER_SIZE_DEFAULT (1 << 16) =20 typedef struct BackupBlockJob { BlockJob common; - BlockDriverState *backup_top; + BlockDriverState *cbw; BlockDriverState *source_bs; BlockDriverState *target_bs; =20 @@ -104,7 +104,7 @@ static void backup_clean(Job *job) { BackupBlockJob *s =3D container_of(job, BackupBlockJob, common.job); block_job_remove_all_bdrv(&s->common); - bdrv_backup_top_drop(s->backup_top); + bdrv_cbw_drop(s->cbw); } =20 void backup_do_checkpoint(BlockJob *job, Error **errp) @@ -408,7 +408,7 @@ BlockJob *backup_job_create(const char *job_id, BlockDr= iverState *bs, BackupBlockJob *job =3D NULL; int64_t cluster_size; BdrvRequestFlags write_flags; - BlockDriverState *backup_top =3D NULL; + BlockDriverState *cbw =3D NULL; BlockCopyState *bcs =3D NULL; =20 assert(bs); @@ -521,22 +521,22 @@ BlockJob *backup_job_create(const char *job_id, Block= DriverState *bs, write_flags =3D (bdrv_chain_contains(target, bs) ? BDRV_REQ_SERIALISIN= G : 0) | (compress ? BDRV_REQ_WRITE_COMPRESSED : 0), =20 - backup_top =3D bdrv_backup_top_append(bs, target, filter_node_name, + cbw =3D bdrv_cbw_append(bs, target, filter_node_name, cluster_size, perf, write_flags, &bcs, errp); - if (!backup_top) { + if (!cbw) { goto error; } =20 /* job->len is fixed, so we can't allow resize */ - job =3D block_job_create(job_id, &backup_job_driver, txn, backup_top, + job =3D block_job_create(job_id, &backup_job_driver, txn, cbw, 0, BLK_PERM_ALL, speed, creation_flags, cb, opaque, errp); if (!job) { goto error; } =20 - job->backup_top =3D backup_top; + job->cbw =3D cbw; job->source_bs =3D bs; job->target_bs =3D target; job->on_source_error =3D on_source_error; @@ -552,7 +552,7 @@ BlockJob *backup_job_create(const char *job_id, BlockDr= iverState *bs, block_copy_set_progress_meter(bcs, &job->common.job.progress); block_copy_set_speed(bcs, speed); =20 - /* Required permissions are already taken by backup-top target */ + /* Required permissions are taken by copy-before-write filter target */ block_job_add_bdrv(&job->common, "target", target, 0, BLK_PERM_ALL, &error_abort); =20 @@ -562,8 +562,8 @@ BlockJob *backup_job_create(const char *job_id, BlockDr= iverState *bs, if (sync_bitmap) { bdrv_reclaim_dirty_bitmap(sync_bitmap, NULL); } - if (backup_top) { - bdrv_backup_top_drop(backup_top); + if (cbw) { + bdrv_cbw_drop(cbw); } =20 return NULL; diff --git a/block/backup-top.c b/block/copy-before-write.c similarity index 62% rename from block/backup-top.c rename to block/copy-before-write.c index 425e3778be..40e91832d7 100644 --- a/block/backup-top.c +++ b/block/copy-before-write.c @@ -1,10 +1,10 @@ /* - * backup-top filter driver + * copy-before-write filter driver * * The driver performs Copy-Before-Write (CBW) operation: it is injected a= bove * some node, and before each write it copies _old_ data to the target nod= e. * - * Copyright (c) 2018-2019 Virtuozzo International GmbH. + * Copyright (c) 2018-2021 Virtuozzo International GmbH. * * Author: * Sementsov-Ogievskiy Vladimir @@ -32,25 +32,25 @@ #include "block/qdict.h" #include "block/block-copy.h" =20 -#include "block/backup-top.h" +#include "block/copy-before-write.h" =20 -typedef struct BDRVBackupTopState { +typedef struct BDRVCopyBeforeWriteState { BlockCopyState *bcs; BdrvChild *target; int64_t cluster_size; -} BDRVBackupTopState; +} BDRVCopyBeforeWriteState; =20 -static coroutine_fn int backup_top_co_preadv( +static coroutine_fn int cbw_co_preadv( BlockDriverState *bs, uint64_t offset, uint64_t bytes, QEMUIOVector *qiov, int flags) { return bdrv_co_preadv(bs->backing, offset, bytes, qiov, flags); } =20 -static coroutine_fn int backup_top_cbw(BlockDriverState *bs, uint64_t offs= et, - uint64_t bytes, BdrvRequestFlags fl= ags) +static coroutine_fn int cbw_cbw(BlockDriverState *bs, uint64_t offset, + uint64_t bytes, BdrvRequestFlags flags) { - BDRVBackupTopState *s =3D bs->opaque; + BDRVCopyBeforeWriteState *s =3D bs->opaque; uint64_t off, end; =20 if (flags & BDRV_REQ_WRITE_UNCHANGED) { @@ -63,10 +63,10 @@ static coroutine_fn int backup_top_cbw(BlockDriverState= *bs, uint64_t offset, return block_copy(s->bcs, off, end - off, true); } =20 -static int coroutine_fn backup_top_co_pdiscard(BlockDriverState *bs, - int64_t offset, int bytes) +static int coroutine_fn cbw_co_pdiscard(BlockDriverState *bs, + int64_t offset, int bytes) { - int ret =3D backup_top_cbw(bs, offset, bytes, 0); + int ret =3D cbw_cbw(bs, offset, bytes, 0); if (ret < 0) { return ret; } @@ -74,10 +74,10 @@ static int coroutine_fn backup_top_co_pdiscard(BlockDri= verState *bs, return bdrv_co_pdiscard(bs->backing, offset, bytes); } =20 -static int coroutine_fn backup_top_co_pwrite_zeroes(BlockDriverState *bs, +static int coroutine_fn cbw_co_pwrite_zeroes(BlockDriverState *bs, int64_t offset, int bytes, BdrvRequestFlags flags) { - int ret =3D backup_top_cbw(bs, offset, bytes, flags); + int ret =3D cbw_cbw(bs, offset, bytes, flags); if (ret < 0) { return ret; } @@ -85,12 +85,12 @@ static int coroutine_fn backup_top_co_pwrite_zeroes(Blo= ckDriverState *bs, return bdrv_co_pwrite_zeroes(bs->backing, offset, bytes, flags); } =20 -static coroutine_fn int backup_top_co_pwritev(BlockDriverState *bs, - uint64_t offset, - uint64_t bytes, - QEMUIOVector *qiov, int flag= s) +static coroutine_fn int cbw_co_pwritev(BlockDriverState *bs, + uint64_t offset, + uint64_t bytes, + QEMUIOVector *qiov, int flags) { - int ret =3D backup_top_cbw(bs, offset, bytes, flags); + int ret =3D cbw_cbw(bs, offset, bytes, flags); if (ret < 0) { return ret; } @@ -98,7 +98,7 @@ static coroutine_fn int backup_top_co_pwritev(BlockDriver= State *bs, return bdrv_co_pwritev(bs->backing, offset, bytes, qiov, flags); } =20 -static int coroutine_fn backup_top_co_flush(BlockDriverState *bs) +static int coroutine_fn cbw_co_flush(BlockDriverState *bs) { if (!bs->backing) { return 0; @@ -107,7 +107,7 @@ static int coroutine_fn backup_top_co_flush(BlockDriver= State *bs) return bdrv_co_flush(bs->backing->bs); } =20 -static void backup_top_refresh_filename(BlockDriverState *bs) +static void cbw_refresh_filename(BlockDriverState *bs) { if (bs->backing =3D=3D NULL) { /* @@ -120,11 +120,11 @@ static void backup_top_refresh_filename(BlockDriverSt= ate *bs) bs->backing->bs->filename); } =20 -static void backup_top_child_perm(BlockDriverState *bs, BdrvChild *c, - BdrvChildRole role, - BlockReopenQueue *reopen_queue, - uint64_t perm, uint64_t shared, - uint64_t *nperm, uint64_t *nshared) +static void cbw_child_perm(BlockDriverState *bs, BdrvChild *c, + BdrvChildRole role, + BlockReopenQueue *reopen_queue, + uint64_t perm, uint64_t shared, + uint64_t *nperm, uint64_t *nshared) { if (!(role & BDRV_CHILD_FILTERED)) { /* @@ -149,41 +149,41 @@ static void backup_top_child_perm(BlockDriverState *b= s, BdrvChild *c, } } =20 -BlockDriver bdrv_backup_top_filter =3D { - .format_name =3D "backup-top", - .instance_size =3D sizeof(BDRVBackupTopState), +BlockDriver bdrv_cbw_filter =3D { + .format_name =3D "copy-before-write", + .instance_size =3D sizeof(BDRVCopyBeforeWriteState), =20 - .bdrv_co_preadv =3D backup_top_co_preadv, - .bdrv_co_pwritev =3D backup_top_co_pwritev, - .bdrv_co_pwrite_zeroes =3D backup_top_co_pwrite_zeroes, - .bdrv_co_pdiscard =3D backup_top_co_pdiscard, - .bdrv_co_flush =3D backup_top_co_flush, + .bdrv_co_preadv =3D cbw_co_preadv, + .bdrv_co_pwritev =3D cbw_co_pwritev, + .bdrv_co_pwrite_zeroes =3D cbw_co_pwrite_zeroes, + .bdrv_co_pdiscard =3D cbw_co_pdiscard, + .bdrv_co_flush =3D cbw_co_flush, =20 - .bdrv_refresh_filename =3D backup_top_refresh_filename, + .bdrv_refresh_filename =3D cbw_refresh_filename, =20 - .bdrv_child_perm =3D backup_top_child_perm, + .bdrv_child_perm =3D cbw_child_perm, =20 .is_filter =3D true, }; =20 -BlockDriverState *bdrv_backup_top_append(BlockDriverState *source, - BlockDriverState *target, - const char *filter_node_name, - uint64_t cluster_size, - BackupPerf *perf, - BdrvRequestFlags write_flags, - BlockCopyState **bcs, - Error **errp) +BlockDriverState *bdrv_cbw_append(BlockDriverState *source, + BlockDriverState *target, + const char *filter_node_name, + uint64_t cluster_size, + BackupPerf *perf, + BdrvRequestFlags write_flags, + BlockCopyState **bcs, + Error **errp) { ERRP_GUARD(); int ret; - BDRVBackupTopState *state; + BDRVCopyBeforeWriteState *state; BlockDriverState *top; bool appended =3D false; =20 assert(source->total_sectors =3D=3D target->total_sectors); =20 - top =3D bdrv_new_open_driver(&bdrv_backup_top_filter, filter_node_name, + top =3D bdrv_new_open_driver(&bdrv_cbw_filter, filter_node_name, BDRV_O_RDWR, errp); if (!top) { return NULL; @@ -210,7 +210,7 @@ BlockDriverState *bdrv_backup_top_append(BlockDriverSta= te *source, =20 ret =3D bdrv_append(top, source, errp); if (ret < 0) { - error_prepend(errp, "Cannot append backup-top filter: "); + error_prepend(errp, "Cannot append copy-before-write filter: "); goto fail; } appended =3D true; @@ -231,7 +231,7 @@ BlockDriverState *bdrv_backup_top_append(BlockDriverSta= te *source, =20 fail: if (appended) { - bdrv_backup_top_drop(top); + bdrv_cbw_drop(top); } else { bdrv_unref(top); } @@ -241,9 +241,9 @@ fail: return NULL; } =20 -void bdrv_backup_top_drop(BlockDriverState *bs) +void bdrv_cbw_drop(BlockDriverState *bs) { - BDRVBackupTopState *s =3D bs->opaque; + BDRVCopyBeforeWriteState *s =3D bs->opaque; =20 bdrv_drop_filter(bs, &error_abort); =20 diff --git a/MAINTAINERS b/MAINTAINERS index 78561a223f..4321f67fef 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2281,8 +2281,8 @@ F: block/mirror.c F: qapi/job.json F: block/block-copy.c F: include/block/block-copy.c -F: block/backup-top.h -F: block/backup-top.c +F: block/copy-before-write.h +F: block/copy-before-write.c F: include/block/aio_task.h F: block/aio_task.c F: util/qemu-co-shared-resource.c diff --git a/block/meson.build b/block/meson.build index e687c54dbc..6e27aa9624 100644 --- a/block/meson.build +++ b/block/meson.build @@ -4,7 +4,7 @@ block_ss.add(files( 'aio_task.c', 'amend.c', 'backup.c', - 'backup-top.c', + 'copy-before-write.c', 'blkdebug.c', 'blklogwrites.c', 'blkverify.c', diff --git a/tests/qemu-iotests/283 b/tests/qemu-iotests/283 index 010c22f0a2..a09e0183ae 100755 --- a/tests/qemu-iotests/283 +++ b/tests/qemu-iotests/283 @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # group: auto quick # -# Test for backup-top filter permission activation failure +# Test for copy-before-write filter permission conflict # # Copyright (c) 2019 Virtuozzo International GmbH. # @@ -31,13 +31,13 @@ size =3D 1024 * 1024 """ Test description =20 When performing a backup, all writes on the source subtree must go through= the -backup-top filter so it can copy all data to the target before it is chang= ed. -backup-top filter is appended above source node, to achieve this thing, so= all -parents of source node are handled. A configuration with side parents of s= ource -sub-tree with write permission is unsupported (we'd have append several -backup-top filter like nodes to handle such parents). The test create an -example of such configuration and checks that a backup is then not allowed -(blockdev-backup command should fail). +copy-before-write filter so it can copy all data to the target before it is +changed. copy-before-write filter is appended above source node, to achie= ve +this thing, so all parents of source node are handled. A configuration with +side parents of source sub-tree with write permission is unsupported (we'd= have +append several copy-before-write filter like nodes to handle such parents)= . The +test create an example of such configuration and checks that a backup is t= hen +not allowed (blockdev-backup command should fail). =20 The configuration: =20 @@ -57,11 +57,10 @@ The configuration: =E2=94=82 base =E2=94=82 =E2=97=80=E2=94=80= =E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80 =E2=94=82 other =E2=94=82 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2=94= =80=E2=94=98 =E2=94=94=E2=94=80=E2=94=80=E2=94=80=E2=94=80=E2= =94=80=E2=94=80=E2=94=80=E2=94=98 =20 -On activation (see .active field of backup-top state in block/backup-top.c= ), -backup-top is going to unshare write permission on its source child. Write -unsharing will be propagated to the "source->base" link and will conflict = with -other node write permission. So permission update will fail and backup job= will -not be started. +copy-before-write filter wants to unshare write permission on its source c= hild. +Write unsharing will be propagated to the "source->base" link and will con= flict +with other node write permission. So permission update will fail and backu= p job +will not be started. =20 Note, that the only thing which prevents backup of running on such configuration is default permission propagation scheme. It may be altered = by @@ -99,13 +98,9 @@ vm.qmp_log('blockdev-backup', sync=3D'full', device=3D's= ource', target=3D'target') vm.shutdown() =20 =20 -print('\n=3D=3D=3D backup-top should be gone after job-finalize =3D=3D=3D\= n') +print('\n=3D=3D=3D copy-before-write filter should be gone after job-final= ize =3D=3D=3D\n') =20 -# Check that the backup-top node is gone after job-finalize. -# -# During finalization, the node becomes inactive and can no longer -# function. If it is still present, new parents might be attached, and -# there would be no meaningful way to handle their I/O requests. +# Check that the copy-before-write node is gone after job-finalize. =20 vm =3D iotests.VM() vm.launch() @@ -131,7 +126,7 @@ vm.qmp_log('blockdev-backup', =20 vm.event_wait('BLOCK_JOB_PENDING', 5.0) =20 -# The backup-top filter should still be present prior to finalization +# The copy-before-write filter should still be present prior to finalizati= on assert vm.node_info('backup-filter') is not None =20 vm.qmp_log('job-finalize', id=3D'backup') diff --git a/tests/qemu-iotests/283.out b/tests/qemu-iotests/283.out index 97e62a4c94..e08f807dab 100644 --- a/tests/qemu-iotests/283.out +++ b/tests/qemu-iotests/283.out @@ -5,9 +5,9 @@ {"execute": "blockdev-add", "arguments": {"driver": "blkdebug", "image": "= base", "node-name": "other", "take-child-perms": ["write"]}} {"return": {}} {"execute": "blockdev-backup", "arguments": {"device": "source", "sync": "= full", "target": "target"}} -{"error": {"class": "GenericError", "desc": "Cannot append backup-top filt= er: Conflicts with use by source as 'image', which does not allow 'write' o= n base"}} +{"error": {"class": "GenericError", "desc": "Cannot append copy-before-wri= te filter: Conflicts with use by source as 'image', which does not allow 'w= rite' on base"}} =20 -=3D=3D=3D backup-top should be gone after job-finalize =3D=3D=3D +=3D=3D=3D copy-before-write filter should be gone after job-finalize =3D= =3D=3D =20 {"execute": "blockdev-add", "arguments": {"driver": "null-co", "node-name"= : "source"}} {"return": {}} --=20 2.29.2 From nobody Sat May 18 07:08:56 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=1621234672; cv=pass; d=zohomail.com; s=zohoarc; b=ZevIFTfwmwNynr8+BlI+ye+Vrq+IVMXKcX/ijMuUAtT2WKbIAVtKcdKvIrdjzgczzZNMG4FHFDljQdXCxgauY4I/rqERTGy/no+fizsbNvrc/TB9704Bg/05APkpafmDEDOel1QYjFJ7vjQOLmcIZke5lxOl8QBipVxr6n7CoD0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234672; 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=fJFHJ2LoQ9J+j9cZGvpG4uMgiGxrP2lLDYlBOru754E=; b=CXofpLQ4SB6dDayGQ6ogaam1h44XFVym6IC4ES7XIUV5+kaTsum5BnufdpwksRnuXguESHrXmZqnSoCAvxdAUe4vIjkHkbxQlkZEFLW/VNjXk61S0ou6wPRV+zsBaHb1tAsyPcXmVr2DUHTLubIuXUtzqR12iIyV0PrbTb//81s= 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 1621234672604755.8423714224144; Sun, 16 May 2021 23:57:52 -0700 (PDT) Received: from localhost ([::1]:32906 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liXCJ-0007ZP-Fk for importer@patchew.org; Mon, 17 May 2021 02:57:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33352) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX05-0003jQ-U9; Mon, 17 May 2021 02:45:14 -0400 Received: from mail-eopbgr30130.outbound.protection.outlook.com ([40.107.3.130]:60322 helo=EUR03-AM5-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 1liWzu-0001jR-L5; Mon, 17 May 2021 02:45:12 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB3382.eurprd08.prod.outlook.com (2603:10a6:20b:47::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.26; Mon, 17 May 2021 06:44:53 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:44:53 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:44:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fGLHoRNzBO0U2qLG84fCMEICa7NSUlL84E/+Kdb1wKaY8SMNMtbfN5aiuQFZO+bZ18g06nb917qj71Pk4M7piSs4aHbkrzM6tazX/qY9VfdtcpiZFmkbOUkPuUO4CwdIQA03cB9579WaoRhcsVwnqk+06KSmAo+Zs+xlo8yKM1lYUxaIDY3yO9jsOQeUMw+ZZ55rVVsJnZMQx31gH8srnwycxygKw4A4cu2Ltoi8XdVpUsHI9JnTRZnpQtdb4fbsTcPh+jTCvcEc5xMGuChC5cO9SPGFf7fVp9VnV5QnuOuuJOgL6+Td/q+HHykgT4QU6cBSPykQ5NyJjz8c3GTDqg== 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=fJFHJ2LoQ9J+j9cZGvpG4uMgiGxrP2lLDYlBOru754E=; b=Pi5lA4UXSH2KJc4VNUJACXad6FP6YOSZU/ZKJMNyfPElJF9n2lpJ63ml0wsJ8aoGuGXK2s9uKMvt+WUidrec1qtwqc4qrvArW3AA08JsX50LFnZHhX3uXzsvanEhNyXdkb7nrIa79Wca1sv4AabNgu/8o37zvTKDRXEgWvcmtGTWNpuR9AiAfT93nZkdLrtf2Xf+HpPKxwRRGjmTmRVdGPVrqGsL4bFOYm6dSTdQsKIvjTXdYGr4qMFxBCy7aDRAPaFlqC2ZL3pDgjUhHwp1ZPNKX3oAe4CeHiii1xM7woJyOVvcjnsSV/elOpVaXhCvj8DR6RhNgF5i+vD/8PJaqg== 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=fJFHJ2LoQ9J+j9cZGvpG4uMgiGxrP2lLDYlBOru754E=; b=dLt3BHMAl/pzRd0LoTTLdj08eh758LUGJIPKde5Prn5BWKrFPNSBT5yr30ZpX+ozXq0+SE/QisA/qI0vG7EHhJZMHO3QNibC5Sr70WRlnRB2kUqtXaUPSH379A+K7lRKz3SbBzAEnPyKyHJZL8vcBa+bRNX6sytZO7iE+mD8ZWI= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 06/21] block/backup: drop support for copy_range Date: Mon, 17 May 2021 09:44:13 +0300 Message-Id: <20210517064428.16223-8-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: a62eb10c-0ad0-4423-4a22-08d918ff46b2 X-MS-TrafficTypeDiagnostic: AM6PR08MB3382: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1728; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ZgqL1rX7tByAXtJgxJKVe5n/vVfE3Zz4noVbSvdtMA+gZA2Dj8fHbv6OLR6e2CXEpoclC4eoEdt21zTpvtHYRY8w6L8x3xyRzd+a7xnfQ2lrB4Pbv2LeYiUvMV/hpZNckeIwEK5HwVI/vJlmg7VbL3iQNPqtOIwM5t58ozdsKi4fylo/+H/Nude52AeOyvo/2PRM+9tojcslCW/UxVK9Mylb9GKlclH3pM3kibs7scFC65Lfp0imzy5zLqYS7DnL8hj2fgH0H+R4JAtCU3Z81uhTWHtkPBu3uqIT6xnwBWcEUjQepaOAvIZ2yBAxL7mwi+RKSc4qDiIsVuvmiAEl0IqO2RCs+8WPiPEajhLdL6X7Ku4NPE4ttf63RN0gM4sTXTyjACSuIBbHOuuGK7xihTSI21Kk8BsD99B6UOtPUnlE1UYolWeePFzRV0xzk19prAvkieuZ6VquIW7CQX9BVoobV1RtPS5c3CKk5U9RW8VQ/6Pb/Scf6jJ8LrlitooyLm6+DS88DaR6+Drno1sQQrM+6cAbJV6XKPHTBoqx6yPK/Td8A+KkBtLtbY83sreoiVnNMHRRiM79eUMDga5D60XN9wohDNRqg8dm8qb3pR1IueDyUZFzY54iQU/tpY6IHv/ilf+efsu97ZvS/N8swSN1B79EhfV0aBRas6UTAd2VHwAZA4WILVQv00oBlvjm 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)(366004)(346002)(396003)(136003)(39840400004)(6486002)(26005)(2906002)(316002)(36756003)(66946007)(1076003)(107886003)(5660300002)(16526019)(186003)(478600001)(38350700002)(38100700002)(8676002)(6666004)(86362001)(2616005)(66556008)(52116002)(8936002)(66476007)(83380400001)(6916009)(6506007)(6512007)(956004)(7416002)(4326008)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?ruiMrYoENrBcSOGp2HcJIXZJjJEFKAIomvp9j7pdds8fJAbUV92uwP3Dg7I/?= =?us-ascii?Q?WMPY0XmgkG2Aoo++3PCobBhdpslc080a3IWkQ4tlG41bEBg+WF8i2knMgYG5?= =?us-ascii?Q?wUVOjS5v2532VrDesvmJhW9zau5fs54l5pGpQB4pXWPH1Np9WP5xVNj0Eevp?= =?us-ascii?Q?KASgB5RggYMkJ6j0AlSUwM7LhfwEwGv9/Lb5Cv2yIjNJe9VGJHENkn8aAtST?= =?us-ascii?Q?VkP2q5G3y5UJ+boxbi1i+WWeCyYsOkrg1IZ+m4uio4ppI4mYACIJQdxOoJK0?= =?us-ascii?Q?62V0Jp01/jt82ayHD4TUtvv0l6W6l82OAJxHcreUVddbdunpa+8Mmsb5cxfC?= =?us-ascii?Q?TwRAVeKiPtaMTGiM1QM9NzHBnFK4Ap5AzLkXhqOm+fSuE9gxtsW9qXVE+X2R?= =?us-ascii?Q?ivdSp89aJbyc/+Kk7Q08dz3N1l0HV6Cs8hNg2410rzIW+4vD7yH3zknjrJnI?= =?us-ascii?Q?IBK3E0usYj34OlV+OpIWeekmVg0MDWdOtk69Ir99M7nLJBp27o+tYStwTjY4?= =?us-ascii?Q?A+5GsJ+plSRCZ9BItH2b9FJz73oUxehOVzww1X1dHQytp21q0A4WUzap4VWN?= =?us-ascii?Q?1D1Sb5uO1vcC5eRi7av/oEV0PQ8DseWhYLFFi0SkRgFw69NSaGl1Xm/wwtQd?= =?us-ascii?Q?I1DplIoceK7B5zi7LMtW9GCGeuN9S0OsyE3DUfabcHooDKcF/kb8P/nK+208?= =?us-ascii?Q?y1y1CPDYzLXasEIJHMsodDt9oAZ9QzgS3B8Xv9ajeuNEIaKK60MjvJPiAGtg?= =?us-ascii?Q?Mz+JyNjGMI1ArH/8pY3LwDpKimbTFxiU2ft4xP7fpAxPhYFcek5YZHXAmVng?= =?us-ascii?Q?ggHDQlOuQt4GMQNm2dKcklTipAgNSEJkjUrGM/021dP9v5fUOrJ2Gbqa6Xx4?= =?us-ascii?Q?IwZqRPHDK1KC02VRIQNQ1gMFxOBEJtAOWh53bsAYeA4goVbR7ZpCB3y7n10m?= =?us-ascii?Q?p3zYX1KC9kiS4JgaSpQipzq7Tqh6wGAkeAmnq3hR3pr+o4yF71o0I3Yh1xvR?= =?us-ascii?Q?Q7GwR5cb/ENRv2RCp+s0bmcwDq8+5PbnR9vw8nXzLtXKDodXBMp6yW8l2tKb?= =?us-ascii?Q?S6D2yxQdTfRNoSIo/f0oAPCQlzBp1iU2kYg3eJLVeaMjeOcby7Pg8GOmvTrN?= =?us-ascii?Q?ntfxPaeLIEi3Itzhpq3ZLmsESoXQLAa3ypYzcp63GIYp2Qmvzzz1vQEFqfkh?= =?us-ascii?Q?Tsj/VGLNcsVSJOmZDh7wYe6Ekr0taiPTJ5mPh9D05nS+n3GkxpIk22UZ5Jw0?= =?us-ascii?Q?co8X9wrLMjMAYBPNjN816p6M8JozHM65f3fS5mh42qQYDQe98BYQrJrZRf8r?= =?us-ascii?Q?/NPaN1RJqz3iBF5VqBg9TOnU?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: a62eb10c-0ad0-4423-4a22-08d918ff46b2 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:44:53.3135 (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: i9xg0DFE6ny+ScTVyK2fn+MhOk49Q29Fmgh3d4igDEQQdABsRlZBqFNV4vNeiejmAqpQIF33vObys9yU+jcpO0Coke1EGQU5FFtEd3HDckQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3382 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.3.130; envelope-from=vsementsov@virtuozzo.com; helo=EUR03-AM5-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, 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" copy_range is not a default behavior since 6a30f663d4c0b3c, and it's now available only though x-perf experimantal argument, so it's OK to drop it. Even when backup is used to copy disk to same filesystem, and filesystem supports zero-copy copy_range, copy_range is probably not what we want for backup: backup has good property of making a copy of active disk, with no impact to active disk itself (unlike creating a snapshot). And if copy_range instead of copying data adds fs-level references, and on next guest write COW operation occurs, it's seems most possible, that new block will be allocated for original vm disk, not for backup disk. Thus, fragmentation of original disk will increase. We can simply add support back on demand. Now we want to publish copy-before-write filter, and instead of thinking how to pass use-copy-range argument to block-copy (create x-block-copy parameter for new public filter driver, or may be set it by hand after filter node creation?), instead of this let's just drop copy-range support in backup for now. After this patch copy-range support in block-copy becomes unused. Let's keep it for a while, it won't hurt: 1. If there would be request for supporting copy_range in backup (and/or in a new public copy-before-write filter), it will be easy to satisfy it. 2. Probably, qemu-img convert will reuse block-copy, and qemu-img has option to enable copy-range. qemu-img convert is not a backup, and copy_range may be more reasonable for some cases in context of qemu-img convert. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Max Reitz --- block/copy-before-write.h | 1 - block/backup.c | 3 +-- block/copy-before-write.c | 4 +--- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/block/copy-before-write.h b/block/copy-before-write.h index 5977b7aa31..e284dfb6a7 100644 --- a/block/copy-before-write.h +++ b/block/copy-before-write.h @@ -33,7 +33,6 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *sourc= e, BlockDriverState *target, const char *filter_node_name, uint64_t cluster_size, - BackupPerf *perf, BdrvRequestFlags write_flags, BlockCopyState **bcs, Error **errp); diff --git a/block/backup.c b/block/backup.c index 0b5887269c..7c7a88a0f7 100644 --- a/block/backup.c +++ b/block/backup.c @@ -522,8 +522,7 @@ BlockJob *backup_job_create(const char *job_id, BlockDr= iverState *bs, (compress ? BDRV_REQ_WRITE_COMPRESSED : 0), =20 cbw =3D bdrv_cbw_append(bs, target, filter_node_name, - cluster_size, perf, - write_flags, &bcs, errp); + cluster_size, write_flags, &bcs, errp); if (!cbw) { goto error; } diff --git a/block/copy-before-write.c b/block/copy-before-write.c index 40e91832d7..fe087a7347 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -170,7 +170,6 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *sou= rce, BlockDriverState *target, const char *filter_node_name, uint64_t cluster_size, - BackupPerf *perf, BdrvRequestFlags write_flags, BlockCopyState **bcs, Error **errp) @@ -217,8 +216,7 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *sou= rce, =20 state->cluster_size =3D cluster_size; state->bcs =3D block_copy_state_new(top->backing, state->target, - cluster_size, perf->use_copy_range, - write_flags, errp); + cluster_size, false, write_flags, er= rp); if (!state->bcs) { error_prepend(errp, "Cannot create block-copy-state: "); goto fail; --=20 2.29.2 From nobody Sat May 18 07:08:56 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=1621234224; cv=pass; d=zohomail.com; s=zohoarc; b=CzMrM0t2K6wVSqAGyCOJTcsDVQhVzL+TtCvuaeDOmjXeEmP7Ct9Q2lyV4im9mdMfSJw1hXtHVHnDm6DUNWkAoOZV4KW2mxziCoPqCMmbtRmBULXwtUk0GqIGV9S7BqNLDscm9XIVv3pySQjGyXC3Lz3gYv3VYxFWKadGznUqYvQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234224; 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=A/TMvYmL5sdm16WtH2F/ZOSQmT0UNIT7cqYJwuZyc2g=; b=OmuQNpNw+/iQlPMSY8u/pgva8E3WggazwZs20qy34zex+WDKwFWI/23lyQZ8/Vhfjsvpufynbi0ppwaJK6jgOuwwk3HQ4d7L+HvQwalhskF03QEZ47e6A/OBFscyElS4az155ibpY5Mc3Aj5W6ZhPJMtSvprn7ykW0GaHTgSkVo= 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 16212342241885.763680792075775; Sun, 16 May 2021 23:50:24 -0700 (PDT) Received: from localhost ([::1]:41826 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liX55-0002x7-3l for importer@patchew.org; Mon, 17 May 2021 02:50:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33408) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX0F-0003ru-T6; Mon, 17 May 2021 02:45:23 -0400 Received: from mail-eopbgr30113.outbound.protection.outlook.com ([40.107.3.113]:13457 helo=EUR03-AM5-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 1liX04-0001tv-V1; Mon, 17 May 2021 02:45:23 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB3382.eurprd08.prod.outlook.com (2603:10a6:20b:47::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.26; Mon, 17 May 2021 06:44:54 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:44:54 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:44:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hVXwD1Pg0qyFmy5NvflSRNAHvrF32R1ynrIXtDQTo+8+ZoJ61MgPa12r5SY71Srvw2qbditveCajMe11HKhjO4fZe7PuqX/6ONwoYkn0F0l1ue35LAGk0mAV8safGSGBnaUsaivXbkYkPn5OMALUS+qFX0NBYOp87PI8IwH6DQdEaoXTR3vs8JmuwMIsYxfnH7FhPCNs4TZtOnvxm9gdRsvO+u8Zx3pF6XpYKaFbZjCx+Lt4PX77IPRST1k/dcarDKTEgzG3o4+STw/dIXtuN0SEAQnX0gsdSxwodV3BaKYvswFJYJaiBiM6eLYTJXvuax7w2ieumusUmGGTRnZsqA== 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=A/TMvYmL5sdm16WtH2F/ZOSQmT0UNIT7cqYJwuZyc2g=; b=V0ADq0+ytm2YBSHG09Z/FLZ0+ap5j7KO6MMWXqOspRabsVZ43bkxAgBWg3y8AgKrh2f0Se768fxuETxexaUjB+vqDLJ0CxDmg3FW74+AF6nbL7/7Dz1YWdG8mCwYWFh4mHz0odV9lZ9NmSXzwS6/pX3h7FZlQn7Fvfzk5KGzEiFV4okUBd2ZHPX3bU+RZFtsvnVgtwz8pbMtBl1RT1T0XpToplLWGHordQwS3wI6S7tbjJlpsTgbOhZ2xMnQlyMayetEGwYSnI+ku+wfuDHTHT13sNuSw6TvMXjHo8hTd6q5eBCIgxFGKw6WjL+676Q2QCM/WCTCouS7UWeq+Tw87Q== 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=A/TMvYmL5sdm16WtH2F/ZOSQmT0UNIT7cqYJwuZyc2g=; b=TerDgpzMcGTRGVwhbF9lA0LsePsdoInnNTEkkfWSUAh5XIq143xiTq8RUCQ7hahNEpIgbE9CSDVuF7Jn146zy4Tkujhh8QP4wyOIH3Eh6Hx+zi1qDPk6TTzauMnwmnltVeLQ7oNM5aaRyzukNa5j+8C7PrlMPoWAHcQYag7gWpg= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 07/21] block-copy: always set BDRV_REQ_SERIALISING flag Date: Mon, 17 May 2021 09:44:14 +0300 Message-Id: <20210517064428.16223-9-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 009a4d83-144f-4cc4-44f6-08d918ff4782 X-MS-TrafficTypeDiagnostic: AM6PR08MB3382: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:108; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: LKcA78BC7o9CqIxuNXwLB8CJG64zJ4FzdUfVa1cHplEzDqZQMrrkNUsqDpN2r7o2DUjcGz+uJe6NLjhA4XLYymBcoAby3lDsOfx4ueZNTaW3l5PzuFfY1e+nR0h+1nAUo72fGWQ1ZNZfy029dd80fSZd2TLiywGnkqyApjCajI/B6Bn+YlEyDRA9GXM7p8JuwpSGCJPpGjSTDv/UGJ5QlmEwZJiIoykvbV2/dRGVv5TFgixuuvFxZfNA92KsQE+idqmsJyT9jYSyK0vsjvun9z13C5eQKLBTcULu3fzFfHmdZI2SkkW3DPNUnxQkEHhOjxGp9EMDa3m5cwRFweTgO9tlyXmwyQy4YlVdCoBbKV+jrOt0x+arfxdwGh1GzQikwB4SMGptRVxuTBHF95g/BxKfFToXZ0mv5TdS0lNKKVbbuuZmqh88S0zSYkD/De2f2AZ0/5gWamdwiklFYg0LrgqiNpBnNV8dyCF9LD7NiYreJv4cgUGaJfiRSbxUEniXOuVKOzaeDPrUt9/+a3vndYaqd2at2LH5/jBflde6EQpKIRn6iWdcVN2dRNgnJgxQ5RetWIXnj6BFTrW571LsLG2tCr3P3jPUmZO9uxkn3VbfrJo6lVRGeQia9LoeovpwnaC2ug7afGYQ/PLUqwjjznYnO83dsfKUuVgjtENzLvr4PeBOQPjNZl+GEOjMnVV7 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)(366004)(346002)(396003)(136003)(39840400004)(6486002)(26005)(2906002)(316002)(36756003)(66946007)(1076003)(107886003)(5660300002)(16526019)(186003)(478600001)(38350700002)(38100700002)(8676002)(6666004)(86362001)(2616005)(66556008)(52116002)(8936002)(66476007)(83380400001)(6916009)(6506007)(6512007)(956004)(7416002)(4326008)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?yOShxwjmoWIjZ1eBZkTwZcjO/X9R2eJ3WXIaKJPGOtZrYpy0t4KmPm53np1o?= =?us-ascii?Q?HX2vIbxptGz9C2EzirjnM+ts8/dCB5FawKsJry8IMEa92H1ukvhJ1n3uWp+Y?= =?us-ascii?Q?cE8CJze47K0gW8VTScgX5vX2KFBASRDCIXlpCsdaMGPdZnkJiaEOmoDp//RD?= =?us-ascii?Q?y9A2Kg/yFKw5Rtky8LnCZBv2nRaGKNzZl1Sa6ERvxCCD7njPwZpjAsWT7vOM?= =?us-ascii?Q?bMQ9pDqKlSPybWIj0cEaUsDJ5xc+LIeQLWLWeG7GvhE0UJIhfNkpko5WB3xm?= =?us-ascii?Q?5Ks3g3aLEBW0zLrX5Hw7OKLirF/H+h8n29HP4yjys7xkfPfIYIGhFfbfECms?= =?us-ascii?Q?RWH3gzR9eO1oTZfbgB1xUEGcpeWMCoKjW7CWXGzaZOa10erT9xO8SBjofR+f?= =?us-ascii?Q?8AFJqlAXC8dAJsHabws8/jVihe239uYnHnuJrmFRG6t/QIDPaYIqCJ5ciICt?= =?us-ascii?Q?KDAcyrvYSO+TIeysciV8K9Eln7wc1HQqGfqOOo+gUEeZX9JJiYcXLwkHIAXT?= =?us-ascii?Q?9f8MaL3lLREE9cNdtw+4Ak1KqDYfRiD78UkmdWrWCTQr3xG7M4sEsKhuO7HE?= =?us-ascii?Q?dGsMIyoUlTIxBVw5Ufw4av3WxbuR47yev5EQKBeODAJx1MNJRFAJzGrToJBv?= =?us-ascii?Q?aruhGwC0nV5ycCauC7ysLNrRInLTbC+hJYN5oMZ3jkzMoy+PkbWIg9K+F/Ak?= =?us-ascii?Q?PalzzZ1HO+6SulIeEm20GggEvWZanfhkfnAnCpiqXAc3jvKOjeZq7JkBs+Uu?= =?us-ascii?Q?JjzxA1L48rSHuRFcoXvyn8T7ExZP7Bvq764YvpSVSFaEt+2ZFJIXS+g3ugGP?= =?us-ascii?Q?eDRyh0Rg5upJYCs8bQHRIpT2jdwPpjnNJyjdwT0P4onTbsg4jly673San+W9?= =?us-ascii?Q?7/PENd3qIV1len68YibtkNOxpu14rx96lUapJB2NX5XZ1VZ0hz9qZMQW/wx9?= =?us-ascii?Q?HE7maYBUBFlQRv1STheIINR4oeDSnSZZ3XrvoMW2IVCnWjrYPJvcl2EgbeT2?= =?us-ascii?Q?pghp0Cr627y51y3Hw0BDMvwJR9d0gSWAGZjasQqP69oWboKxcoIep1hu8c6z?= =?us-ascii?Q?X6WsTZjzBSKB+a/FcbBrNfZVIoq5tEUgBCRoPpoHdIMK4ob9p8I1JBwY19mY?= =?us-ascii?Q?NEj9wWLQGebHjv8GHeIuXNPheUZP2esNKlhiuz8j9xC6f7wG6mK/wiQ1DJ5i?= =?us-ascii?Q?ITez1pAdM0zDUpePY5NNrFB7yqvxjClV6B3FVkttAy9zN6IKxX0K2wkgnYc7?= =?us-ascii?Q?NxVikP5UqdpMjza5+1HXx0osEDRv1EOJacaD8D6ozxAe/+tF4b2ixw+q9cMx?= =?us-ascii?Q?VgGgSIJjc6NC5C/MgnDbDvQI?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 009a4d83-144f-4cc4-44f6-08d918ff4782 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:44:54.6635 (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: F5rpINXUe+RM+uBCOGSwQtaAxS3qRckEDxP0BBMbJUB4UhF9C2/oSobBWFGhqdqZnMm44WCEMKpQc2D9ydJtRlfQsxl0hrsOfoJjCQmJanE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3382 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.3.113; envelope-from=vsementsov@virtuozzo.com; helo=EUR03-AM5-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=unavailable 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" It won't hurt in common case, so let's not bother with detecting image fleecing. Also, we want to simplify initialization interface of copy-before-write filter as we are going to make it public. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Max Reitz --- block/copy-before-write.h | 2 +- include/block/block-copy.h | 3 +-- block/backup.c | 20 +------------------- block/block-copy.c | 29 ++++++++++++++++++++++++++--- block/copy-before-write.c | 4 ++-- 5 files changed, 31 insertions(+), 27 deletions(-) diff --git a/block/copy-before-write.h b/block/copy-before-write.h index e284dfb6a7..538aab8bdb 100644 --- a/block/copy-before-write.h +++ b/block/copy-before-write.h @@ -33,7 +33,7 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *sourc= e, BlockDriverState *target, const char *filter_node_name, uint64_t cluster_size, - BdrvRequestFlags write_flags, + bool compress, BlockCopyState **bcs, Error **errp); void bdrv_cbw_drop(BlockDriverState *bs); diff --git a/include/block/block-copy.h b/include/block/block-copy.h index 338f2ea7fd..c013a20e1e 100644 --- a/include/block/block-copy.h +++ b/include/block/block-copy.h @@ -24,8 +24,7 @@ typedef struct BlockCopyCallState BlockCopyCallState; =20 BlockCopyState *block_copy_state_new(BdrvChild *source, BdrvChild *target, int64_t cluster_size, bool use_copy_r= ange, - BdrvRequestFlags write_flags, - Error **errp); + bool compress, Error **errp); =20 void block_copy_set_progress_meter(BlockCopyState *s, ProgressMeter *pm); =20 diff --git a/block/backup.c b/block/backup.c index 7c7a88a0f7..fe685e411b 100644 --- a/block/backup.c +++ b/block/backup.c @@ -407,7 +407,6 @@ BlockJob *backup_job_create(const char *job_id, BlockDr= iverState *bs, int64_t len, target_len; BackupBlockJob *job =3D NULL; int64_t cluster_size; - BdrvRequestFlags write_flags; BlockDriverState *cbw =3D NULL; BlockCopyState *bcs =3D NULL; =20 @@ -504,25 +503,8 @@ BlockJob *backup_job_create(const char *job_id, BlockD= riverState *bs, goto error; } =20 - /* - * If source is in backing chain of target assume that target is going= to be - * used for "image fleecing", i.e. it should represent a kind of snaps= hot of - * source at backup-start point in time. And target is going to be rea= d by - * somebody (for example, used as NBD export) during backup job. - * - * In this case, we need to add BDRV_REQ_SERIALISING write flag to avo= id - * intersection of backup writes and third party reads from target, - * otherwise reading from target we may occasionally read already upda= ted by - * guest data. - * - * For more information see commit f8d59dfb40bb and test - * tests/qemu-iotests/222 - */ - write_flags =3D (bdrv_chain_contains(target, bs) ? BDRV_REQ_SERIALISIN= G : 0) | - (compress ? BDRV_REQ_WRITE_COMPRESSED : 0), - cbw =3D bdrv_cbw_append(bs, target, filter_node_name, - cluster_size, write_flags, &bcs, errp); + cluster_size, compress, &bcs, errp); if (!cbw) { goto error; } diff --git a/block/block-copy.c b/block/block-copy.c index 9b4af00614..daa1a2bf9f 100644 --- a/block/block-copy.c +++ b/block/block-copy.c @@ -245,7 +245,7 @@ static uint32_t block_copy_max_transfer(BdrvChild *sour= ce, BdrvChild *target) =20 BlockCopyState *block_copy_state_new(BdrvChild *source, BdrvChild *target, int64_t cluster_size, bool use_copy_r= ange, - BdrvRequestFlags write_flags, Error *= *errp) + bool compress, Error **errp) { BlockCopyState *s; BdrvDirtyBitmap *copy_bitmap; @@ -257,6 +257,28 @@ BlockCopyState *block_copy_state_new(BdrvChild *source= , BdrvChild *target, } bdrv_disable_dirty_bitmap(copy_bitmap); =20 + /* + * Why we always set BDRV_REQ_SERIALISING write flag: + * + * Assume source is in backing chain of target assume that target is g= oing + * to be used for "image fleecing", i.e. it should represent a kind of + * snapshot of source at backup-start point in time. And target is goi= ng to + * be read by somebody (for example, used as NBD export) during backup= job. + * + * In this case, we need to add BDRV_REQ_SERIALISING write flag to avo= id + * intersection of backup writes and third party reads from target, + * otherwise reading from target we may occasionally read already upda= ted by + * guest data. + * + * For more information see commit f8d59dfb40bb and test + * tests/qemu-iotests/222 + * + * Other cases? The only known reasonable case is "just copy to target= , and + * target is not used for something else". In this case BDRV_REQ_SERIA= LISING + * change nothing, so let's not bother with detecting the "image fleec= ing" + * case and enabling BDRV_REQ_SERIALISING only for it. + */ + s =3D g_new(BlockCopyState, 1); *s =3D (BlockCopyState) { .source =3D source, @@ -264,7 +286,8 @@ BlockCopyState *block_copy_state_new(BdrvChild *source,= BdrvChild *target, .copy_bitmap =3D copy_bitmap, .cluster_size =3D cluster_size, .len =3D bdrv_dirty_bitmap_size(copy_bitmap), - .write_flags =3D write_flags, + .write_flags =3D BDRV_REQ_SERIALISING | + (compress ? BDRV_REQ_WRITE_COMPRESSED : 0), .mem =3D shres_create(BLOCK_COPY_MAX_MEM), }; =20 @@ -277,7 +300,7 @@ BlockCopyState *block_copy_state_new(BdrvChild *source,= BdrvChild *target, */ s->use_copy_range =3D false; s->copy_size =3D cluster_size; - } else if (write_flags & BDRV_REQ_WRITE_COMPRESSED) { + } else if (compress) { /* Compression supports only cluster-size writes and no copy-range= . */ s->use_copy_range =3D false; s->copy_size =3D cluster_size; diff --git a/block/copy-before-write.c b/block/copy-before-write.c index fe087a7347..19472912d1 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -170,7 +170,7 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *sou= rce, BlockDriverState *target, const char *filter_node_name, uint64_t cluster_size, - BdrvRequestFlags write_flags, + bool compress, BlockCopyState **bcs, Error **errp) { @@ -216,7 +216,7 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *sou= rce, =20 state->cluster_size =3D cluster_size; state->bcs =3D block_copy_state_new(top->backing, state->target, - cluster_size, false, write_flags, er= rp); + cluster_size, false, compress, errp); if (!state->bcs) { error_prepend(errp, "Cannot create block-copy-state: "); goto fail; --=20 2.29.2 From nobody Sat May 18 07:08:56 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=1621234722; cv=pass; d=zohomail.com; s=zohoarc; b=Qxnn76a7sBLTSB25AoXnBzXatRwrjlwF+IUnXGCBCdbusVxB7Hcyb/F+gsOBxdofhiQZzFDVeWzyapfCjKOQMog6ZAELgcdnmYpDohQnUQU5p0SCHCkWu6QRgkH5B3RJQc4BtcvJg0q8hCAfkvotbUmbQ5x7YjpGNXRhD/CowjQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234722; 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=WTJyvzd4+etbxHJh4f3kVBLRfd5uMGSxz295JyyGir4=; b=T9zCO0mWnsBmRgHKng7w4OS0i1Jmarou1mGWq6/y+j2csdh2YWAp9M8no1HsTVr3+hl49Xx6W8mTn3/5iUZf3KozqxdQyyqvv2MLpaaSMIjMbOiupH2Wp8Xy98YblOzUf755HZrMZsj228MUF8GqXrJANrjSYIR3ASk+oEbOm78= 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 1621234722587986.716704574918; Sun, 16 May 2021 23:58:42 -0700 (PDT) Received: from localhost ([::1]:35530 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liXD7-0000uT-As for importer@patchew.org; Mon, 17 May 2021 02:58:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33410) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX0F-0003s0-UO; Mon, 17 May 2021 02:45:23 -0400 Received: from mail-eopbgr30130.outbound.protection.outlook.com ([40.107.3.130]:60322 helo=EUR03-AM5-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 1liX06-0001jR-LF; Mon, 17 May 2021 02:45:23 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB3382.eurprd08.prod.outlook.com (2603:10a6:20b:47::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.26; Mon, 17 May 2021 06:44:56 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:44:56 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:44:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T9JoE4j3Eu7AyMgnAi96mxCIZ6HbvDh9TO0QLoIK6JpqVvYr+izMpvTFx1CturTqSEpv8CGfUv9oHmcbKvl/a6MLQhRk+99vpV9QBayi/jBhYBm7DET3L59zAGGBEsHAXoefQle63j46E5hqViTephDtzn4ZRG9YmHIp/CkzVxXM5deaol3HIlrVKIOpwYO3AsnGwbf1DVVLJk4CpfMMTPj6irM1U0ZfoAtKx0ZInhbSdqrlgVyaUUDkMuWlOU/Rmcqy9wrvw9wAN4DRvufwG0RZywSFtDxiP5NO4TztRzm1piWiyoolp3VxuevYzgfr8vJcdb6lD3JsU9kkhK2TQA== 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=WTJyvzd4+etbxHJh4f3kVBLRfd5uMGSxz295JyyGir4=; b=jJrCK8kdVrtxYnHJFTtkeJ5tOf1i3yBP3qpPyg7rTepoxv82mTslHV59cAt8B2U89fEMCcZRhUdiwVvtELqKfnpIKYcVa0EcLjUK+Q+fuCU8KHI9HoGD4dt5xr7QECNcWqDYSRhieH4IMwJZlvlRYi/YOFsX6fWPwX4y0jmstrtjpa6U6k9FlReFrR7+u1Gjl4hS42tiOHzd1m7l19mrLeNyxVySo8LQI+drEEK6uWbFrI8yQ5649es5PbeiY04vJ/eekYYJzPLMoMA73Jb/crHwCA225IbgRUNfaBHOBl3dwEzGEotlCaO1opVoUPQZRpzr8y4XUHhabjWAijvhMA== 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=WTJyvzd4+etbxHJh4f3kVBLRfd5uMGSxz295JyyGir4=; b=CNIEfAAYHvx+JZKzna3PEsjeRsvrV3uzqg22BwQFudqocAN/3hx8D58+dyP5paEeDLhjScmKKjNzKyHyzLlgQ9ARMmv/DRvzStXS7pFayfHVS9+UACx3MqBnj40dIvx2V39XISCwPh7pg1bb8EtIr5I1Jt8Jum0flUL03djK3tg= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 08/21] block/backup: stricter backup_calculate_cluster_size() Date: Mon, 17 May 2021 09:44:15 +0300 Message-Id: <20210517064428.16223-10-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: ab0be603-9e3f-401d-e706-08d918ff4885 X-MS-TrafficTypeDiagnostic: AM6PR08MB3382: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:8273; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: CIZFROHiCaFGebFI2kRmG3DO9TZXhQWDMPpdkx5QN93IEbQ8NuyXOa2n36XA3icW6B9X6keyM1dJABCfmf+ehuR6as4yc9D/0tY20Z8eOsHY/ESWQA8e5vDmZFMA5IWYX78CDE5KticCXM6v76nFMV12CDlmh7lFLKc3BCrvCIkq0a2N3bocvBCgg18Y0wuP0VbTpmfcW75SMRcH3Qx6tVEzkzBkR788jvpg6XXKiLvnnjGQK5RMHTt9aRYlppJdEqHC4pmURKHmNQXzVpicqKH8W6kJ89YUeapRxt7TOsCXuYz7HybS2CvkWdejs5O3MNO2p5SL7cle+Qi8cibMR+ZbfjmAKKbRY3+lqW2joR4PDJv5fEEAtyXfreKfvSC55Txiqixe8dTpV3FZYl1Xl8SvX+oEAAKHLpGh+KchqMqFW6G8BtnZGt4UkXd3iRnUiYbSCKhLCOc3JBnNMoQnrppG8FIqDnCIxsVFA7eMS5/ddr6fAO8i16lym0MnXHKDIl+TrouKleA4TF4SNHuXTyS+Pop1xyI0K714CXTyWVxvMg06Jds1vmZ3oGxEYvs4Yh52kR+ZKAqNTCJxci7FSOCZnd0zsgqObpET/pJ3MwNjbM96V5m4mwuKs/mxMsCBO+12r6lIqt7eU3ssK7GEuAmqd+bf7EJf4MQUi0Ljh0E= 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)(366004)(346002)(396003)(136003)(39840400004)(6486002)(26005)(2906002)(316002)(36756003)(66946007)(1076003)(107886003)(5660300002)(16526019)(186003)(478600001)(38350700002)(38100700002)(8676002)(6666004)(86362001)(2616005)(66556008)(52116002)(8936002)(66476007)(83380400001)(6916009)(6506007)(6512007)(956004)(7416002)(4326008)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?07P3muiHMprOvVTjfjrgXUPNP+hJEtBa7UkuWDiiEfonMnnFB3Y03GRYdwyC?= =?us-ascii?Q?t8RZABuHSpSKL4HXgXZ2xVuM6dJiWy2CIVGDG3U6XrvDyvw9xW4deXMtT4Ws?= =?us-ascii?Q?NVXhYu2BIHxXkJIAUSYRjDM2Q8sB/skiKzBKFr2WTmlJggGaweiuBIAlNQh9?= =?us-ascii?Q?VQW4qw5B7C8E5fPVl7fWO5NNk+t3LfE6jSW1jQxoB3mmeYvmZlVc7TgQhqc4?= =?us-ascii?Q?FQtOJoz4BJxGJoNVh7PvimbiZXpRSCBvTER6N/kwZ8H5TIF3xqAmyik9w3ih?= =?us-ascii?Q?1vVhJnj4hn7G2kZDOBIsYmHd8Pfs4S20U90FVH2/iaX5BR1hFXjXAN4FciSJ?= =?us-ascii?Q?J5lJvNIyJQMG3f+SFDjzOjHopvdN/WZHzA1+W+bFbAePnTg2eoJ3vGpbXWGu?= =?us-ascii?Q?CEZmZPhIbXGvr7SyR2BWbdrkWx9Z8ebYd14UzSA9aW5cZSJR51iTR0vTV9XG?= =?us-ascii?Q?xdw0awqbVmrLnCJ7DOvCr99IMl/enqi8NJTeLl1N5Uu2IhCntqOv5nNAtqzH?= =?us-ascii?Q?A54HyhY/3kznah7UWW7KAZEnUhANl8WERI6bR2ApTiSu8BtG80GbldHekX5q?= =?us-ascii?Q?Fj2F2rd5kUnaoFuMNFs7nEQP7CbjHoNkMRAG2cjLsGn6JHfADBAYEx2I0Z9d?= =?us-ascii?Q?oycT1MNbme8XA6CwxfeVtWnzVxkp1Sx5RAFMBTwYrQ/2Uczc7UgtKyURSiHS?= =?us-ascii?Q?jrx1bANw1L/Fpq7kNregIrGoCHhXt+1zg13Q4rZFN2uQ2DCEU6H/NDe+dsqL?= =?us-ascii?Q?7usJlZRuE2hGvksMQHbQ+R2WFJkQNBrvVh+Znl95hEk/hCs1N+DGIMilevin?= =?us-ascii?Q?vSQut+HP3Ot47MpQawezqIw///1ak8RJupuORNmgdmKhhTN4Nn2mgiYnapSo?= =?us-ascii?Q?1O5z0dWW6lOi0nhk50Ro2NhL9LaymFrRZBaTeBmneElvZGGSI9Gl76ZxA7Fi?= =?us-ascii?Q?8S5CGYl4LImN8N8NI3iAWfOMm+dVg7lX0CIBfSibl8lgGETvEmpL8IKGB7M2?= =?us-ascii?Q?bjbTrLL/0i70BzxZdke8YipRx40gWuIXX+EoiBgDp7GZFcB8GEvLgnVGT2gI?= =?us-ascii?Q?z6m+YI+BSlEJcZcjcJ0ixP3pHWFTDvwVJ14HfloB6Yg/udFLXpdYDr+uoNGf?= =?us-ascii?Q?/gk9ekgUSWQuoFNfDcYTmKrDgiV5ILj9+6/VtJRQqHTecTh7xR4ETVucuI2w?= =?us-ascii?Q?gQlaU65+XX6EItBscOdWKBADNqmJDYDSsLqTuwcK4MHF02eLcrHTLwnpjFr5?= =?us-ascii?Q?Yua6C60EnTL1S1sGUz4qJQoqniaABfTWE8793LkjH25+XrYV370R9PnV/Gfx?= =?us-ascii?Q?B0fC/szxxAQXbN34BtF0RJAY?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: ab0be603-9e3f-401d-e706-08d918ff4885 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:44:56.4158 (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: 0u6astjiueUDzG9GgRnMSIGWJ1QDMGP5Gk3IRYU1RmqwXSJIhydIlUbKzm6Y/LB2hyHhLJg8Kia31GohlIoEDWM0xUz4hX8j7K19WmzuQoc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3382 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.3.130; envelope-from=vsementsov@virtuozzo.com; helo=EUR03-AM5-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, 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" No reason to tolerate bdrv_get_info() errors except for ENOTSUP. Let's just error-out, it's simpler and safer. Signed-off-by: Vladimir Sementsov-Ogievskiy --- block/backup.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/block/backup.c b/block/backup.c index fe685e411b..fe7a1f1e37 100644 --- a/block/backup.c +++ b/block/backup.c @@ -367,7 +367,10 @@ static int64_t backup_calculate_cluster_size(BlockDriv= erState *target, * targets with a backing file, try to avoid COW if possible. */ ret =3D bdrv_get_info(target, &bdi); - if (ret =3D=3D -ENOTSUP && !target_does_cow) { + if (ret < 0 && ret !=3D -ENOTSUP) { + error_setg_errno(errp, -ret, "Failed to get target info"); + return ret; + } else if (ret =3D=3D -ENOTSUP && !target_does_cow) { /* Cluster size is not defined */ warn_report("The target block device doesn't provide " "information about the block size and it doesn't have = a " @@ -376,14 +379,7 @@ static int64_t backup_calculate_cluster_size(BlockDriv= erState *target, "this default, the backup may be unusable", BACKUP_CLUSTER_SIZE_DEFAULT); return BACKUP_CLUSTER_SIZE_DEFAULT; - } else if (ret < 0 && !target_does_cow) { - error_setg_errno(errp, -ret, - "Couldn't determine the cluster size of the target image, " - "which has no backing file"); - error_append_hint(errp, - "Aborting, since this may create an unusable destination image= \n"); - return ret; - } else if (ret < 0 && target_does_cow) { + } else if (ret =3D=3D -ENOTSUP && target_does_cow) { /* Not fatal; just trudge on ahead. */ return BACKUP_CLUSTER_SIZE_DEFAULT; } --=20 2.29.2 From nobody Sat May 18 07:08:56 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=1621235005; cv=pass; d=zohomail.com; s=zohoarc; b=WDFe0xDUDHgKPLKfD86yZSz2aGaXNKuPGiu6zpb6AbgxfJY1R4bTDH5vAs6/DtfwlM7xpAk1dY0zafjrnTPQDriEAP26UrVxve/uHabj7luPTQQ1a8jbSIZeHKCYXBR4tdV6Lr0dpcmbevJCHWK/t0PrPVl+hNxtXDdV3C41H5I= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621235005; 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=evgbeTfleSmHr5WcDRoN/G/ksB+mNOJ5jIOX0QZbVc8=; b=Wimoaa/+zVFzeO8Nuo7YS1pBmTLjQql1v34QMGpP77jhCtIhh0q5brkfKAwsfOgHPpd+l4jLw6wvJLoi8iJ+d3d/877XzvnZC/yusuPhoNJ8Q5+zeynh6mDcN1oXtx2qJN0qyqHnPBlGru8IBLcuLkJIzAP73Sk7XboJgZob+V8= 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 1621235005668245.32202132871805; Mon, 17 May 2021 00:03:25 -0700 (PDT) Received: from localhost ([::1]:49860 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liXHg-0002Bb-7t for importer@patchew.org; Mon, 17 May 2021 03:03:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33452) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX0K-00042M-L0; Mon, 17 May 2021 02:45:30 -0400 Received: from mail-eopbgr30113.outbound.protection.outlook.com ([40.107.3.113]:13457 helo=EUR03-AM5-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 1liX0G-0001tv-KE; Mon, 17 May 2021 02:45:28 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB3382.eurprd08.prod.outlook.com (2603:10a6:20b:47::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.26; Mon, 17 May 2021 06:44:57 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:44:57 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:44:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f13O7tKv9HjO/EESJA0bMYC0yMATe3gSWTTpEmHBRn6zJFQodRFVSMK8XIW6q7TDCFu3vBeLD5EPEjExYccEhUREO5LbM0S5+SCrts/sIYftS6qTVaQTaIqmR7+mgPJJpM8440eaqnW9reNulwS6lB4zBh5MbIf2J0APphLG35pDxFOXQ8lVCrknyT/vd/Uailu2oPLhoA4nXb5oVyMRJ4/h00bXzGUYBc6u1BmuWAi1s0oq2MuY04Lts0E4QI4/Es/4omKLO1rc36+ZXCQtIdXgZFnyqrdl4emKYn5D9TcRbmUvVwlOh6uy13xXQ5YHxJLDDstHMvc6pZGtD0RgKg== 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=evgbeTfleSmHr5WcDRoN/G/ksB+mNOJ5jIOX0QZbVc8=; b=VkcL/wkf1yUDj0F65jeRyqX5syFbTwJE63EpRChc37JoiGY1YkImo0yIMeHS5fC5TiZqq2iwX+fh9N/noJvFZDC/SeNHOFeD2NbzbuA4U8pZ0+jostFdhc3rC/Bd1XbOvS9eGjc01wXpfPl57rv/8tF/xKhywobOMaOwUN3YAES2CoxjBK0cZT7GUDKDbRWBJnDUb9VvmcyJ0E0IsALBccTMpvwRPQo57Vn5usCSz8QicluUWAawWStc/oxJe0js8Fe4Pd5741z0sRUGW5rB7d0O3IBn7Id6kBSHBfugyI8je4tT3u/B1qbdhQZC9vM/gnIB3e4fgQa9bCUV/JHv9w== 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=evgbeTfleSmHr5WcDRoN/G/ksB+mNOJ5jIOX0QZbVc8=; b=LGngjRXYs82iUpBu2NbHJDzEEaPt37rw99Q8gR5fgKki43uwS56RojurF3iP6847UTXlb/E3iEhijUdK77Bu7F34oHZFQLPx2XvS1wTYjpmr+zH1+MVgUHWwuWnIW+hntrAnLDImhq786Fgp5+avzj/pcQliNYVtJQzvxFe91pg= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 09/21] block/backup: move cluster size calculation to block-copy Date: Mon, 17 May 2021 09:44:16 +0300 Message-Id: <20210517064428.16223-11-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: d4de805b-9258-4fdb-294c-08d918ff4958 X-MS-TrafficTypeDiagnostic: AM6PR08MB3382: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:88; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FGIWCTJVbQekYYNexDBauCLkdz/s6FR85zkk16Pn3EkIs2ysro2xBz3m3Uee8V6NSA/W+Amom3/gTZ3yLO7ut+cg9+nJirBm7WPpCTPrniIu608egQhfhtvVox3XDQjOI6+kL48pyozHlP5jZcpuVnCwXNGgzY6ajrUlUVNCCpRhR6M1xfYbWoEEQwaL0/g9WUn/VZjASeGMtwJKq2ZfwpxnsJDfwdrzt3SFcejgCTpMRShbi+yg2CFz7Q68YBYyQmXKwC8eB3IzvvKSD4+l4xnsLHToueylB2O+tko3aZiYTRsa3pBatKk0AZ6jrI+3bDGACKTR7D1l9h24hKk24CISPZM07N9kWIGD6p4Zm0AiehY7MgQnasM1lyjLWdyGLAY08QIOZuWCW4bqDDt76RX2PUXEc1p8dHYdWyXG2hw5vTlZ7OflqAyrR3dj3V271an4iyu8zBOAKRpZdlTBr0aKUfm1KYk9pIWthHmHwje+QLd9NHq5iTXtTjNgEjAzhJR7mXrcVyrFaQV8Ascf7ADr2Uiskw/dmM1P1ppOX6732DXa2n/qiQvwwV5l1WYXMcMJLfRolm08pGQUND4feSU2mW8+juusODKNZWI6lx1KnSI3C0Dlu8T0Rm5tKRAiIUo5Pt4RSNPXQS95fsWDREsgjmcJAMHaTEN3+GG4gV2WDoWieuncx25PABulVJPf 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)(366004)(346002)(396003)(136003)(39840400004)(6486002)(26005)(2906002)(316002)(36756003)(66946007)(1076003)(107886003)(5660300002)(16526019)(186003)(478600001)(38350700002)(38100700002)(8676002)(6666004)(86362001)(2616005)(66556008)(52116002)(8936002)(66476007)(83380400001)(6916009)(6506007)(6512007)(956004)(7416002)(4326008)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?vvVUyGpRMqek4EgMskbhYjE8y4RVHqBBEyQa2uWX+OjtXaRKy4XeaNYhkEL0?= =?us-ascii?Q?UmYQINfi3SyqZE/yL2+1QNtl3wlVlXuCFNa88nyor4BQN1vwmmpjPGCnYHOS?= =?us-ascii?Q?uftBkkPmSs1fIbcXU3JxTnIk113Zxb1GYEuWBNUIe+Xh4rBJTEKuQ9w2zgnQ?= =?us-ascii?Q?2exfjJysDZ9lyr8DYO2mCGSOdkuVfS31YGr44QlJN/dD1/5PKYgg4X8edDP+?= =?us-ascii?Q?GyURqNO/PwjI6u45kDN/9XvpXyZFV+2AndhNl6nVaTCbR6RUCLJ0uYN3RgQu?= =?us-ascii?Q?/t8FzFUbz/p95OWUe9YUo/Fn7SoblYkqw0TYcUoa5gAG7ypfAELn1GSVX4OF?= =?us-ascii?Q?Uwjo4KP2u9mJDh3RezEOElmDAeoRJ9q1gLCWflLkVuXqkoPqzpFu/9gzOIdW?= =?us-ascii?Q?hwtc0LwfD6k61OJy06vdnxrWUDHJzsbgVr25fNs/pv3F9l2lp0JMVvBPx9/w?= =?us-ascii?Q?0rffuYCzgK6cdyrGjU/6bpeWEY0cy3g5nGe9QGriKeRaF2voaWpVcQ6ncDTe?= =?us-ascii?Q?oLtxiRofcAFYvq3zZ9wMQ0qxebjjy/xI++maf7lxg4en9X+/V8B/OPH8m3Zo?= =?us-ascii?Q?026kTb5kFHsQqkVhv2S9niLhOEafWRu8M5+mws+qtr7Pc6PEF5CTwcbqIEcC?= =?us-ascii?Q?fDKztH6JoBnYxz5GLrOb1IMUK+s2Fv3wZl2++E0Zr72mho7u0hJkHbE9pKfs?= =?us-ascii?Q?gtQtk0Y4Dbu+MDcUBMnILBqzaS++3Vx8sjIz+TO7VLLNchjujXOETH2Mg1bq?= =?us-ascii?Q?IZitAC+rKXiobo55mxWut9GwKPSQITMMxRTr5/C6Cx90EeohMsoqHVD/P3IC?= =?us-ascii?Q?7J+wcoeL8JIr3gCzJMP3rwAFmg/SAfdcur3oATYrzfwT4S6V0hGSATdI6nI7?= =?us-ascii?Q?6DAtntdmoUErH0scZr8extS8GcIFr9s0SPaFXGdLOxvRHhmlskiXOAOL3IB5?= =?us-ascii?Q?zXjlyJipox3dj9Na3Gm5bRHWp0uKNZ9z5G9ItasEixMOp5w5BPyduQH/d0JR?= =?us-ascii?Q?kO+DFM1gQIWyJMQP4NxqhWmEIoBsQ77+TGzyhVlRoD1TJCapnzURY0gqqMn4?= =?us-ascii?Q?4T3X4o+Ph/Y49fKLBFnoGjsf8KyTJgzEPOkkP/isGfdSdOX0V+qXuM/vTLSc?= =?us-ascii?Q?WZE3GepdEHm9lF4BjD88g82c1LeNnNaYurVirIuDygrWb1Jp8N46z9nbBW5S?= =?us-ascii?Q?lIJEi+iI4ZtkAAmpDLRRvl1F3nD+LA5RoCSuiqNkDFomldaUo/MprChebS9L?= =?us-ascii?Q?J4qOgqxVl9piR1EzPOnk2iiNol7LsBqUgkcH4eOxAkFZlQueZ90y7Y+afc/K?= =?us-ascii?Q?M59I7WZnCCGyfIdSrkd9H1my?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: d4de805b-9258-4fdb-294c-08d918ff4958 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:44:57.7321 (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: Di8ysJvMzwqWtnOxQV2O/q4RmwVNRYX0MLrwFxx7tc7lFApa1aRzH4cVvPFVWqeZ8Mt8y2TtcldwVNSQzmqCXXK2ylhQhXl7fLhtqjtgGSc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3382 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.3.113; envelope-from=vsementsov@virtuozzo.com; helo=EUR03-AM5-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" The main consumer of cluster-size is block-copy. Let's calculate it here instead of passing through backup-top. We are going to publish copy-before-write filter soon, so it will be created through options. But we don't want for now to make explicit option for cluster-size, let's continue to calculate it automatically. So, now is the time to get rid of cluster_size argument for bdrv_cbw_append(). Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Max Reitz --- block/copy-before-write.h | 1 - include/block/block-copy.h | 5 ++-- block/backup.c | 58 ++++++-------------------------------- block/block-copy.c | 47 +++++++++++++++++++++++++++++- block/copy-before-write.c | 10 +++---- 5 files changed, 62 insertions(+), 59 deletions(-) diff --git a/block/copy-before-write.h b/block/copy-before-write.h index 538aab8bdb..b386fd8f01 100644 --- a/block/copy-before-write.h +++ b/block/copy-before-write.h @@ -32,7 +32,6 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *source, BlockDriverState *target, const char *filter_node_name, - uint64_t cluster_size, bool compress, BlockCopyState **bcs, Error **errp); diff --git a/include/block/block-copy.h b/include/block/block-copy.h index c013a20e1e..8138686eb4 100644 --- a/include/block/block-copy.h +++ b/include/block/block-copy.h @@ -23,8 +23,8 @@ typedef struct BlockCopyState BlockCopyState; typedef struct BlockCopyCallState BlockCopyCallState; =20 BlockCopyState *block_copy_state_new(BdrvChild *source, BdrvChild *target, - int64_t cluster_size, bool use_copy_r= ange, - bool compress, Error **errp); + bool use_copy_range, bool compress, + Error **errp); =20 void block_copy_set_progress_meter(BlockCopyState *s, ProgressMeter *pm); =20 @@ -86,6 +86,7 @@ void block_copy_kick(BlockCopyCallState *call_state); void block_copy_call_cancel(BlockCopyCallState *call_state); =20 BdrvDirtyBitmap *block_copy_dirty_bitmap(BlockCopyState *s); +int64_t block_copy_cluster_size(BlockCopyState *s); void block_copy_set_skip_unallocated(BlockCopyState *s, bool skip); =20 #endif /* BLOCK_COPY_H */ diff --git a/block/backup.c b/block/backup.c index fe7a1f1e37..90cca1ca30 100644 --- a/block/backup.c +++ b/block/backup.c @@ -29,8 +29,6 @@ =20 #include "block/copy-before-write.h" =20 -#define BACKUP_CLUSTER_SIZE_DEFAULT (1 << 16) - typedef struct BackupBlockJob { BlockJob common; BlockDriverState *cbw; @@ -354,39 +352,6 @@ static const BlockJobDriver backup_job_driver =3D { .set_speed =3D backup_set_speed, }; =20 -static int64_t backup_calculate_cluster_size(BlockDriverState *target, - Error **errp) -{ - int ret; - BlockDriverInfo bdi; - bool target_does_cow =3D bdrv_backing_chain_next(target); - - /* - * If there is no backing file on the target, we cannot rely on COW if= our - * backup cluster size is smaller than the target cluster size. Even f= or - * targets with a backing file, try to avoid COW if possible. - */ - ret =3D bdrv_get_info(target, &bdi); - if (ret < 0 && ret !=3D -ENOTSUP) { - error_setg_errno(errp, -ret, "Failed to get target info"); - return ret; - } else if (ret =3D=3D -ENOTSUP && !target_does_cow) { - /* Cluster size is not defined */ - warn_report("The target block device doesn't provide " - "information about the block size and it doesn't have = a " - "backing file. The default block size of %u bytes is " - "used. If the actual block size of the target exceeds " - "this default, the backup may be unusable", - BACKUP_CLUSTER_SIZE_DEFAULT); - return BACKUP_CLUSTER_SIZE_DEFAULT; - } else if (ret =3D=3D -ENOTSUP && target_does_cow) { - /* Not fatal; just trudge on ahead. */ - return BACKUP_CLUSTER_SIZE_DEFAULT; - } - - return MAX(BACKUP_CLUSTER_SIZE_DEFAULT, bdi.cluster_size); -} - BlockJob *backup_job_create(const char *job_id, BlockDriverState *bs, BlockDriverState *target, int64_t speed, MirrorSyncMode sync_mode, BdrvDirtyBitmap *sync_bitmap, @@ -444,11 +409,6 @@ BlockJob *backup_job_create(const char *job_id, BlockD= riverState *bs, return NULL; } =20 - cluster_size =3D backup_calculate_cluster_size(target, errp); - if (cluster_size < 0) { - goto error; - } - if (perf->max_workers < 1) { error_setg(errp, "max-workers must be greater than zero"); return NULL; @@ -460,13 +420,6 @@ BlockJob *backup_job_create(const char *job_id, BlockD= riverState *bs, return NULL; } =20 - if (perf->max_chunk && perf->max_chunk < cluster_size) { - error_setg(errp, "Required max-chunk (%" PRIi64 ") is less than ba= ckup " - "cluster size (%" PRIi64 ")", perf->max_chunk, cluster_= size); - return NULL; - } - - if (sync_bitmap) { /* If we need to write to this bitmap, check that we can: */ if (bitmap_mode !=3D BITMAP_SYNC_MODE_NEVER && @@ -499,12 +452,19 @@ BlockJob *backup_job_create(const char *job_id, Block= DriverState *bs, goto error; } =20 - cbw =3D bdrv_cbw_append(bs, target, filter_node_name, - cluster_size, compress, &bcs, errp); + cbw =3D bdrv_cbw_append(bs, target, filter_node_name, compress, &bcs, = errp); if (!cbw) { goto error; } =20 + cluster_size =3D block_copy_cluster_size(bcs); + + if (perf->max_chunk && perf->max_chunk < cluster_size) { + error_setg(errp, "Required max-chunk (%" PRIi64 ") is less than ba= ckup " + "cluster size (%" PRIi64 ")", perf->max_chunk, cluster_= size); + goto error; + } + /* job->len is fixed, so we can't allow resize */ job =3D block_job_create(job_id, &backup_job_driver, txn, cbw, 0, BLK_PERM_ALL, diff --git a/block/block-copy.c b/block/block-copy.c index daa1a2bf9f..9020234c6e 100644 --- a/block/block-copy.c +++ b/block/block-copy.c @@ -27,6 +27,7 @@ #define BLOCK_COPY_MAX_MEM (128 * MiB) #define BLOCK_COPY_MAX_WORKERS 64 #define BLOCK_COPY_SLICE_TIME 100000000ULL /* ns */ +#define BLOCK_COPY_CLUSTER_SIZE_DEFAULT (1 << 16) =20 static coroutine_fn int block_copy_task_entry(AioTask *task); =20 @@ -243,13 +244,52 @@ static uint32_t block_copy_max_transfer(BdrvChild *so= urce, BdrvChild *target) target->bs->bl.max_transfer)); } =20 +static int64_t block_copy_calculate_cluster_size(BlockDriverState *target, + Error **errp) +{ + int ret; + BlockDriverInfo bdi; + bool target_does_cow =3D bdrv_backing_chain_next(target); + + /* + * If there is no backing file on the target, we cannot rely on COW if= our + * backup cluster size is smaller than the target cluster size. Even f= or + * targets with a backing file, try to avoid COW if possible. + */ + ret =3D bdrv_get_info(target, &bdi); + if (ret < 0 && ret !=3D -ENOTSUP) { + error_setg_errno(errp, -ret, "Failed to get target info"); + return ret; + } else if (ret =3D=3D -ENOTSUP && !target_does_cow) { + /* Cluster size is not defined */ + warn_report("The target block device doesn't provide " + "information about the block size and it doesn't have = a " + "backing file. The default block size of %u bytes is " + "used. If the actual block size of the target exceeds " + "this default, the backup may be unusable", + BLOCK_COPY_CLUSTER_SIZE_DEFAULT); + return BLOCK_COPY_CLUSTER_SIZE_DEFAULT; + } else if (ret =3D=3D -ENOTSUP && target_does_cow) { + /* Not fatal; just trudge on ahead. */ + return BLOCK_COPY_CLUSTER_SIZE_DEFAULT; + } + + return MAX(BLOCK_COPY_CLUSTER_SIZE_DEFAULT, bdi.cluster_size); +} + BlockCopyState *block_copy_state_new(BdrvChild *source, BdrvChild *target, - int64_t cluster_size, bool use_copy_r= ange, + bool use_copy_range, bool compress, Error **errp) { BlockCopyState *s; + int64_t cluster_size; BdrvDirtyBitmap *copy_bitmap; =20 + cluster_size =3D block_copy_calculate_cluster_size(target->bs, errp); + if (cluster_size < 0) { + return NULL; + } + copy_bitmap =3D bdrv_create_dirty_bitmap(source->bs, cluster_size, NUL= L, errp); if (!copy_bitmap) { @@ -843,6 +883,11 @@ BdrvDirtyBitmap *block_copy_dirty_bitmap(BlockCopyStat= e *s) return s->copy_bitmap; } =20 +int64_t block_copy_cluster_size(BlockCopyState *s) +{ + return s->cluster_size; +} + void block_copy_set_skip_unallocated(BlockCopyState *s, bool skip) { s->skip_unallocated =3D skip; diff --git a/block/copy-before-write.c b/block/copy-before-write.c index 19472912d1..4776172f77 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -37,7 +37,6 @@ typedef struct BDRVCopyBeforeWriteState { BlockCopyState *bcs; BdrvChild *target; - int64_t cluster_size; } BDRVCopyBeforeWriteState; =20 static coroutine_fn int cbw_co_preadv( @@ -52,13 +51,14 @@ static coroutine_fn int cbw_cbw(BlockDriverState *bs, u= int64_t offset, { BDRVCopyBeforeWriteState *s =3D bs->opaque; uint64_t off, end; + int64_t cluster_size =3D block_copy_cluster_size(s->bcs); =20 if (flags & BDRV_REQ_WRITE_UNCHANGED) { return 0; } =20 - off =3D QEMU_ALIGN_DOWN(offset, s->cluster_size); - end =3D QEMU_ALIGN_UP(offset + bytes, s->cluster_size); + off =3D QEMU_ALIGN_DOWN(offset, cluster_size); + end =3D QEMU_ALIGN_UP(offset + bytes, cluster_size); =20 return block_copy(s->bcs, off, end - off, true); } @@ -169,7 +169,6 @@ BlockDriver bdrv_cbw_filter =3D { BlockDriverState *bdrv_cbw_append(BlockDriverState *source, BlockDriverState *target, const char *filter_node_name, - uint64_t cluster_size, bool compress, BlockCopyState **bcs, Error **errp) @@ -214,9 +213,8 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *sou= rce, } appended =3D true; =20 - state->cluster_size =3D cluster_size; state->bcs =3D block_copy_state_new(top->backing, state->target, - cluster_size, false, compress, errp); + false, compress, errp); if (!state->bcs) { error_prepend(errp, "Cannot create block-copy-state: "); goto fail; --=20 2.29.2 From nobody Sat May 18 07:08:56 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=1621234732; cv=pass; d=zohomail.com; s=zohoarc; b=CT0qf11TvEvVXGQD69sH8FdNXYTPyfrs0IKxLDdLWpZkJhn0VEchPNEnpE5mNlcjFf4dCR17N8ZYom8kF4oT1vbMVKLgRF07Uq2t7IbAcC6iCzoMODH1Eg0KxcDPVeNIGvkKeleniZJlSwVweAvkV+osXote1ygHbJc3942nmA0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234732; 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=J4E2XWACg3coUwhucaKGu/vx3ES3DDOYorlvJpdOlFE=; b=VPZwaaGMhXR490a1+O6icWOkvCLJZkD6cIWJf4xNX+wIMFQTXPWTYnXDrSiQ0ECfIG1wOhnwBwJsP1Zmkip64Mrl9C2PX8HQHRlfXX7UK2y8R/TLsOwQHn7kSQDASmEy1vq1BvamlTtluv4J0teIxPqATbs9vp3HN0db2RrbjVY= 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 1621234732947351.5408763260755; Sun, 16 May 2021 23:58:52 -0700 (PDT) Received: from localhost ([::1]:36540 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liXDH-0001Z7-QT for importer@patchew.org; Mon, 17 May 2021 02:58:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33294) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX00-0003hP-QA; Mon, 17 May 2021 02:45:09 -0400 Received: from mail-eopbgr10124.outbound.protection.outlook.com ([40.107.1.124]:1412 helo=EUR02-HE1-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 1liWzu-0001ta-9g; Mon, 17 May 2021 02:45:08 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4341.eurprd08.prod.outlook.com (2603:10a6:20b:b9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 06:44:59 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:44:59 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:44:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XVJTi0XD4p4xc3+s5p5sfHFU24JcAzGtl5bEhPzMAXzs6lGR31VALGVrXogmEVepW+Jx3lzhXKzQnCHeD6CgCtRCHIXpaAY6AWKqk7w3JeJ/4ANG/P7YASqcR1ljD6VnXNPzBw+9bfDTVqTBZ4UrPZI6K8xoHjOIDZKtp/9KFtwLx5aCGah8B3SxhroAFZ3kZp9VFm6uFcL5c6ciNVy4yeCQKZajvmBKOJcTdwAPYNHd2172scxnIZXPahlugFqlplryBC31+1zl8JD/4HU26PJFCL//paNkvXAUzwZ69wQRsneG2Dc91DvXJaxijvKecdu+cPYJrYAQSk8B540kkw== 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=J4E2XWACg3coUwhucaKGu/vx3ES3DDOYorlvJpdOlFE=; b=nXDXyyWpM+6/8Pi+5Bx8i8RcnTxesrYGAEdnWckIV+wgGvAtXXtQR+l8Dp3lFUDXUEa2B1mMK9y/YWSqQ1QLrP29raF2db3PniW6W55Nb1okz+5aU26im+3yRFm+NxWYy9giT3+fYRRxUv8woCZ2UcIw8xOwI/XMs7Eg5mKhEZvK2ziGAz0mqLaMNqdi0dehOIR4d+TP+9kCDmWDy4nbX5MPrb7ztmXloGd47nR2Glx/UX8P+0pozT9ztVT4Cd/hikqHs205apIxWeQWAuZrjN7hh/qrt684TdpiU3dhJrFwUkn1D5CGzbMpasP9oqBmlMPQJJjSymvLhAgBTY0+6Q== 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=J4E2XWACg3coUwhucaKGu/vx3ES3DDOYorlvJpdOlFE=; b=C/PrcveeZkuImcJXd3ZJTs5JeoKGNuCwOB/1pFe8G+GjSAVOxkiZiYoGPZJPq+r4SiXurYaP2VMKyZgAU2zdAm0cMhOYRtajlG6XSBvqarVaOSob6xgzVOOMBOxmeX1u6QEz4Y/lGy96XhnjeIfUcu6XslCNNeQz0bdpV8GZaB8= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 10/21] block/copy-before-write: relax permission requirements when no parents Date: Mon, 17 May 2021 09:44:17 +0300 Message-Id: <20210517064428.16223-12-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 05de687b-b0b0-454d-a22e-08d918ff4a1f X-MS-TrafficTypeDiagnostic: AM6PR08MB4341: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:4303; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kXW6UEKyMcxIE1qqsYFjg0TOg1T97Kur4mwGSrQbXwDB+VLHCZnr0WlnSvgv6y0j+wiIVlZS8No/mUXI14lwLCyPnFmwnjaYbIvrunrALiP4DiA/XYVtgCMsIHWmAqnoowSLzJI4te41JiU/AnbQXFgrTq04/WQaE7ezrJl73s+YbboVXmSBCICQDPiMXvQ6pzBIgi/dX2Ns/hMGzrmLZCcGGS0kLnjsoUTu64jaoqyyvX+atkj6qqPeCpBmxwMk6hdZmnsyV/Q0dgonZfxeSFMsQp+b3JzlJdiLwqCkCsu2EGM8MJax/6hxAd3py7igSPFFj+y1bfvpKBgfwT3bd/6e4N4p4mI0aNrlUULkSz0BLQXZmWpO1apmU97VcCRTQPGMm3E1ca75zEaaq5aHVpLA5Li+FB521paIgq2xD8Fy003Xikp+X4O/qpUH1EICNv936mOLH97hjKzZ1VuK7QCdFJoq94hqtHp8xhkttm7sZXc1TAI36DbZUJqASXr/ZWu10ADFnMryWwYgwgiTrQNAQDAOnCfZrx6lzixW1h0xNHGdJG0+Y/qLs33fOTmSlT1rvMe2wkJmioKRfu6HHzfYLTeXLf95kicfSaeoiQ490mEVX/0rmmYzpdJPU3gZ/MD3sf2fo6Nb3n5SghaFIw0PNd2HQnfti1O/KQ0+EbT5ib1o8Ea6q/1R66S8G0MK 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)(136003)(346002)(396003)(39840400004)(366004)(1076003)(8936002)(316002)(107886003)(4326008)(6916009)(6506007)(38100700002)(26005)(8676002)(5660300002)(86362001)(38350700002)(186003)(7416002)(2616005)(6666004)(16526019)(66476007)(66556008)(2906002)(36756003)(6512007)(6486002)(956004)(66946007)(52116002)(83380400001)(478600001)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?lpzeIPJ0q+ldCnDaKFR7phcnJNxHxDZyXEkOGWKdeTE5UOFhuKhOdhkxoOWn?= =?us-ascii?Q?gjK4hJLXWOL96yHaNw6sZ91vezu5oHS0ubtJue61GI+0Wx7EJUQPqbygge0v?= =?us-ascii?Q?C5BkVaTdX7atWm4mOjGr+SgzcBfebuIAe81guNC9pQAyNH2e8yESvcEFHM2i?= =?us-ascii?Q?vou8P+IjIGrC9oCpj8naW9PgbtnQOU0DdZQpRFY8i82kUHXkP3cS+JFF27By?= =?us-ascii?Q?CgTtLMx84FyDiFdCOE/LwFfX4P9LAvnKTYKy/4nIRr1wkBKszEd/2WpTwEce?= =?us-ascii?Q?7lalAc1v4r/YE36zn/zHcyOKxrWkKN6/5JoXku73W6/gT+TWf+4IzQkHs1VR?= =?us-ascii?Q?6hmY/zk6RZ4PLv2FXaQWb/XXZS0P8Jq+5H3532gl16HE+3mZ4TizOBxoI72G?= =?us-ascii?Q?ZtVUyPcAiOJzn1+DE9sdb+p9l0hlFIw1bGUmFnDWYUymaIYjCWsz1rpayTLc?= =?us-ascii?Q?M/lapbroe3kVXxXpYA0IDMJyhwyXydkHNKL9idM45+vGTvpaFhPNEikPdrAF?= =?us-ascii?Q?UeHmBNKCEFfcoi0QKFpqGyN5K329D5N/+2EIFlkWxxaC+gW7cR4uV99szm9N?= =?us-ascii?Q?g33/3KajMZ0dTjhZQu9i9Yiz3jc5BCKl5nWqDNKq4MY7tCtX5daVNTUNtpfM?= =?us-ascii?Q?2c4Fsm3L5xTmVKyC/y6MFQr/kZ4BlJLF0G1rGonBrpXrwtPM0p/MPPJYz9YF?= =?us-ascii?Q?iue9w7XbHb48i/NdP8+hdDOxJyT1J8BUlxeNTMfL0j4w9hwSnU9RhfORiOMZ?= =?us-ascii?Q?0hPRZe2GPfYjGeMjDEQQdU7YmNPGGMrUmdDByt3WeXHbe9Zfx0tvSBL4boMO?= =?us-ascii?Q?0vjsYNCePG5byhqEamwIYcqi5qDhpAHlpx3yarVOQRxXQyACiB0HsG2zUxIA?= =?us-ascii?Q?y01K0q8VwdmxZyih8QWZDMCu7EYHQuBWOkNtHoSLJ6HFyBZQVaEou8T5/Nay?= =?us-ascii?Q?J5FDHBGxtgKH+UcfKDRW4gy7AWawQqxE67LlNliwfJZ0m75P/hF6GBkhykrs?= =?us-ascii?Q?tTBl7WEvjmmV05xBHOyRhg26Bgn5pLsuaKCWq0dqGeaavcqVMSQUYd0eNTdV?= =?us-ascii?Q?zggNXNMcGkq7SAQjzXuBTwQDv8z5pMuT4ko78XV9hPmscRI9rEJDfAWm5/5X?= =?us-ascii?Q?Zb/ou2CwnVjGxivaDzzDTBqpcpOYHKjz86+BTzPQcoS0Av+Onqp7CEz+DVSe?= =?us-ascii?Q?GYHCa6/wOHxMDWe6rrs14bIo/ld/KTFwI4YNNI21r0VnoX+pRpU0FL7qXY7n?= =?us-ascii?Q?MqEHZKf4gv6Nlau9iafntZvw8wnebKhqHcCEt3cmCtgjIz/LmtWK4+sM5n01?= =?us-ascii?Q?IFamGu/aXIQmLUPWH/HXMnWb?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 05de687b-b0b0-454d-a22e-08d918ff4a1f X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:44:59.0363 (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: kMyrYoahuG6TdvpDsCGI158C/YfG+1nPmmCQwTFSuN9oWFIrEV6bcZ0Nb4PJfjqAKDEPgnTvSY/z6rj82EIsPtVdAS13E+RYiBVx40qNfWI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4341 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.1.124; envelope-from=vsementsov@virtuozzo.com; helo=EUR02-HE1-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 publish copy-before-write filter. So, user should be able to create it with blockdev-add first, specifying both filtered and target children. And then do blockdev-reopen, to actually insert the filter where needed. Currently, filter unshares write permission unconditionally on source node. It's good, but it will not allow to do blockdev-add. So, let's relax restrictions when filter doesn't have any parent. Test output is modified, as now permission conflict happens only when job creates a blk parent for filter node. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Max Reitz --- block/copy-before-write.c | 8 +++++--- tests/qemu-iotests/283.out | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/block/copy-before-write.c b/block/copy-before-write.c index 4776172f77..af2bb97a30 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -142,10 +142,12 @@ static void cbw_child_perm(BlockDriverState *bs, Bdrv= Child *c, bdrv_default_perms(bs, c, role, reopen_queue, perm, shared, nperm, nshared); =20 - if (perm & BLK_PERM_WRITE) { - *nperm =3D *nperm | BLK_PERM_CONSISTENT_READ; + if (!QLIST_EMPTY(&bs->parents)) { + if (perm & BLK_PERM_WRITE) { + *nperm =3D *nperm | BLK_PERM_CONSISTENT_READ; + } + *nshared &=3D ~(BLK_PERM_WRITE | BLK_PERM_RESIZE); } - *nshared &=3D ~(BLK_PERM_WRITE | BLK_PERM_RESIZE); } } =20 diff --git a/tests/qemu-iotests/283.out b/tests/qemu-iotests/283.out index e08f807dab..d5350ce7a7 100644 --- a/tests/qemu-iotests/283.out +++ b/tests/qemu-iotests/283.out @@ -5,7 +5,7 @@ {"execute": "blockdev-add", "arguments": {"driver": "blkdebug", "image": "= base", "node-name": "other", "take-child-perms": ["write"]}} {"return": {}} {"execute": "blockdev-backup", "arguments": {"device": "source", "sync": "= full", "target": "target"}} -{"error": {"class": "GenericError", "desc": "Cannot append copy-before-wri= te filter: Conflicts with use by source as 'image', which does not allow 'w= rite' on base"}} +{"error": {"class": "GenericError", "desc": "Conflicts with use by source = as 'image', which does not allow 'write' on base"}} =20 =3D=3D=3D copy-before-write filter should be gone after job-finalize =3D= =3D=3D =20 --=20 2.29.2 From nobody Sat May 18 07:08:56 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=1621234905; cv=pass; d=zohomail.com; s=zohoarc; b=YZNpzo3YhZo3zolTCFWC/FX7HqOxzL1faBL33YFvYy2duNQTUG/7aJIEXFhVNgMRgc1ydy4yshFeSR/7TovWgB1+x6/bgCGeUBx8eSG/2jY9EE3N4GqT401JvcW3IbhuU5trT0yGgwr1kFUo5eknjC7qqA+7xzuCmQLMMNihqbY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234905; 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=UUYWS5ENJfmupLHeAXkGDaTKugf2LxXrwM9Q5mKHtgk=; b=Mf+61mV9/HdLM9FC0rg0Ca+P4na0dyQnjJJxGUqwSef6VmBa+bzQiwZ6Wd+Gpd0gIRp/m2vJsMR02fF1+1JeGwQus0uDeu8C2h9MuUp6ofKP/TqNFgbIbCoYUUQimWvK6y5PRo409v106KTueuho2gH4UBfyByANU6uREFzk1+U= 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 1621234905982711.0878377082337; Mon, 17 May 2021 00:01:45 -0700 (PDT) Received: from localhost ([::1]:45058 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liXG4-0007Jh-0D for importer@patchew.org; Mon, 17 May 2021 03:01:44 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33398) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX0F-0003qL-4n; Mon, 17 May 2021 02:45:23 -0400 Received: from mail-vi1eur05on2135.outbound.protection.outlook.com ([40.107.21.135]:63681 helo=EUR05-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 1liX04-0001xR-6x; Mon, 17 May 2021 02:45:21 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4341.eurprd08.prod.outlook.com (2603:10a6:20b:b9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 06:45:00 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:45:00 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:44:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LlTW2qlsRfQVroN5Xl07kmjXpeKPjoQNpKae69UKub7fUgpTg/f+cFWxzEIo6t/3omYKI9tjO+mXVwnyakMvVcpj0niuxiZRLGSo5eBekdggkwN3iiVRdhcP3QfV22ciY8+iIkhOUnM63T1wP6A8nKV2v9QmqM5ClZ1px75XYLjQAHHHu58TuteCeqQuA5xRbWz4gAR9iUq+vo8RhuMPEPxxn89LiOlGmMHlbwWLEp1xQkFbSef6wTzGYnweFDIR7aHu2/uKvcIvCAhuKPvueNERXegEFDtGkoalptASx1qukRICaXGaeMHb5RFMyFie5BQqHXUVqV8pkIMCl07G+A== 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=UUYWS5ENJfmupLHeAXkGDaTKugf2LxXrwM9Q5mKHtgk=; b=bSz/6C3vcZ+rAoJVXHzoDAFkebwESzetse6T2tyAX6KqYKTP71+Gkgjcpiuk3ZXbEqlxsVvVBnMuV8dcBJt+Rjr0dlh9fi73YnBvxIHpmf94s1kfeP2jsfSNKIykywiK7I91HLtnAvSUxu+yvLaFXiCLwGnZzVJqa3ohNbPFt7OHwdIGeedrGS46i1K3F4SE8+pbUdjVKItfDI7gchyUmxG2eitw5HtHbxj9Luk7tSuPLJrDDSVhSiVu1VYKMNvvzltFLgh8jbhzeKCod4Tj1KT6tSrS58Gjkj9suK3UxjsZr31yCNAr9kxglJBaBuhSa1V5tGdZ8kKhmjYweKIUrQ== 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=UUYWS5ENJfmupLHeAXkGDaTKugf2LxXrwM9Q5mKHtgk=; b=d5f9soL92Lx6wqYsHh1D6d4zzgNXNIGBlrbd3nGntK234Lqe9xyuTJNrOz8duCmkDCOFVPClC7TlzgTqoTvqnAM2nGuuc7gOhqKnZdl9cB/COcdgU8tmAl3huCI3CpVBU0qwBGVfvuJF9f4986yPHJtCe/0bJTGz7MVZEXlKrBo= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 11/21] block/copy-before-write: use file child instead of backing Date: Mon, 17 May 2021 09:44:18 +0300 Message-Id: <20210517064428.16223-13-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 1596a971-eb10-4a06-cdc1-08d918ff4af2 X-MS-TrafficTypeDiagnostic: AM6PR08MB4341: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2582; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ze+UOyXVz9xH5tBSaxexU4p8/Fa5MbVrOP4Bup0mgdeU5IPqs8mjJWYlFj8nEneZy94G3ptllPPHzQ9DCVhCXveHCRC1HUo0tmsMN/2lNtscftyIgP1Movz1CBvKHX1jepuZzR1RCT5Nyx/y5ksMvGLNikePZbyUKw49FMt6OfYsLxkvnyngFDH887tk3dCCQa/OCT8trh6Ps9ywUQEWBX4K+tELayyDl6zsd5/6VcZcMabSBtvZLDIDfu3IzYafThZrLanpOJrW8HpsdSrxPtOcKC/d8eYndpBN2nm8SvNVrxs8sCZfyL1lHO4/vLNp8heQE4hz3QJ/8DEVfx5zNFYZfnC+apgXF0KkOAu7VnHNodm86Ir/SX2zxcTTd9X+cevi6xjOyCYfEiVouC7HOQzpcm/fy/2WhEkE0o2Gihf/bUxpwBBE3aRudxhw5oUHfRzgdpkstiYpYRZUzwRwgAOa8a2pk5sITMT9a30KLhE7br36HgbJBCoRXjozCu2DmM9q7k8m5jHKXMCbGoiZJf4ahZwRsm1DjsYBb5D3WlodEETEl0/Fewc5+D6sotzRQ05m+ODhZeZV/Nx7qn+barHEy6mTtXUROs4LrbhnA0xXXDV92ZaT0lO/7u9Gdbrxw1X5APwOYihcRIK06mDkqS1nVH9A7O7jyg/Kb9yJ4i99n5xUzL6sSgZnTJHeCbMo 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)(136003)(346002)(396003)(39840400004)(366004)(1076003)(8936002)(316002)(107886003)(4326008)(6916009)(6506007)(38100700002)(26005)(8676002)(5660300002)(86362001)(38350700002)(186003)(7416002)(2616005)(6666004)(16526019)(66476007)(66556008)(2906002)(36756003)(6512007)(6486002)(956004)(66946007)(52116002)(83380400001)(478600001)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?l+wi2pL2Qvox2gdWn+Mo11n5K84shf9Su96QHlnwLwxBNVd0pCazGMHcRFNf?= =?us-ascii?Q?h43QiNvT2vI81ic58n2UAUq5cYdpFfBAWetO9inRtmzF0e6LcPV8zEv89chF?= =?us-ascii?Q?bsSlKr2q3joOlpVwq3x/GoS0EUZmjFLZKP1MslW3A+ofrn9fdWMPkise7HGk?= =?us-ascii?Q?ErzvAE3lit1AklSbJijdCIYlYskZa9nhcclZJIzQs6QEDIlMN/ZHNKt9qi2D?= =?us-ascii?Q?9M6boIZ9M3z5+AXmtfpoVxOYT4NO1VulWyIQPMACY2wGknkOd7FClhctNdln?= =?us-ascii?Q?2ENt8uVjU1TsTlqot3/So8witD90zDCwvaazxgwu5Ya47v5ZUG9zDCLVeSd3?= =?us-ascii?Q?8m+f/b/uSS1XqHXHpCS65T23kAeYKn8LZKl1bq2D778VOiYEm9C3LNrO4XyR?= =?us-ascii?Q?IyNOeHfgnrK+TQZPK9ss8/zFdo1DEMMn6VhfHChERwdxOayLwr8cWaiLFVY3?= =?us-ascii?Q?GjRYL8Z1yRhjuO6ZTFMYUbZbxzUqPUx+BW+jRfmAiQCHUf776aPRTkpcLPxp?= =?us-ascii?Q?JqbTn34kZG/ssqT6cUBDsDoCWXRYw+Jcc9lUOzw202c5a8e2aVIygSGts2m8?= =?us-ascii?Q?6nE4wQdeawxaeV3+aBE5GQECJk7oKF3uBKksoXam5DaPrUAnY853nvTsDbgG?= =?us-ascii?Q?1UVf++KHCepA1cyKYSQGW5LEVZ6af9CWRqy6KTtAMvsb18fZDwBmYYSIMacl?= =?us-ascii?Q?LzXTRDyZNoWSthEeoGjPMGYXQJzcc11GCdijutkn9bywYciylp0oDeAA+est?= =?us-ascii?Q?pGwHxiyLTBCDepYcqbcpnk9xFyFSKy34vIoRuLUG54Bm6p2kgoSN9lKaq1aW?= =?us-ascii?Q?BRdZaAE61IfLiMFsi240ggZCIRinepIKhGAVfJ8ysnZEuXmxTQQjJQS+GBdP?= =?us-ascii?Q?69rmdydwvI9/j6XQSPqXU9ZqewdB/6uoFtI79RpBNE6SV7urihbuoFnejSIB?= =?us-ascii?Q?fWdkZXAPrPGS9ghPXYN6WjFsDpGog5bfZBnEMBePENglkPp8m3kEwogsKWC1?= =?us-ascii?Q?vVTmILwG0v+NRWhuEYdlUH7P3eIAmidOXep5cN6Do/a9LJi0pn9pdSvQOmTm?= =?us-ascii?Q?rdQXROGtY6CV29tPYn+1wgfVj9BC6+ZWYkKJB4lwD8aMNKoVCD3X7pFTWqcX?= =?us-ascii?Q?nVG22ZC9FCjmT1exLAGrdVweied6MYKtSAzsxOvtTf0NadFaf4tXkR/9u0jD?= =?us-ascii?Q?ViWm0ysZMEossxtFcUtBNvnaolRLXPyly8X8vxtTqu06YTsl1RLGstUH7GcM?= =?us-ascii?Q?UDT+SDezLJx+QEYv9Jpi6taodx81BLTz0ZWUCY55nQl38hCKiykEai7858cL?= =?us-ascii?Q?K2yfhu/BnRgI4abYU6ttLoe/?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1596a971-eb10-4a06-cdc1-08d918ff4af2 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:45:00.4143 (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: lSDfHBLps+jOx1UWwnlaDElVXMgIOioifh+YqTKaow6HCvzXsw2mWlS9PIhOXyIYtakR49RxbY+KGfoQf17ldv24JMCp2HiEVCRdZaVdP5c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4341 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.21.135; envelope-from=vsementsov@virtuozzo.com; helo=EUR05-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 publish copy-before-write filter, and there no public backing-child-based filter in Qemu. No reason to create a precedent, so let's refactor copy-before-write filter instead. Signed-off-by: Vladimir Sementsov-Ogievskiy --- block/copy-before-write.c | 40 ++++++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/block/copy-before-write.c b/block/copy-before-write.c index af2bb97a30..2f06a524b8 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -43,7 +43,7 @@ static coroutine_fn int cbw_co_preadv( BlockDriverState *bs, uint64_t offset, uint64_t bytes, QEMUIOVector *qiov, int flags) { - return bdrv_co_preadv(bs->backing, offset, bytes, qiov, flags); + return bdrv_co_preadv(bs->file, offset, bytes, qiov, flags); } =20 static coroutine_fn int cbw_cbw(BlockDriverState *bs, uint64_t offset, @@ -71,7 +71,7 @@ static int coroutine_fn cbw_co_pdiscard(BlockDriverState = *bs, return ret; } =20 - return bdrv_co_pdiscard(bs->backing, offset, bytes); + return bdrv_co_pdiscard(bs->file, offset, bytes); } =20 static int coroutine_fn cbw_co_pwrite_zeroes(BlockDriverState *bs, @@ -82,7 +82,7 @@ static int coroutine_fn cbw_co_pwrite_zeroes(BlockDriverS= tate *bs, return ret; } =20 - return bdrv_co_pwrite_zeroes(bs->backing, offset, bytes, flags); + return bdrv_co_pwrite_zeroes(bs->file, offset, bytes, flags); } =20 static coroutine_fn int cbw_co_pwritev(BlockDriverState *bs, @@ -95,29 +95,22 @@ static coroutine_fn int cbw_co_pwritev(BlockDriverState= *bs, return ret; } =20 - return bdrv_co_pwritev(bs->backing, offset, bytes, qiov, flags); + return bdrv_co_pwritev(bs->file, offset, bytes, qiov, flags); } =20 static int coroutine_fn cbw_co_flush(BlockDriverState *bs) { - if (!bs->backing) { + if (!bs->file) { return 0; } =20 - return bdrv_co_flush(bs->backing->bs); + return bdrv_co_flush(bs->file->bs); } =20 static void cbw_refresh_filename(BlockDriverState *bs) { - if (bs->backing =3D=3D NULL) { - /* - * we can be here after failed bdrv_attach_child in - * bdrv_set_backing_hd - */ - return; - } pstrcpy(bs->exact_filename, sizeof(bs->exact_filename), - bs->backing->bs->filename); + bs->file->bs->filename); } =20 static void cbw_child_perm(BlockDriverState *bs, BdrvChild *c, @@ -186,6 +179,7 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *sou= rce, top =3D bdrv_new_open_driver(&bdrv_cbw_filter, filter_node_name, BDRV_O_RDWR, errp); if (!top) { + error_prepend(errp, "Cannot open driver: "); return NULL; } =20 @@ -201,22 +195,34 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *s= ource, state->target =3D bdrv_attach_child(top, target, "target", &child_of_b= ds, BDRV_CHILD_DATA, errp); if (!state->target) { + error_prepend(errp, "Cannot attach target child: "); bdrv_unref(target); bdrv_unref(top); return NULL; } =20 + bdrv_ref(source); + top->file =3D bdrv_attach_child(top, source, "file", &child_of_bds, + BDRV_CHILD_FILTERED | BDRV_CHILD_PRIMARY, + errp); + if (!top->file) { + error_prepend(errp, "Cannot attach file child: "); + bdrv_unref(source); + bdrv_unref(top); + return NULL; + } + bdrv_drained_begin(source); =20 - ret =3D bdrv_append(top, source, errp); + ret =3D bdrv_replace_node(source, top, errp); if (ret < 0) { error_prepend(errp, "Cannot append copy-before-write filter: "); goto fail; } appended =3D true; =20 - state->bcs =3D block_copy_state_new(top->backing, state->target, - false, compress, errp); + state->bcs =3D block_copy_state_new(top->file, state->target, false, c= ompress, + errp); if (!state->bcs) { error_prepend(errp, "Cannot create block-copy-state: "); goto fail; --=20 2.29.2 From nobody Sat May 18 07:08:57 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=1621234503; cv=pass; d=zohomail.com; s=zohoarc; b=hUVw/39bcoMek5jnpqbwPL/ySggmL4lhm+Idswn1ZBLAlA63hH7aCfxKQSwpQUZdsDOCZAfqKf6EHe7O+3J/hV8Dn98k7ariY9EKXmQmg9RW1DsiNP42136tJLdC4144wwr7pJ+2JcuBh0hawdzl3D94I+qrR2R2Dd//i2up1iE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234503; 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=mfLJFkWiQWYGT/wsVzyWieZJbb6qjHcJA1KOMII7TU0=; b=H9WS9s3flBhG7wuuxDdCxyTlmEHiUCIxWPB3Yn2FCeG4TLDA70mTCrIWJ/+sQzAKBVpjj44iI/wdVZgDCXu1tPbPnuEk4qIszj5z2cpwefwZrhMTnfemqZhDRkK4te+ve32Qfhml4EJjhoeozDDmBf39uxBrfRTOuB1kAGfdD4k= 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 1621234503434787.7537112401801; Sun, 16 May 2021 23:55:03 -0700 (PDT) Received: from localhost ([::1]:53178 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liX9a-0002Al-AJ for importer@patchew.org; Mon, 17 May 2021 02:55:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33384) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX08-0003mm-Hv; Mon, 17 May 2021 02:45:17 -0400 Received: from mail-eopbgr10124.outbound.protection.outlook.com ([40.107.1.124]:1412 helo=EUR02-HE1-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 1liX02-0001ta-3G; Mon, 17 May 2021 02:45:14 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4341.eurprd08.prod.outlook.com (2603:10a6:20b:b9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 06:45:02 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:45:01 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:45:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aLROZKGzoycEaek+V67wtflFEPsj+4Xc57bGgqljH3wD/Aks2uRc0J0Ob0GtORoSs0Xm+iQPeiuErUgtx+ZWKxroNk1ekqhVGR6X2dKOzFgvs9fd1gYU49xmjlDtQR5NwFqdmX7veFExkmkf+u+9zHkbN5E3o0jpsRlhnKgWttQ4lLy5Kxsc8iHofBiYkG95Ei9FwfuJkz3v9qrBalJKvP9W5nLrPu2RBOTT3jk5rPMmdz+3a5pCDppw0Jbhu5/uN+rsCw1EJQnjUC6YPkRU/SrbmYc2UqfRKjOM44YQveye8UsUz1zwco8EjW7FKzG7Nlz+6li9qIP80Z4sPqNkEA== 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=mfLJFkWiQWYGT/wsVzyWieZJbb6qjHcJA1KOMII7TU0=; b=Fl6oxFqkotq4+xyaNANO3+p39ha1AxCANo893dHqaAxJiVrYt6vJ95qxLr95ipHUQdmPwJoPb4IEraC0zD+pkiApLHUQYO5F5j9KoOLyWu3MY7IsaJtIItqxLpCC3eDj5BHjnhSL01u5OZM0SbpGH1By5VSpLdXRJbnuGh6dR7rbgW7PTVAsBnH7OT+s7liorKhXtQB/txz3+xmjr0SMfxZDlNG4YbulwN1c24z5PvFZZu9pzZLVoBWmoD/5AFSQsqJLZ1HTQXPBGShkgQGCrtceHeQHZ6HqhG9NhvmUqZIv1J0Ep4Pe6kG3HPTvaD+EV8QZWLR4qCoVb8fbnm/Iog== 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=mfLJFkWiQWYGT/wsVzyWieZJbb6qjHcJA1KOMII7TU0=; b=GdEc36uoSU33/+kpctrfmN/7wm2LVbhENvP93RnP+hGTYsHz9wPCr5JuxNbRjJWHuRoZo9t8bplANiVNp6uhe3kwJa4mdIDWRl8lF4MkWnfvWEnOX8IZjRdOMlc1HcTw6R7WhckihBkZkAL2LUoUd82qX9YpF3LQqNqJFGsqSVI= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 12/21] block/copy-before-write: bdrv_cbw_append(): replace child at last Date: Mon, 17 May 2021 09:44:19 +0300 Message-Id: <20210517064428.16223-14-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 13778ca8-2520-41f5-97e3-08d918ff4bbf X-MS-TrafficTypeDiagnostic: AM6PR08MB4341: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:1013; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /kBP0hRKCGx7TNW/YLc6pEyKmW8CkV8U16Qcad0j6CHw90NDVziXMF5e5lOlz3XwH1N1hXBCcHSLwlmJAC1YrLatDt31EGh6SyU0dl3oWJtdg3I76T2g4SKIvDMUZ1lot+0U6YPkoeUdqgHjoJUM6kKLQyxbiyAmQlKz2LzCT/PR1l/yaC3mvHsF2pd7DVslwWyZXL5rJJCa5BhmKauSOm0loZ23orKqVPm+KOlvtQEdxypskwR3EBXITNM4B3+EBJL7Df/R4eAchxf4srOycHjAHSyyX/MVlLv65tOPUl+6zS6BTdjU1gpnESLBVfxZ2Z0jVhUFeMtf+u5grXxKbytIV3aXRB2S3Gu20AEl5lxHxs/xpgpAXMZRopzdRfdkiwCrKyadw2eowWYQpXPIS4lW12dZ2Kn0QDlBM7gJ8i5FWtRZXsgzEVT5OtLH1QKifV1nhfOz94zjeL0szFOdIUEK410mQI0I5vj/PysoY57vWWIcmt3r5N8sxeNNWWZ2bOZ4/VQ4h/dlVYh0Y/JKWon7GY8tChUFBlZowD3XqVvgayYYRzcSc1F8Z5Jz4KFD7t/XTSn2IEgkrZfFHjVXK13WD1p7LNmTBHd+jY6qSuJ+vaeu2C+wXVXN4P82WVCpJfVLW+i1L1J5tytDPXILamCzLTpxvjYrL0aG1z7AIhLi9z0J9NkfHk039KqjTXbm 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)(136003)(346002)(396003)(39840400004)(366004)(1076003)(8936002)(316002)(107886003)(4326008)(6916009)(6506007)(38100700002)(26005)(8676002)(5660300002)(86362001)(38350700002)(186003)(7416002)(2616005)(6666004)(16526019)(66476007)(66556008)(2906002)(36756003)(6512007)(6486002)(956004)(66946007)(52116002)(83380400001)(478600001)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?UIW/whtwJ+z8Wq763/ZlZlzezyaDbDGDo4UuRXIAB6YKbUxMVZsFqoi1E9rv?= =?us-ascii?Q?rUWgpLxUpGXcHWg/tg9+EexpbtK3ZZ48i2w+disArLV7BcxI7BBsbfamENvV?= =?us-ascii?Q?MxM8dV++yr7OH/Hhb7jKlNdG4TOPwYBzTm0IxDifJCOKstym3mEhMHPZE+4I?= =?us-ascii?Q?wr7mKklVl72xZLGxHUMdv39Zod2Hs1xXSgbXw8Sa089v6m4u0Y1XYWZbwIrJ?= =?us-ascii?Q?Db8zADA2Hmi3CiyOL8AS16XUXS7yxG+2ukzy4N4xSixctrE+UGpXJux732Uf?= =?us-ascii?Q?0aD3rnytVlgjQKaGNfIiv+PqDPPEAoMSiNS3hJabzYMLOpGlmmRvMyvOVt2W?= =?us-ascii?Q?LWSSzCCgQwbRsSkRpqlo8btheTsFfPABvFp00Bm1qa6CvzNaxvfEWGbxHr9h?= =?us-ascii?Q?n8NPS/ugSZykuQSDbo9HreMaSBmxvbxsnT8AQPx9OaNvGxgGgUAm7YNCBXgP?= =?us-ascii?Q?RZvBrQgBsa+CAUi37JuEHRnH1mwbobRKE/2o38Rl47SQUv+knZpnT5QsKTV8?= =?us-ascii?Q?K8t5n25yrU1OIH00cGCuQoOqb7+gf/ecE5yNa/8FZ/92eMC8VxD63FT0nm95?= =?us-ascii?Q?7VKZ4hlZtVLJFvJlGfmk5E9GloAac+m+i/IhlVomOOMH0wVBMFEVawZQ/SvU?= =?us-ascii?Q?U93Etxh0I8uavRo19DLtiYgKJUiajQMDihwplZX6RwdAfaODGfFe3xbrJ/J8?= =?us-ascii?Q?oRxh4bTs1d1AIY+eGL+L12IziyfjYh/6k9yIfG1Ru+h7ykjs1E1SvzcZA1Q8?= =?us-ascii?Q?3nj4z1d5CvshYdX+eODgY2cXEjR2iIuAoUaU3+y+cQp9svj9B5lHPrjNzxph?= =?us-ascii?Q?DPW0dcMB2aifyZuV+8jA7OZKl68XjFnSgFqdwMKlfi8ve5IPrU6jl7oxJ4X5?= =?us-ascii?Q?OsxWo8JU4Cdg4ErdvsVYgyI146oKSlFCgI+Yp4IyVYwHw8z6uN/sD0tIdz5j?= =?us-ascii?Q?6xzGHs4xHuLj+NK2KYMzLpo18+doGlZj/BUA3WZv/FSgySMu63gs6u+Y4QlA?= =?us-ascii?Q?E1Q1OcVTLdaps5W4PFywjMF7IYE6yc6NImdPbVCMFpY+nCR10fgeddKKVodm?= =?us-ascii?Q?GvhqHerexIgiJVfKa2Ocw+Lj88sdZBliWgQ/bNUcpcaf2//hN2m//iT/zlNm?= =?us-ascii?Q?E+rwJ3W8Lo/dwks9KO+1a7GZIQXWABz7hQsyeNQ4yfD8XI0RwMsl4ep8Whvn?= =?us-ascii?Q?PzCNnDmImCz5zp+5lWJ8KU0d5SZuMRzHYtVvvu5EcXfWGpwvDZpSvLV4Jd9t?= =?us-ascii?Q?MinSOfwM99KoTAN0SFmQMr8CozW+l8RNk0w2CE0oAAsgruQ4CLmYtNuTsJ5m?= =?us-ascii?Q?e2Ah0HCUU3KHn0SVRx8uGtyJ?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 13778ca8-2520-41f5-97e3-08d918ff4bbf X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:45:01.8092 (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: YsnmYMWK+fCGdrg49BzOEiEwIuCwwdOLgdqCHml4Bc2BYih/kj5EW5VksX7CqIJD+cXdOecsnM6uxUN/d/H4viwBOLwX5JcI5qPoxLuICVo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4341 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.1.124; envelope-from=vsementsov@virtuozzo.com; helo=EUR02-HE1-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" Refactor the function to replace child at last. Thus we don't need to revert it and code is simplified. block-copy state initilization being done before replacing the child doesn't need any drained section. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Max Reitz --- block/copy-before-write.c | 33 +++++++++++---------------------- 1 file changed, 11 insertions(+), 22 deletions(-) diff --git a/block/copy-before-write.c b/block/copy-before-write.c index 2f06a524b8..35a9aa163d 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -172,7 +172,6 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *sou= rce, int ret; BDRVCopyBeforeWriteState *state; BlockDriverState *top; - bool appended =3D false; =20 assert(source->total_sectors =3D=3D target->total_sectors); =20 @@ -197,8 +196,7 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *sou= rce, if (!state->target) { error_prepend(errp, "Cannot attach target child: "); bdrv_unref(target); - bdrv_unref(top); - return NULL; + goto fail; } =20 bdrv_ref(source); @@ -208,18 +206,8 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *so= urce, if (!top->file) { error_prepend(errp, "Cannot attach file child: "); bdrv_unref(source); - bdrv_unref(top); - return NULL; - } - - bdrv_drained_begin(source); - - ret =3D bdrv_replace_node(source, top, errp); - if (ret < 0) { - error_prepend(errp, "Cannot append copy-before-write filter: "); goto fail; } - appended =3D true; =20 state->bcs =3D block_copy_state_new(top->file, state->target, false, c= ompress, errp); @@ -227,21 +215,22 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *s= ource, error_prepend(errp, "Cannot create block-copy-state: "); goto fail; } - *bcs =3D state->bcs; =20 + bdrv_drained_begin(source); + ret =3D bdrv_replace_node(source, top, errp); bdrv_drained_end(source); + if (ret < 0) { + error_prepend(errp, "Cannot append copy-before-write filter: "); + goto fail; + } + + *bcs =3D state->bcs; =20 return top; =20 fail: - if (appended) { - bdrv_cbw_drop(top); - } else { - bdrv_unref(top); - } - - bdrv_drained_end(source); - + block_copy_state_free(state->bcs); + bdrv_unref(top); return NULL; } =20 --=20 2.29.2 From nobody Sat May 18 07:08:57 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=1621234881; cv=pass; d=zohomail.com; s=zohoarc; b=ilteJRZkAFYXkaNCkOI+c0Qi+YcSFGVOX5FuEuw+prlN+JnmW6Kos5q4euKPQPamGs6RsCmciMDC7YFShgJH1FI2eOpzw4BzlJkWPVjspBYlxZ9Ota8Pd9jEiS5zbWyk1eZOVnTLi9BU8dnN1PUU3QnUfX44ts9KVMMiXxtbHdo= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234881; 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=RnvR79PeouFPdv1Cxp5VlTSC86W1JSFVcCHRYrvgwdM=; b=QUjArP341JeFWPs7/6tr2frS6ddehDsB0dO6kwqleg9LayEaPjb/d3+KRfD1b4vjLwX7AD+7E+mqnZ/2Erty/vaLGArSLGBMwRiLOsRwZqIwWxyeVPfXlK6R/eaBEMuBMNIH7B9PcUbRDrCeFmRKUGcWbqSSToSfBnG4cLxakjs= 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 1621234881812557.2108892227308; Mon, 17 May 2021 00:01:21 -0700 (PDT) Received: from localhost ([::1]:44174 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liXFf-0006ep-Sk for importer@patchew.org; Mon, 17 May 2021 03:01:19 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33430) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX0H-0003wz-C9; Mon, 17 May 2021 02:45:25 -0400 Received: from mail-eopbgr10124.outbound.protection.outlook.com ([40.107.1.124]:1412 helo=EUR02-HE1-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 1liX0A-0001ta-4I; Mon, 17 May 2021 02:45:25 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4341.eurprd08.prod.outlook.com (2603:10a6:20b:b9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 06:45:03 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:45:03 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:45:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CVjwGKVCn2QEqLpU/fuIqGH9K+3cMzghRaidoF5v6NP1Y7b2Fn6nuu1/FzWXAjLrpFauxbpW84lboj6Kq5Ny0oQcghWMToZBiH1YxI5ZUSHeRjTADmy10ZbT9cq774GFm7n0lRYgRCbJOSE89xlFNaPR1IU1F6FJ2I8WFHYeyV8CtF6Q9tjqhU3XBtO4w7iMgw41OquvYk8riYEbpa/9wDJIkXj4F4kVdPZct6nKTL02lNPaIEcBFTJz9mBvl/Yqf+1v60mEoKp+P1aNFXqkKgDGMTUnYcTB+emLbkwikQkGyWIv0F3+DjCqatsd0OJG4dKo2+F4ExqW6fpVJn3N6A== 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=RnvR79PeouFPdv1Cxp5VlTSC86W1JSFVcCHRYrvgwdM=; b=DTIs8ltwa+plFPg8wPkuKsAxwjFix3wPJzjp9zw25htlXhMwT9292ZoPAZW4ORzdAUJyd3ZMag3n+qtJfRmMYlDRoO+7Lj752qhMCm5XGlsjiYke65H7FSUGIFGzr+BMqqSKbsmvLU6ZhCh/S11dJtfGyaf86mGByneq71p03npkoq9judUWvPMvt+oWIlblwT5dyoIb7SF5sV+sSRS2lHDvO/oWICJd7oiA+Bm2yvlMIv/zrNOHmljm+nFZOwEnSPEmef2Ijx9lMfcX2K0MXJMbgYcqi+fgzXnY8o4DyugKlkSRFH7nWd7K0evajGmZKerRxuvqX3qC7K6LMvoNOw== 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=RnvR79PeouFPdv1Cxp5VlTSC86W1JSFVcCHRYrvgwdM=; b=fO7PJHot1w9Fn7Ms6tsml1gXBtcOMmmUocv72CBppkZyZ9ZVWZ5Ytr5V7n2M4AjZ6qGY8/Gj4zzHUa56Mz9TdGsap/YFXrX5An0teqZgZQgakLDD8vW3J5zEk3RS/m7u6AXKfRCfuNkcLFb5jDzEcVx9WBCB1i7xrJgIKlxBAuA= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 13/21] block/copy-before-write: introduce cbw_init() Date: Mon, 17 May 2021 09:44:20 +0300 Message-Id: <20210517064428.16223-15-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 72d1d230-4311-4440-d0b4-08d918ff4c9a X-MS-TrafficTypeDiagnostic: AM6PR08MB4341: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:813; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TaN2qC12R+rzzMSZ3XkSIvl7+EeLi3WpyOFPHdldnTWqXvqaA7nuF7DBlQdbUrwrOyGDop3rzYlxSu5AxaoHLo/q09SaYAzCrw0Mu56WgNdIjP0T6PlBtul4pnPcoypCL9rJ2glaJCufcNcNnhX6YlLlybM5QxTHjLTo66QhVsihH2ZxmvfLbVpOXudI3M74gqu+WnwvrNrc+0mJGY6OQwXAkQu1jYaO1dW05zBO+QA8mRsdB3Mifu/ZC8YWuJ4pX4pq763rNJP1lwTxMeNSXgRPazNpU7rS5tKTYoKi5dDxRySN4IbItqrdfwXw9vihtyr0ms28DwL5aWrt7sPW9O6ui8I7qN+UclRpKVYP+Vg5d7yRM2HqAo3Mt9KtM3LXDUdBBSbtCdy1XBVNHXfyDXb7OqUrjeC0acYXn2KRGz8rhAypbdccHu18WVkZ0n7O7HSs14YCPRBSlltHwQTASFjjYd3OX7glfOCTr1WknhMjQxJCzPSZs9q3mqZ6CvHy5vTnwkg/x1XjMS6trtZyoWflOuCzuMNSm5AGZhA5A+DlIfjd94l4GBfG9KkWEdvoHaa4G+6NR/OjAHW0HARZWATh9ucaid2ZO14MIgblBrPc0U9bXLK9pzhkcdm21M1vwFsPHBD4YIsQGqU1CgY71cn5kmtZimNrKoqlHneSujAkPFel9f4CGTlLqSVavMRk 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)(136003)(346002)(39850400004)(396003)(366004)(1076003)(8936002)(316002)(107886003)(4326008)(6916009)(6506007)(38100700002)(26005)(8676002)(5660300002)(86362001)(38350700002)(186003)(7416002)(2616005)(6666004)(16526019)(66476007)(66556008)(2906002)(36756003)(6512007)(6486002)(956004)(66946007)(52116002)(83380400001)(478600001)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?lC+Ny2NyP/tgu21o15f6kuyyEypH5pPQwpfWwoKZM19jZoDfSqKEEZyNqyH3?= =?us-ascii?Q?2wdOd7BIzAleu0WZRFG8S9vT04tJEBBgcMPNA0VtKcPBjbuwsCNo3pokJGgx?= =?us-ascii?Q?g4DaRPIp6zXlpsdYQOah/ycgFF1NFhQUS7yA8COn37O0giGIZcmYHJeUNYbz?= =?us-ascii?Q?OeDvk6DWB3Wknx1gPYWkuZKJMG7v8gkkqV7YmFNIZIVVMmDRHdLnnbI6D+Im?= =?us-ascii?Q?GCFxWEp+GYtCXHPu4FkSRrkzMbq9Mq2969UlMQwl1Phj5NPiH11wmy+iuKoE?= =?us-ascii?Q?FbKN790flerS/36pb+ngokLbv3OPHsr2BusExSJdSJWZTL2FA3RHjXW4FXsf?= =?us-ascii?Q?qfoiaaiORqID6J6y7USV6aWe/IgsmgbQAUHp/nLcFYRFrrucVCromotU6SYF?= =?us-ascii?Q?ToH2eU4/ajcUsw6uEdU4nGqDrKdxs20PmZno3J+wl3CQUPmg4Ru11wabzqll?= =?us-ascii?Q?EDepkxQ6LyVlpXaU3aQ7/tbK61WPq+T4RhSI79lrNt8ETRHv/AmaKlV6KUnG?= =?us-ascii?Q?nAqLqfUg/HIpB6UFGboQJ5jkfzr0NFceUHqiKNsZd17/DtvUJlcsyhUH82hW?= =?us-ascii?Q?6nsqHvkVGd37Y7SG2/GS9mkYZlSBsgiyPV+0NejXVDmSDW97QpMaJoo64nXb?= =?us-ascii?Q?WjXrx8Vdi88cuk9RndRb1yAm+/cXTXaiuyJ0zn3DsQ09y/qi+em3MLztB1Ja?= =?us-ascii?Q?RwPuNZKwwCjxLKnXZI4QwGWwlnyNfXhpuyDA0FkgmYjMoAQ3UlkENdGjtcuG?= =?us-ascii?Q?11mugC565XC/xKHlRP48OY2bVubG+l1ju/pKh16+6i5hdkO70J2A7tCYg8Nx?= =?us-ascii?Q?qF/BKiAoOVFCcLR8IbBfLPYbKcCKFyCBe0YtUNm5i3ykpElM9UUq+6VKl+FT?= =?us-ascii?Q?rdXCyfd3d23sGDmQIrTng498sCM39TW5X3IPaU2pldXqFvoEQt5wQGDXrfLO?= =?us-ascii?Q?vOdrdLf7z2f81zMWzLja+X0ZDvMus8MlHwgPzEoz1sRHkK8M84s6ZrOA8LrR?= =?us-ascii?Q?4lWFV5PGkt0HI1qDQ9VKgL5l4NKj9GlzWqzIhodYaxUxtUEDtR1+4WUCPFdr?= =?us-ascii?Q?q9Ia6lKSfVLQyLsR8IYHggKwwE/XG+Z9XyoZu53mw8MDSLgD77CR1Lt101XM?= =?us-ascii?Q?51likcKHgVefYMfag8AzzVrOM5Mbt5paJPY63+f2seH5AJNTzE4/n2apN6tD?= =?us-ascii?Q?nl9xToOcsPc1pddN4pdYTb3Uydsy0V6p/aQAdv6Q/XPTcUdRAhV5A8jbAtvz?= =?us-ascii?Q?pD4v0RqnoNWc9Zxn6lcaegEiOHyrNwGll0QAFbXLdo03vBYP8EV0k3UvmTZ1?= =?us-ascii?Q?ftQe0hvuf/79RXC8kM7Pt8Fe?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 72d1d230-4311-4440-d0b4-08d918ff4c9a X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:45:03.2956 (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: 32dHKwSmP9b+H2n7A2dwALGLnl/eDs57j5A5ISLasK8LbeeUL4dZqQ8XflXnQvc/8FtXafaH4iJixTv+mqpHqHYEpgE4AhQfS8UVc0ESzds= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4341 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.1.124; envelope-from=vsementsov@virtuozzo.com; helo=EUR02-HE1-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" Move part of bdrv_cbw_append() to new function cbw_open(). It's an intermediate step for adding noramal .bdrv_open() handler to the filter. With this commit no logic is changed, but we have a function which will be turned into .bdrv_open() handler in future commit. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Max Reitz --- block/copy-before-write.c | 73 +++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 30 deletions(-) diff --git a/block/copy-before-write.c b/block/copy-before-write.c index 35a9aa163d..94b1357fd8 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -144,6 +144,47 @@ static void cbw_child_perm(BlockDriverState *bs, BdrvC= hild *c, } } =20 +static int cbw_init(BlockDriverState *top, BlockDriverState *source, + BlockDriverState *target, bool compress, Error **errp) +{ + BDRVCopyBeforeWriteState *state =3D top->opaque; + + top->total_sectors =3D source->total_sectors; + top->supported_write_flags =3D BDRV_REQ_WRITE_UNCHANGED | + (BDRV_REQ_FUA & source->supported_write_flags); + top->supported_zero_flags =3D BDRV_REQ_WRITE_UNCHANGED | + ((BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP | BDRV_REQ_NO_FALLBACK) & + source->supported_zero_flags); + + bdrv_ref(target); + state->target =3D bdrv_attach_child(top, target, "target", &child_of_b= ds, + BDRV_CHILD_DATA, errp); + if (!state->target) { + error_prepend(errp, "Cannot attach target child: "); + bdrv_unref(target); + return -EINVAL; + } + + bdrv_ref(source); + top->file =3D bdrv_attach_child(top, source, "file", &child_of_bds, + BDRV_CHILD_FILTERED | BDRV_CHILD_PRIMARY, + errp); + if (!top->file) { + error_prepend(errp, "Cannot attach file child: "); + bdrv_unref(source); + return -EINVAL; + } + + state->bcs =3D block_copy_state_new(top->file, state->target, false, c= ompress, + errp); + if (!state->bcs) { + error_prepend(errp, "Cannot create block-copy-state: "); + return -EINVAL; + } + + return 0; +} + BlockDriver bdrv_cbw_filter =3D { .format_name =3D "copy-before-write", .instance_size =3D sizeof(BDRVCopyBeforeWriteState), @@ -181,38 +222,10 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *s= ource, error_prepend(errp, "Cannot open driver: "); return NULL; } - state =3D top->opaque; - top->total_sectors =3D source->total_sectors; - top->supported_write_flags =3D BDRV_REQ_WRITE_UNCHANGED | - (BDRV_REQ_FUA & source->supported_write_flags); - top->supported_zero_flags =3D BDRV_REQ_WRITE_UNCHANGED | - ((BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP | BDRV_REQ_NO_FALLBACK) & - source->supported_zero_flags); - - bdrv_ref(target); - state->target =3D bdrv_attach_child(top, target, "target", &child_of_b= ds, - BDRV_CHILD_DATA, errp); - if (!state->target) { - error_prepend(errp, "Cannot attach target child: "); - bdrv_unref(target); - goto fail; - } - - bdrv_ref(source); - top->file =3D bdrv_attach_child(top, source, "file", &child_of_bds, - BDRV_CHILD_FILTERED | BDRV_CHILD_PRIMARY, - errp); - if (!top->file) { - error_prepend(errp, "Cannot attach file child: "); - bdrv_unref(source); - goto fail; - } =20 - state->bcs =3D block_copy_state_new(top->file, state->target, false, c= ompress, - errp); - if (!state->bcs) { - error_prepend(errp, "Cannot create block-copy-state: "); + ret =3D cbw_init(top, source, target, compress, errp); + if (ret < 0) { goto fail; } =20 --=20 2.29.2 From nobody Sat May 18 07:08:57 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=1621235053; cv=pass; d=zohomail.com; s=zohoarc; b=YfXjVpeOFj3mp8kgo0ksI9ncWLx0mZ7AvpbKooO03y/qda70KQTMbEeejQd1FNwJtjWfgqpzol5xvwnqlKDgS1gelFrQ6G3bvNzouBqGLWdFXA+SAnJzSxwHGPoeQte8wOm87V/FHXe1VUxuVS413g+EhONdsY17zU4/UE04J+M= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621235053; 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=7h12npdFpHkBvwXawypfkym5RDO1kdB4SUV4OSXlJTs=; b=HTMJmDARHySfmom6HpIJBwgm2KeSvVqJht6f2TW40dGYv+4JvKTsJKwccYms/SSE6sseDGw7u6oOR1ER1SUqQvzcKaUo8Uz4BEUPmLwdww0wmSJSt95Yv9ENYY3z15DVe3NXB3OQV7qLwcx0PiK3bwA6pUAETsTJ6hL9NdFwqJY= 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 1621235053753495.990662934998; Mon, 17 May 2021 00:04:13 -0700 (PDT) Received: from localhost ([::1]:53252 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liXIS-0004Uv-H2 for importer@patchew.org; Mon, 17 May 2021 03:04:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33462) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX0M-000458-Fc; Mon, 17 May 2021 02:45:31 -0400 Received: from mail-vi1eur05on2135.outbound.protection.outlook.com ([40.107.21.135]:63681 helo=EUR05-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 1liX0G-0001xR-5Y; Mon, 17 May 2021 02:45:30 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4341.eurprd08.prod.outlook.com (2603:10a6:20b:b9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 06:45:04 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:45:04 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:45:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LRX2SEC6ZKJ3X71ZhtTafzzmzQKJAaPLN7XChgTdRWnvW54863qfL8H5aPLNlymjB3sXuXQBp/R3wFmWkWBVV5u4HGcOvMLbTC7YZoNWuGqKI6LPADvX5o8OjVqbUGCwDe/8qj83OrNxjJcMlH39o7yNeHS/Ve19Fyvt0ykwMxndSlMG60mCHwf5orw/ZRat3AhAWVlIlLOu3AJKIjgzexxr5Xj097iingu6We7EcdEMR+pKhCZJ2OIlg4l1vKgsy4TrKWtGYgYRUFSl0G07ZdzvQEUzD3KxfWqgupmEtHTqrknOE2FMYTycgYtaMBvq+z/7GGag4YjKvBhgSysvFg== 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=7h12npdFpHkBvwXawypfkym5RDO1kdB4SUV4OSXlJTs=; b=a7FqN92cthb+SIvZEjqmGc4SzblEzUahirp1tRXHuodxpEwRYWzSPX1/Kn9HZEZu0FwZ3fCZHsEIlt4KUeHsmDB9ZwtAnZY3mC79SU7LijrvYxlOFMeI0JIz2oCJsO4+texW+ZviZ5FId8fwrq2zhV7+LW4Oo/7Q/5xtI1niVHFpCwtSEEU8GyF1YrCmb48tHGCBH5wt3NyyL1HdHT4hb5i+JCfowfSl8toHj2rb45rG1tPKjQaJhFu+JabEnLN3XGHcLSJqZ7ALPuoliqq3D8o10EUoSRvd4eslAmeLTuZO55ngmKe75q5ureQs5eYK9NlamzbCO0JMiivQ59xB6w== 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=7h12npdFpHkBvwXawypfkym5RDO1kdB4SUV4OSXlJTs=; b=SdGNHB3ansVma7nWM7sNtDSUEZuCR+OE3VTWj0nesvT8DTuj5OrCL+Nj+w5X0tvUAgmrDq2mkklcO6KdTHq2e66XXfjwoPl5yfhjXuRZli29UWkSm/bv+rKnTYskSLY8P8ikOHhVoZsdXKiIRAh7K0B2Dyef1V8+tO/yRIPtG3s= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 14/21] block/copy-before-write: cbw_init(): rename variables Date: Mon, 17 May 2021 09:44:21 +0300 Message-Id: <20210517064428.16223-16-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 241292f4-2d4f-4649-0322-08d918ff4d78 X-MS-TrafficTypeDiagnostic: AM6PR08MB4341: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:186; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jalFLwK7R7l8QnL/LUksCJCDHfwFD9aWSgen4OGX50VROXyVdvvj7LGszEx7VSUhlgDEEcHYcIuSvS08/P929cHRw5T2Ow0vE5Xg7h27bFub5WLIxsFPp06juRm74bCJatrevOmE+TAwWZEnIUspKlo+Mx1DG5zhGZ+Do5bbvGzbcF9KGoZ+hrPeSVVnJyx8lOi3gtZ6Sjlp9NzqP/g/WWAWGGchDeOIn0lRLi6v6ogQGgB8wbZnQ07UMGmT6Sjb1tAD1nEjeXKZxishV23lxjDUXlPW190BspJJmt5ZaC0BqR6uTSs/xc2RQ67L15w/sL/gXDgTD52Bh6gxRsvfFhmOlgUbtni+hIqLCgwDFpKaNit9SYDTlyyqR/1i/P3t+7xWTnApr9kP1n71ZdcipSoVBexqIQh+rEx65QxMe6A0GanoQRj2r827xNcv8jfujjLBISWWGHZ2UeBx4PL8nfeg/v6jJmXHWOEM4+mIhzi1FgeQ8S4mqZcV1CN5wmXetLgfkFTZAvqeWb8pw16adbVfDHyTlABws9AwnaXwVRCqMRFAOpEHOKLkcWFdHTZfNMtiUeOXYDYiQ4vue68Fa5ucWJKP+Rtvl3oKwHoD9EDrZ1ylyBSUssDoS1o4L3zx5qzNaErqMvuKWCNU6o/GGNaCoQ5DJc4xv1orOgmItO1B3loAJNeCjZJNHOmeMo02 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)(136003)(346002)(39850400004)(396003)(366004)(1076003)(8936002)(316002)(107886003)(4326008)(6916009)(6506007)(38100700002)(26005)(8676002)(5660300002)(86362001)(38350700002)(186003)(7416002)(2616005)(6666004)(16526019)(66476007)(66556008)(2906002)(36756003)(6512007)(6486002)(956004)(66946007)(52116002)(83380400001)(478600001)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?0WMwqUlPkjITXv8Hv16qVQXf8h7l1zVdvScvq8xFde1lvAUWfN9tXYOLoxJB?= =?us-ascii?Q?wGByzLjperHYG3Nrz8y4X+VkHpl32UsiFzsNjtx01jAbaOYitRnQ5H6J1Tj+?= =?us-ascii?Q?czx8HaSpPPSmkOqwx3escAL8BWvZpQZQzgj8i1q+ccFvLgXbJNtCLg7rHsie?= =?us-ascii?Q?hgP5zAlFHjAZEKgIDh3gg23EX+7IpIA55asqgKVPxjm7sdmfjalnkg5Sxx1G?= =?us-ascii?Q?hVxgPx5Js7OJOPmV4Z8TbsB4jUuxXf6KjqW9NWjPw/maqOte4mk0Hr7b4kSE?= =?us-ascii?Q?CYWbZ5sgOMRE4ptYmCJDZKipbcLIjgucRMvfCKz5EEaM4FpJpOf8t7xwB5xz?= =?us-ascii?Q?fMiLOtTJdUBk9d7DW5BNJ3tV++cQ6caO6iqypUbYEuGUYocUv+/nwI4Pp6vx?= =?us-ascii?Q?/luIm8jcBiEklXK2LA633QK7J8k4qk5QiWgMdlwydeUtyOw2fvXkeO1L1FcP?= =?us-ascii?Q?LFFmbCR7MdXpG7nCK3uIaZuYaEh9a+FLO35OkGhkXriAwTKkhDXZAxCOpAMl?= =?us-ascii?Q?9nc2gMCYx5zy8HPTss4ZhiDKEXU5UCNB4a6rgG+l1tSUAEki84mzLATh+5hN?= =?us-ascii?Q?+pSO8DkSdriiE7SxYDfKZQDfBiBAdCuK7e4LLa+P3gFYOLHq92/nJ1M6eURm?= =?us-ascii?Q?d/w+CqyhFCb4YnbOmzYvYSwePbssCt1pphxYfW+eaUGl/xxFnYFhzkBLdQD2?= =?us-ascii?Q?ae1p8XBdYJCnlsFkTppb68rGncY2nTAJD+wCpTN/a7wcpK6a56oJhqviys6t?= =?us-ascii?Q?qIfntBO/eH775XNcvLmFjIQtJ+6BcOQZ9jDwN2xSh5O36bbKSTr/3Jun05uU?= =?us-ascii?Q?AALxLZ05xDu5VL6QsA2hj3FPNmrIreGLGGJ5/hzg+e5SkXVCKVF2v74GFxSh?= =?us-ascii?Q?JPvDd4z1Fm13EBUEG6cWuk92KhP+fR3KJTMhUeeFEB5sY51GpHy8szD9a/JX?= =?us-ascii?Q?KxwWVzeO3zoZYNdXZ2uxEey7Aoe7Me/iOvMtb/FWM/OUbflaEKqaPeIqDv2a?= =?us-ascii?Q?RSCDHscVPi6Zhq75CGyB1nQYMaBUg6z+xx73kMKKqrd6Eq1mU1dFnpzorkyh?= =?us-ascii?Q?cEhHurKvfEmZcL2CNM5WP+bPrlrDXMLtxsTsNzRE1kBGQ9lQKiUYEfeo0DW0?= =?us-ascii?Q?ToiU2iINVHBkpAHH8kSH153gTkm9Xvu7c2NNdvVNbJRF/4JZ/y1SoLpkY6Rq?= =?us-ascii?Q?xWwcwCgvK4yITGsRKkizuFKcUqIHtdlGYiOrPR7RlxELy9g6KIyV5/V7GbuE?= =?us-ascii?Q?jNz/G5yWyG5uwEs4s0H/3c4P/eowfuQuApI5ibN3cr7RPiJQRDhtoteZEq75?= =?us-ascii?Q?WnSjXWi6Ra5EKMGwFitO8a7w?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 241292f4-2d4f-4649-0322-08d918ff4d78 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:45:04.6477 (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: n8SMZhlocJ3+GRn98ew/1XEeg0u+5L9nfBBq8/6/Hn3Pfw69xk7AblwN6zid4zSj2svhP2T9BpBv3tLpuejmg48M5DUsx66+B5EsUvrApcE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4341 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.21.135; envelope-from=vsementsov@virtuozzo.com; helo=EUR05-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" One more step closer to real .bdrv_open() handler: use more usual names for bs being initialized and its state. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Max Reitz --- block/copy-before-write.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/block/copy-before-write.c b/block/copy-before-write.c index 94b1357fd8..78dc421db2 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -144,40 +144,39 @@ static void cbw_child_perm(BlockDriverState *bs, Bdrv= Child *c, } } =20 -static int cbw_init(BlockDriverState *top, BlockDriverState *source, +static int cbw_init(BlockDriverState *bs, BlockDriverState *source, BlockDriverState *target, bool compress, Error **errp) { - BDRVCopyBeforeWriteState *state =3D top->opaque; + BDRVCopyBeforeWriteState *s =3D bs->opaque; =20 - top->total_sectors =3D source->total_sectors; - top->supported_write_flags =3D BDRV_REQ_WRITE_UNCHANGED | + bs->total_sectors =3D source->total_sectors; + bs->supported_write_flags =3D BDRV_REQ_WRITE_UNCHANGED | (BDRV_REQ_FUA & source->supported_write_flags); - top->supported_zero_flags =3D BDRV_REQ_WRITE_UNCHANGED | + bs->supported_zero_flags =3D BDRV_REQ_WRITE_UNCHANGED | ((BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP | BDRV_REQ_NO_FALLBACK) & source->supported_zero_flags); =20 bdrv_ref(target); - state->target =3D bdrv_attach_child(top, target, "target", &child_of_b= ds, - BDRV_CHILD_DATA, errp); - if (!state->target) { + s->target =3D bdrv_attach_child(bs, target, "target", &child_of_bds, + BDRV_CHILD_DATA, errp); + if (!s->target) { error_prepend(errp, "Cannot attach target child: "); bdrv_unref(target); return -EINVAL; } =20 bdrv_ref(source); - top->file =3D bdrv_attach_child(top, source, "file", &child_of_bds, - BDRV_CHILD_FILTERED | BDRV_CHILD_PRIMARY, - errp); - if (!top->file) { + bs->file =3D bdrv_attach_child(bs, source, "file", &child_of_bds, + BDRV_CHILD_FILTERED | BDRV_CHILD_PRIMARY, + errp); + if (!bs->file) { error_prepend(errp, "Cannot attach file child: "); bdrv_unref(source); return -EINVAL; } =20 - state->bcs =3D block_copy_state_new(top->file, state->target, false, c= ompress, - errp); - if (!state->bcs) { + s->bcs =3D block_copy_state_new(bs->file, s->target, false, compress, = errp); + if (!s->bcs) { error_prepend(errp, "Cannot create block-copy-state: "); return -EINVAL; } --=20 2.29.2 From nobody Sat May 18 07:08:57 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=1621235125; cv=pass; d=zohomail.com; s=zohoarc; b=l6C6rEokffjEIHVl4I+KVDrRh+2qmpFX8skhbZwMUEh4VEfj1GckZZlQR23Iu4MG+MTOZnS+82eu8V8jinWUnVqOpmqvADWucPjR6+cgqSdnws7W23dWYSdZvWJuuzleyC9ftxH0sY7BFTeVoSF8HfN1Sxn/4BeGjaGbqR7paeQ= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621235125; 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=guUHDQrt6Y27cgogIJk/BrlkFCoPrm/4UrA4hK+fMc4=; b=Z4lRi9q4jCUVjNfVfXiDOUhgWT9gWfrK9LWXYRE27SC3VOobXU7Ixh2H/z5g9YkyjgM8/HDnlsKX6IIEZFpEt4klilwFeBRNm7jDQbHv5H0tDevYcD0jW5dTYvqBSuy3TfM153PJiT4i9HokEJRWsOWne/abCUbgXNhD2lgX3wI= 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 1621235125017445.91765291641366; Mon, 17 May 2021 00:05:25 -0700 (PDT) Received: from localhost ([::1]:56044 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liXJb-0006Rp-Fg for importer@patchew.org; Mon, 17 May 2021 03:05:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33464) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX0O-00046h-9m; Mon, 17 May 2021 02:45:32 -0400 Received: from mail-eopbgr10124.outbound.protection.outlook.com ([40.107.1.124]:1412 helo=EUR02-HE1-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 1liX0I-0001ta-9S; Mon, 17 May 2021 02:45:32 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4341.eurprd08.prod.outlook.com (2603:10a6:20b:b9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 06:45:06 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:45:06 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:45:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QguWEmuiATTSwsaAbE8V2T4jLcuZk8OoOFTghy2DG9ESUm3qaf2O5K9B24OGh9iI4Q7I0aPBQErGyp8XkLa07ptuploZhfrgQWiyjYmt/8S7TMxVDkzOenDGVW3IMx1GO9RDjqqG2/il2Wd+6t/hvs1ZpvunpjxmM3D9T2BsbTnXXSgo1AxE2tcxeh9RE0VEOXIE5irKxdfhpScZt+aaUn2M6T8jMtZ0tJsax+h3xZ/3moT54C+J5WCxLIIQqi8SNPnkb70OCaHoiTyVV3E9T98iUbLq3gAqL3uULL6nsus1/SutWlI7bCkI10uzE870ASQ1PbWhhSLlKVPgkXNkeg== 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=guUHDQrt6Y27cgogIJk/BrlkFCoPrm/4UrA4hK+fMc4=; b=dV141JzZ1G4SRSaoUtpqxblx7tPCVFzU1pJfqLA6nDngJXfh6wsx9dyJmSDgKc/VUT1w8EgXN//r1hDVeholqeAql1uMM6QAGJ+P9QoSmNBQa3QDQo0M6Wry2ef64yhrjDaW5YdgPBnAOAQ0EtrQg5LPCl40YSRX6Les8eUfAH7w8VWJG4I0mgtpkSU0IewxZeESd1b4Z6UpBDPfjCzCDrhiawsZDBQ9uWjL1ZIr7133kGkculT6oneF9qQlPjATlET6PpAq1JJYWhRTD4NcJ+3HYweKCgXatpU47NwufWlstv2lxdyNoXBTT3ltL09dnSCXGJA+6ZVJPnPUkeykGQ== 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=guUHDQrt6Y27cgogIJk/BrlkFCoPrm/4UrA4hK+fMc4=; b=iaHhPZVOK07QS5SUgREI5WwzXEo109LLR6B1hICp7h80rvp2fo7/baSR2rcYGYFc0A3kVHVic7kFXcrIK1Bsezp9iZsCH5DTP6qUeSVfuMpgFYWq/24cO/w4tJyX5LGPiDd0oww7Va6srzS+fh2JKOCDZh/KmbqrhNbf49kS7M4= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 15/21] block/copy-before-write: cbw_init(): use file child after attaching Date: Mon, 17 May 2021 09:44:22 +0300 Message-Id: <20210517064428.16223-17-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 2a56f496-dafb-430d-c370-08d918ff4e41 X-MS-TrafficTypeDiagnostic: AM6PR08MB4341: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:40; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: GgqfmPEXVMBMdspLohHEl5nMVZ3MJZZ0xYgBMZ4zUFzGnBuS1va6nbsYqCSn1bszfAhFgTFT7R1LClfXVxS3AY/E5uVuGDRhoL4ThBifyRb7NI0+BKqWCxMRgjDqvK4l705Py9/X5JzK9c99lpemO1MFDbP66xuI/3A7FazcxTH4R+zXScs6KbB8K8ylMus6hUNiQQSZHpmZHLkFsffSgOoB1dSOuWH/wPF/dkaVza4CHuYKYWoPjlIsDttbxVWarOIMK3+wKpm8KZ2Vz6qCQBCI2EEnuyioQl18QFtT8bGm068ndlhAMe32Z5ZQzuQnzLsShVG7UP315yuQOw5LDnkfd6iX75l+btDYFgrShN4n29/dof1SlB/m14rXUsbNwsnpvloHn5nA+Lhcnulu0EHxhiRfs0OWCEY7cYLQLsfUyFyRryT2AHpFXP4k9YFHSwRZg+4CHNXtgoVcDHwzu+AVxOZ4H2510F+l4XN+FU/zoM5kl9ttitu+kNTQF91H6gWjdrxrhX8+LccBPTRVCZXKFGyLPYWtRd5YM19jWUITWboSTt7Z1JFYC1iTAI92S7DFbG6Y6G85Zbwu6O4lr3mXnoY/wm2RyIfP6KJZ0yTS55CjV90DOvzJ2CZbRY3gF9JC5h/pzCKPxXGEqCLyY4yLFKFFaTjob1nKMmwFkJdVOFpUyZ4+z1hnmluQg4Gw 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)(136003)(346002)(39850400004)(396003)(366004)(1076003)(8936002)(316002)(107886003)(4326008)(6916009)(6506007)(38100700002)(26005)(8676002)(5660300002)(86362001)(38350700002)(186003)(7416002)(2616005)(6666004)(16526019)(66476007)(66556008)(2906002)(36756003)(6512007)(6486002)(956004)(66946007)(52116002)(83380400001)(478600001)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?MMIvayj8QTgatoEqPJud1UBJyehglDej4rBuEmAiIVO74ydiEU1Az3PlWwcv?= =?us-ascii?Q?cvB+3xUA7BA/gOT8WNy9LVvBRftHnrgNfWSgwJMWJlw+MEso9LoPz6i097re?= =?us-ascii?Q?0d7U2DB4rAXqvw2rJUbY7osfeM4Hi+jpZnjxX0fKefzJo82U64ZXzhhuVWXD?= =?us-ascii?Q?61jGPEgdp+HiOy6INWDIUwz8o8HsMVfIxp7ix4Qs7kyiq2200iQuNXZ74fgM?= =?us-ascii?Q?bq2U7dGa+5HCS2hLrGuQh8tThliKk5lyKPSuZn4pe+a+VNbN6+f8cCD78Bp0?= =?us-ascii?Q?I5+Lrsu3qQ7LIUnZpgjnVReto9fJr7FJlUd3IWp1KofxedK8h0FxQsbOUjm0?= =?us-ascii?Q?ePwJdbkVlgZe6DcfhD/u3vxxTTvwruWdIFNLBL5tqUwxg2WDyVJFUBkfdS8Z?= =?us-ascii?Q?2oEYbff3okjQie09svj+xojtPN0vxUaCvorWkhGCSeF4ycHPJEUr0z1geFOx?= =?us-ascii?Q?xKhlzepzjY4vMV6dd4ftWE8E++XfHfDkzwXnqS//L9SVaLUnef20X9Mq8+2z?= =?us-ascii?Q?1JE+l8T6jTp8ZSPK746rn7x74c6Nam8cvshVDVzh4Lt3eZU/gOMJQ2AlPNDv?= =?us-ascii?Q?iwReOHPlkWOcOfnPExzeHkMikiuBpUWf5L8xqAU/OxStnYexQQBHe+VqTTpv?= =?us-ascii?Q?UUzmE/N2C/gsXQ1WpeyOidYrBND1Z/O3zQJbKZwUHiTjT/2PqNjxCug+ykxk?= =?us-ascii?Q?ArB/L92y0XyC6aASj0lnAx5sk+FoVEFy9DCQ9l7rHdaZkwoS27tN/oUFm0X5?= =?us-ascii?Q?TfJczB+u50AJZjcTSpIoIiUO5WiWQb1NctHf9mbJPtFIE/AqMckzS/BHOImb?= =?us-ascii?Q?+U8c6FnQZHvdEdr3rKuxdRC22EcuPO8dmIjCJB7F3KZToHgPH7l5jAY8jkD2?= =?us-ascii?Q?zgTypaPdGainBimt2kACV8bw/GZeAM1wRroBHLp2QM3+Rht2TCq94yLsG/S3?= =?us-ascii?Q?pqkTcV4oOY3st6nw9PhgEJrEll455kTKmtAsDfL9+It/cRzdUkN9udY+Y5B+?= =?us-ascii?Q?1oKLJ27KGfpsa1Nr1n/3agMVEc1CihQc9irLpvEq7ngYx0ATeZpKpeGSbQDB?= =?us-ascii?Q?e+rw5FzoYywHadmHwvtwQ507sx4eO40DerdcNuv6P1Bp1nUAMoLYWxuzOhU/?= =?us-ascii?Q?Gv2Sjk8BECrmeRHHP2r7sbX+NXKqGpcN5RHKFMcNttg4zwTKrNFRA9ucPYsh?= =?us-ascii?Q?w/U0Qui9h33QXxDy7FfmCrf5LpwwUhjEmzXFDIsq+PrA/E5Z/OWNtz7ept3m?= =?us-ascii?Q?bj+2s/C1UqWFLltxFd+VYraWYE2gMZMzxbDrKniL9UXygQGg7i4FN5ReEpIz?= =?us-ascii?Q?Dx7skME7e9M5pYyO4M3tMcd2?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2a56f496-dafb-430d-c370-08d918ff4e41 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:45:05.9739 (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: DFIeqmxgwcsgEt7YkFJjZ3uKZQknUyRQ3rdPDAQYdHi+OAgEorbBv7VuSCZ/4DIPJBzHNM+r2xWBkqCLypQw+eQKvEnHJ/L0p3QoW2qDpII= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4341 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.1.124; envelope-from=vsementsov@virtuozzo.com; helo=EUR02-HE1-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" In the next commit we'll get rid of source argument of cbw_init(). Prepare to it now, to make next commit simpler: move the code block that uses source below attaching the child and use bs->file->bs instead of source variable. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Max Reitz --- block/copy-before-write.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/block/copy-before-write.c b/block/copy-before-write.c index 78dc421db2..ddd79b3686 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -149,13 +149,6 @@ static int cbw_init(BlockDriverState *bs, BlockDriverS= tate *source, { BDRVCopyBeforeWriteState *s =3D bs->opaque; =20 - bs->total_sectors =3D source->total_sectors; - bs->supported_write_flags =3D BDRV_REQ_WRITE_UNCHANGED | - (BDRV_REQ_FUA & source->supported_write_flags); - bs->supported_zero_flags =3D BDRV_REQ_WRITE_UNCHANGED | - ((BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP | BDRV_REQ_NO_FALLBACK) & - source->supported_zero_flags); - bdrv_ref(target); s->target =3D bdrv_attach_child(bs, target, "target", &child_of_bds, BDRV_CHILD_DATA, errp); @@ -175,6 +168,13 @@ static int cbw_init(BlockDriverState *bs, BlockDriverS= tate *source, return -EINVAL; } =20 + bs->total_sectors =3D bs->file->bs->total_sectors; + bs->supported_write_flags =3D BDRV_REQ_WRITE_UNCHANGED | + (BDRV_REQ_FUA & bs->file->bs->supported_write_flags); + bs->supported_zero_flags =3D BDRV_REQ_WRITE_UNCHANGED | + ((BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP | BDRV_REQ_NO_FALLBACK) & + bs->file->bs->supported_zero_flags); + s->bcs =3D block_copy_state_new(bs->file, s->target, false, compress, = errp); if (!s->bcs) { error_prepend(errp, "Cannot create block-copy-state: "); --=20 2.29.2 From nobody Sat May 18 07:08:57 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=1621234470; cv=pass; d=zohomail.com; s=zohoarc; b=flrT+DZHJ8WUBD3YtnLRt3yhqVfOiJ4OUdEGgOBrFFieA+JFZ8Gs2SvOqhD3bjzPa0KZG5QCBNUcYLs/BFtxhH+XKA9dCzdyWRWERPOMS6DxvTV8xybxGgL7HbeKUmcN6n28Ze26V35PGuLABsyHOYDi0IHRxPxYgiw+Sr5moO0= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234470; 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=RSG4v5OUYaty7Z3oOi8knnlpDSoJWEhCNphNT7OTOco=; b=VkCu6v7+XsbLya6hn99rMSp2kRFsWfjhtxBTyo2f8bhMf189hD+VoLMFzGON2GHaWihh1XUAx51yhRdY3p/eN4svYc3PXI75ZPR+ByyLoU4r1rlZRfbqf5vryGgeHCL5F2Fidmx+9Wi5asZlzeIAt3y0QXX8y3Wz0qJz6M9j3P0= 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 1621234470219862.5740666110166; Sun, 16 May 2021 23:54:30 -0700 (PDT) Received: from localhost ([::1]:51422 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liX92-00012L-76 for importer@patchew.org; Mon, 17 May 2021 02:54:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33502) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX0W-0004EN-Ji; Mon, 17 May 2021 02:45:40 -0400 Received: from mail-vi1eur05on2135.outbound.protection.outlook.com ([40.107.21.135]:63681 helo=EUR05-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 1liX0O-0001xR-CS; Mon, 17 May 2021 02:45:40 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4341.eurprd08.prod.outlook.com (2603:10a6:20b:b9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 06:45:07 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:45:07 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:45:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xk3HlxECBa7HtKo5Re7dnAR3yPVa0N7NStHCCN0GcdcoknyabpTS8aonfo3m/7UXtOZgbJV/yQWCHUIu32FQcrHuLUwUwiERV0WxCEhcq3jLvakxOTI5c5Yz2fHhCSu9ZvNjwzVqDbKbWbbwYo5WXUELNv5Fyx7FIQ1NVYjbreSSpJRiPm6zXgCy+15rcRxJAaPw8Euo3EvfriKICl6hzHe1C59uNkybmB8NqugKFTe/lgnWx+NddzPNBjTo9jrmVXLpkH1kDQt1XmXJt1M7OfVhShbCamxd6iCbFcyHnlEDXaVcULZrWtfAmwA6ORfHI3BHyZkVvRAYkxz4ZI1Lpg== 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=RSG4v5OUYaty7Z3oOi8knnlpDSoJWEhCNphNT7OTOco=; b=eEgHGI6qOL/8dwYM3lR2Np+FLLGaVbiClq7QEwW0nBjFEBrpf0oFNMnFpETdbfjhXBUqrdcQ4mMzUL5JMbB9oOE/C1lKL58g4xB+8Te8+woGOt0MfmXoJnDEjgnfb+Yej5szCHb6G3pJW00IKTN2TDjq0ri6EnHhhmR1H3t6a471giXmlqWF7aS4DMxb4weJL3VOe5wT01EXVWEj+jrleaVqjP/uQETLyVOYdHOO4zwwCjW6L7w/GnkSTj0VeUBLv9Z1eCo0IqpbitIomhp0+d/9v0m32GZarPLvraYGuRvSpOy/dtK4+YbImVrEtvdom43xnEPr/4B2rmDMrdidOw== 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=RSG4v5OUYaty7Z3oOi8knnlpDSoJWEhCNphNT7OTOco=; b=q1yrn0gEEQj01+zKHzi8YnJXvvYXVlW111FEK8gqJuozwP5X5X/jByg3jFH4GvhYzjae+6sz259tuWl3kfQJEWMukiRY1QxTsmE/2NVTBvEMOSPZH7wv7TczPdMhYfj2W+ciPYUvL8ljCKS5JAB2BTMeJp7xtWM/NoYOVGwehV8= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 16/21] block/copy-before-write: cbw_init(): use options Date: Mon, 17 May 2021 09:44:23 +0300 Message-Id: <20210517064428.16223-18-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 566e26cf-1466-40e9-22b7-08d918ff4f11 X-MS-TrafficTypeDiagnostic: AM6PR08MB4341: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:210; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: UBLqseh+YFlaaDIM7RqcUpMjo1sXkUPhr5SS01SKI4j0to27wPSBwTnaDSdDcbfZhyIp6xvrWYgdhxQZVfnzvklnZZ/YPpNNBKLYOVwD4gcsFYqDU9RIzVuXzkW31LVwMRpNdQmBfBvsr6agD5gC48y3c6w57WOpyuDwNJ8UFablxtDGOhzFixWPRrHPMRaHN2EkLScsv54Dq4WTigClO2wtq5xBa7iMSAYnTZu9bSafTQUwNr8o2S6/SrWNj9O//m+O+Y6gp2D2qV0b6YY+aNnm1AoS3TNcABW0tt/1Y+zcuZt9X8OHb/aQ+gOcj9jjehzOj90+k+jpDe6kW8oyNeMBvXZGmn/24pNmva05VsWA/5wscPqAijzq5EU9XO7QI5ahTYIv54bypW11I1patUJBnzj4uSsBbRX6DjOLIMmaRmKc3ZKf0dYrkNUpTE1CL6uI1rp6YwFlZ5GlOSVbnY0gGsVq0XjBT6PKgWNfL4g6BFpUptGjqGE7KEzvP4VrdlrLUX/1ooPmg01cuXonsvREFR6Xek1xq9YcDs8Pm+nwcMmleYjpCyy8GbTkoK/V4uX8ViwV7qY7Y8iuwUzJYVsS2FLpoLMN8bPtB0WPu5nmBYVhLgD63k0TgE70DfZ0r2iBB60GS4I85n8Rmp40q9KFZFT/6mvBFaEDZ6zteg0SeNt1gFgX0qa4/+g86FdI 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)(136003)(346002)(39850400004)(396003)(366004)(1076003)(8936002)(316002)(107886003)(4326008)(6916009)(6506007)(38100700002)(26005)(8676002)(5660300002)(86362001)(38350700002)(186003)(7416002)(2616005)(6666004)(16526019)(66476007)(66556008)(2906002)(36756003)(6512007)(6486002)(956004)(66946007)(52116002)(83380400001)(478600001)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?95MfyD3YfXrRkR7ymWgn3Xw39ojg+WIFficY7ibxHBW1W57D4UNE85BZw3DC?= =?us-ascii?Q?rwgj3qKppo9qfiYZxYnRoR4yZSyKybOBYOV6LFmlu2J/i262RPWbXw0BWcdF?= =?us-ascii?Q?lLoIOiH/srp2H3X2AiedYlGZyTcftkOZZgc6IVx83nJHEMVDUKg3dPbKIt26?= =?us-ascii?Q?PcYInW6/NvXcsVjjsOxutG98V+uxFooMY/XoSOdvUDp3opENHkZ5WDK3kY8z?= =?us-ascii?Q?Lx71lnc9A6tAbHi12Jf9JIp+mgkpaglO8aXhKZjq1aQqqsN593MbNAhbBYyH?= =?us-ascii?Q?Vl1BlcVXYKmOdNH3aqmw7nDLV0LHa8hDO4lcohOw868VYZgmVk5Pmoa3Eys1?= =?us-ascii?Q?7/q/srDFTxiK2Xc2zwIta6/sbILufaJG4kV+7oEbTByiWfUyzTVij8MiSj8u?= =?us-ascii?Q?5v9nJC5bYXaG1c6eOmyVn3Gxz6e96VTp8z9/BKhDNn64TPglqtgSAlg0zVSd?= =?us-ascii?Q?cE7T8Fx3iEhefxw1xKmlr1TpGfahJ1pMK3piTn47uVSwKS94G5uOZJdf12l5?= =?us-ascii?Q?nlSzur3h70mNRhVC4XAFSYPZXAlE0P2x7CF0bIMNX7nny0LGkCq+izQXUHuk?= =?us-ascii?Q?POjE3qGlldK06ylu8zGHVyyD/fkK4CEEBHZq4ue5hPVH/CzAY0oic+b5kjyx?= =?us-ascii?Q?RjyUoEwp7GbfmTEIXKKw+YDqM1O8AsQ3lS1zfa24dhUEZMqTN9P1WuZvi4dS?= =?us-ascii?Q?oK/ebbqBZxvprgAidm1usLzhlHmBnuejwsCedyIr5t2/ArWu1n2dlYJypFTe?= =?us-ascii?Q?guzPkYg0ibVXRGUHyB7ZBCJ6qSkPfTFbS3G/lLz4ZgeJ0bB+O0gxyEld2sIl?= =?us-ascii?Q?XMjogOprXks4Yu3v49AizKMfgBVrDFzd4eF8B8XNKKEV5UR+xbn4+labJFsS?= =?us-ascii?Q?GDYXZygaHU+wxh9BBJm0HcbAGppdEy74bvGnLBuANnS8LZQT55k1uZ8QxNlW?= =?us-ascii?Q?jRqgE7dk+iX/DcARjjmOEdWig5dmPPuCk+zCoMtykrzDwX1gcCFS54snmCVs?= =?us-ascii?Q?Rd4NQOtEb0KhjaFY8fyv5tCPS69U/r4QRBJkcIkzqV5JoLZXJGiDEss5deZe?= =?us-ascii?Q?Hrcm6YhxAhtSj3RDS61/3JORHwpHGBLrY7jlW3A8KN+skOcuwB8JosHQfv3x?= =?us-ascii?Q?Y37H+hnTYTPljQ0cY4DBX+DfHrsaNmnERrhCWoqtJfghmAUjr3BrhrMz603p?= =?us-ascii?Q?I0rEYkKndHTH7KiMLqfJ8JoztbLbXBPTFE9dMbiYH81d+wEaDQg7Aur2KA5N?= =?us-ascii?Q?r2RWfHB6DA0EYLJgV5cy1v+pwzuLfVNDo5mvdluh8sHCbMurn+x0uWd0jMRV?= =?us-ascii?Q?hW75wpkME6uQgC4o7mtCE7pd?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 566e26cf-1466-40e9-22b7-08d918ff4f11 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:45:07.3927 (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: PrHYga5LGsvYHXhyfyLWzrWgOwcnEiRth0dEHymZQ6zgs4e9Laohq7awtVfp5twm7PNSYFiLOgHDnxlji3QzouSqtwTTy61NmCQ1/0pOPpM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4341 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.21.135; envelope-from=vsementsov@virtuozzo.com; helo=EUR05-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" One more step closer to .bdrv_open(): use options instead of plain arguments. Move to bdrv_open_child() calls, native for drive open handlers. Signed-off-by: Vladimir Sementsov-Ogievskiy --- block/copy-before-write.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/block/copy-before-write.c b/block/copy-before-write.c index ddd79b3686..9ff1bf676c 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -144,27 +144,20 @@ static void cbw_child_perm(BlockDriverState *bs, Bdrv= Child *c, } } =20 -static int cbw_init(BlockDriverState *bs, BlockDriverState *source, - BlockDriverState *target, bool compress, Error **errp) +static int cbw_init(BlockDriverState *bs, QDict *options, Error **errp) { BDRVCopyBeforeWriteState *s =3D bs->opaque; =20 - bdrv_ref(target); - s->target =3D bdrv_attach_child(bs, target, "target", &child_of_bds, - BDRV_CHILD_DATA, errp); - if (!s->target) { - error_prepend(errp, "Cannot attach target child: "); - bdrv_unref(target); + bs->file =3D bdrv_open_child(NULL, options, "file", bs, &child_of_bds, + BDRV_CHILD_FILTERED | BDRV_CHILD_PRIMARY, + false, errp); + if (!bs->file) { return -EINVAL; } =20 - bdrv_ref(source); - bs->file =3D bdrv_attach_child(bs, source, "file", &child_of_bds, - BDRV_CHILD_FILTERED | BDRV_CHILD_PRIMARY, - errp); - if (!bs->file) { - error_prepend(errp, "Cannot attach file child: "); - bdrv_unref(source); + s->target =3D bdrv_open_child(NULL, options, "target", bs, &child_of_b= ds, + BDRV_CHILD_DATA, false, errp); + if (!s->target) { return -EINVAL; } =20 @@ -175,7 +168,10 @@ static int cbw_init(BlockDriverState *bs, BlockDriverS= tate *source, ((BDRV_REQ_FUA | BDRV_REQ_MAY_UNMAP | BDRV_REQ_NO_FALLBACK) & bs->file->bs->supported_zero_flags); =20 - s->bcs =3D block_copy_state_new(bs->file, s->target, false, compress, = errp); + qdict_del(options, "cluster-size"); + s->bcs =3D block_copy_state_new(bs->file, s->target, false, + qdict_get_try_bool(options, "x-deprecated-compress", false), e= rrp); + qdict_del(options, "x-deprecated-compress"); if (!s->bcs) { error_prepend(errp, "Cannot create block-copy-state: "); return -EINVAL; @@ -212,6 +208,7 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *sou= rce, int ret; BDRVCopyBeforeWriteState *state; BlockDriverState *top; + QDict *opts; =20 assert(source->total_sectors =3D=3D target->total_sectors); =20 @@ -223,7 +220,13 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *so= urce, } state =3D top->opaque; =20 - ret =3D cbw_init(top, source, target, compress, errp); + opts =3D qdict_new(); + qdict_put_str(opts, "file", bdrv_get_node_name(source)); + qdict_put_str(opts, "target", bdrv_get_node_name(target)); + qdict_put_bool(opts, "x-deprecated-compress", compress); + + ret =3D cbw_init(top, opts, errp); + qobject_unref(opts); if (ret < 0) { goto fail; } --=20 2.29.2 From nobody Sat May 18 07:08:57 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=1621235212; cv=pass; d=zohomail.com; s=zohoarc; b=PDKW4P262cUuUz9lIoNLIr9B7IIJlrhjEC7Z8MU/PDI5xsRGtu/Q8bcylMygDePFhLZ2v+AJObb6ovFe5eI+fBealG7hHOxLuP4zKlTjFS5khSVaBr8RoOVSGHMsZxRA63lKZIbPqv1Wd4IMc1fpOkAQcmPmEKMmHgE9iMkbzsk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621235212; 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=2qqFCkSVRF2NTbV4K4hKBtI6Y9GbWBAgKZcbi2JnzXg=; b=NZzeRcRxFwk3hqBdKydQaFalvO72FhabVGaIfxl6ZIB6tAhxa2BzopCICc6D90pPdJSYPySOdv54WLkt6+guhI80ODlFRj8yFEWAMEygMmRWmr0zZSTJMKxqcqJ/Q4//GFATc6weKvFYttgS8RKxlXZym8hf5sOWg/lvr02MSa8= 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 1621235212853230.4639155100217; Mon, 17 May 2021 00:06:52 -0700 (PDT) Received: from localhost ([::1]:32968 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liXL1-0001cf-Pn for importer@patchew.org; Mon, 17 May 2021 03:06:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33518) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX0Y-0004GL-5M; Mon, 17 May 2021 02:45:42 -0400 Received: from mail-eopbgr10124.outbound.protection.outlook.com ([40.107.1.124]:1412 helo=EUR02-HE1-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 1liX0P-0001ta-1J; Mon, 17 May 2021 02:45:41 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4341.eurprd08.prod.outlook.com (2603:10a6:20b:b9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 06:45:08 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:45:08 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:45:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hRlCnYGdta+QfIqWyNDVQxJuP6C32qshRLXxoicELwpDeO92hBJYCZcTQzdwDPiXY4tSMlSrQWgfnnQUmpQQnlw7iCaGtENhysWCCHbIrpqHslA3ekTPMsSuUOCATFSjuFBoeyBXMnOwws5r7EzBGR2Apyk2hobhTXQe4ZAS8R7hSO43353B/Cb1qWcFDGcGEKmCMulyfyO5AIrEHtHSB5VGFnbo0aMYmuWBoTRph/vKyGM9EUEIFRa8A2ze7UigbvXVadLJlRQyb97qELI8Ht2nA073p0VGY1QbasXEG7rs0XYENF2F/tW+hl5NKsyStURellX8vTWhtrWVYGD7og== 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=2qqFCkSVRF2NTbV4K4hKBtI6Y9GbWBAgKZcbi2JnzXg=; b=fkUomIod+ChBLWkXz9PH1RwoVOSaDAXyPnl1yoOLn6aIk0qR1LPk2J6gJFecVYHiE22RT/E79fJFv77nCJV/zb3bMrmmKUHa8giYZZ2LlDRiYfp0RELMfdBPHbCtRdnuHNZmbM1/jL4jyScUvc56yxJgUnXxhELqoTuSNvdjV/f2n6o/LeQRqGo2KKERBuSdVnfaWIrTQZGn9YISjSyqz2w643UnV2XQ46M5LQsj9rhkTn9bjFx2N9w1UA4U0LGwQgDCeY53oYEt6mMFHQxQO5Gbpub2rshjV6lW8ZVqdjsti6/fEp9GBE6hyWVRUKUZ3YLY53PPhQKu9EaUtuiUvg== 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=2qqFCkSVRF2NTbV4K4hKBtI6Y9GbWBAgKZcbi2JnzXg=; b=sltBHynII4SKwGZAmK/wbzJMPXrtGnHPNQyT+QXpDLESBdcYp50KjSAsImw/0BQ4yiAh5P8jHzPTi0JTKKAElwRP/LDgk+vU2TcABfmwBVOho2VdqyXDf6GjrPQ11y95YP5S9dYRu8Sq0LZ7noHcBVyQbvI4WbpIMf+pAQwyqko= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 17/21] block/block-copy: switch to fully set bitmap by default Date: Mon, 17 May 2021 09:44:24 +0300 Message-Id: <20210517064428.16223-19-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: b562e5c4-b453-4e67-5bfd-08d918ff4ff8 X-MS-TrafficTypeDiagnostic: AM6PR08MB4341: 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: 66Va/0WyXx2mOSbQVyhGbtgAA0ulyHiGfdJFXoWOU91RXlCTrIKe3BRjrUN3H4N3QH7Z+waW2GqcQf/qmsj1px/sh6/WngoRoAhRiuqm+mLvqLRk6i6Frpt3e4fhXaa0mH5yZqj7d5opleo7Gq46q/VwEW2ylangDhKpK+eVIQLZkrRmdoQ29Qb8L2Mv9HJ2gt5Os4sB0jKkTIgphota4/V9RqVKUZhtaAcUdHriuqRjt7jaG5wom9gGGYd8WM549b/sE0eSBWQQwj0UBrFxLkGF2timB/JJTUIJ8oIIORNN6bLZbdN2kj08xCISxdI9u6OpR+FbJgeew4PiSzqPbPQolD4uh+0kSgwiHCZ9MpZSJ/LoVk7UZb3aBlL51ypi0efHSNHv82Q1vwadAG4gwPucaXv+JKRhlIn+cXB4E9uDNHXqK9Rhs3AfJIM4ut2G8oIyJz9EZsZvoYe0hwfRzTasXPJGz+nuOeJtnpIRRrXx4oZ+AWkxz16sVH3o5iaehsj0VyMFc+sLV2wPcpclLPJqAOXny2J3t8VqAvAbm615Ni9EH9Tv47tn15Nd4l6Bf/ZbRGrquzFkD+YTLVbVXn3g42AYNngoOquxhWDDXRrpspvHcFtQPQ9ZbsS+RluvGO8ipx9K1CJtj+CcZGVOkFxOOCWeQRE+MSbGNNiLcZW0ejFxV8erHDU/oL50xy5z 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)(136003)(346002)(39850400004)(396003)(366004)(1076003)(8936002)(316002)(107886003)(4326008)(6916009)(6506007)(38100700002)(26005)(8676002)(5660300002)(86362001)(38350700002)(186003)(7416002)(2616005)(6666004)(16526019)(66476007)(66556008)(2906002)(36756003)(6512007)(6486002)(956004)(66946007)(52116002)(83380400001)(478600001)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?1sQwaZPzgnkuwgcJWDXdibr/8Iqnkgk/6EWAfXHkgJ2B49kkw9UuFWtClA0d?= =?us-ascii?Q?gsbwQ93vTdiJR7jSJGHliCixGAIK3NJTZ79lePb1Wk+/mTr3dZbcYGQ7HVHB?= =?us-ascii?Q?nM2W27H7EM5kDCHO4UkI7UJheMuPrdr23jA+CEkhQD7EGuresz6SoWxCGS1a?= =?us-ascii?Q?lwC59yMlDDj9ABdJ87HoVIJgWuxkxzk0e9OtO8ndaBxLAgE7vhTHDs+q97/a?= =?us-ascii?Q?mJiOyrcETORbQFvQGguHW03ocfm0eKkU396qpRofpAjbw7Idz+VwL4qHUYXq?= =?us-ascii?Q?o10i/szNs4rn8YYHdFuZgWfJtciLHB+wvyEm0aMqelKx1WCvDkCZtDCss2tE?= =?us-ascii?Q?e+l8gUJBBE1WJPmNfO6OoZNO48xGmSOKlObkmPtWzAph/DidpmtSpxDOzo42?= =?us-ascii?Q?CPlzdWTJUo8rWj0XR2w16m1PEJ6mPHnbxNqpg/73wJOQSdo37A54loA1PqNe?= =?us-ascii?Q?VM2malGk3mdkMNlSR224BR8JMHh+x4fysLRyP9EcyIsOU6GLcixwBg1cVxmh?= =?us-ascii?Q?XqGQx33COnyrqqjJRCf8QSJgu+FYJFj9sA8SdA0WgJ5vnaNAk44dBUctegui?= =?us-ascii?Q?nmtutOVtC6hB5hMOegU+DaOzVjwxeLcW4ipDxmwxgg0Xn/RL3/Y1un5AirC+?= =?us-ascii?Q?WcJKSTL92tqkqRbNSb/S9FQwjx0K3TzdjTAfC5B30358ec5SEBv1p/vXJ+oN?= =?us-ascii?Q?tMZi5sfAquhFNiGsvpxlllhDDhpKv6Gk2xO+uIY7M/PxmCJpvh5h6d3IuRfk?= =?us-ascii?Q?yRklchitAhx7NchNPx7sy8EIrBskBOcGBo1UGCRsZbsVvQ0RKXfjiXw/qFEF?= =?us-ascii?Q?0B6MbAe7q7pqL9Flrr7aYSV3YD3iXLKWyI8crj4kgZOtyvyPbTLYmCXYZXR6?= =?us-ascii?Q?43B6b1ftSzKpu28+AfDTn3SMuEq9789NamhLmhdFEdcAXQPuFGlTduN4m9ws?= =?us-ascii?Q?FSwDZISgFmsuVB+lVpQaNcXtgB3kBds7chsVAWtfYOc/r1d1J9Xpx5xreney?= =?us-ascii?Q?Crppgq/58V1UK6OrAFfJ78pvgMgco7kx15JMRi7HO2D8KFx2Cfex3YKb+0y7?= =?us-ascii?Q?SOjk60p4yd8whVn3YQ0o2M4BHJfnpu68tq5v0tTdlxpZsMdnFZwQ5gs0NeBj?= =?us-ascii?Q?CDI5WgEQzt7Q3rmONNKRlURJTjAXbjsjP2bOBboa4OXFmCjX3Hp3BoT0UTQE?= =?us-ascii?Q?xz4Orh/llq0sxVtzBJ8QliC8nyWx3t1Rc7xCp4h3GxxXO2EwD1Q5XLhS33LS?= =?us-ascii?Q?om28IInFCThM92bEVcDM2P7KWSQ84Md7pVSkMRyVFgAyYKYf3KjJwGV8+5Bq?= =?us-ascii?Q?L7ffNjEGrqoCurHW8X9TCmX0?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: b562e5c4-b453-4e67-5bfd-08d918ff4ff8 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:45:08.8413 (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: 2yRqXZigdiu9pBDLxsrm+ynBMWl1LGH1Se6lgr6WHTkWrf64+Jatmp/7PbMXOxrxtAJoo5nPIR0ziELfE1PFhZlgYmeiW7Rl5UjEM4Dkm0o= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4341 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.1.124; envelope-from=vsementsov@virtuozzo.com; helo=EUR02-HE1-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" block-copy has a bit inconvenient interface around dirty bitmap: user should get pointer to it and than set by hand. We do need a possibility to share the bitmap with backup job. But default of empty bitmap is strange. Switch to full-set bitmap by default. This way we will not care about setting dirty bitmap in copy-before-write filter when publish it so that it can be used in separate of backup job. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Max Reitz --- block/backup.c | 16 +++++++--------- block/block-copy.c | 1 + 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/block/backup.c b/block/backup.c index 90cca1ca30..706c54fea1 100644 --- a/block/backup.c +++ b/block/backup.c @@ -233,18 +233,16 @@ static void backup_init_bcs_bitmap(BackupBlockJob *jo= b) BdrvDirtyBitmap *bcs_bitmap =3D block_copy_dirty_bitmap(job->bcs); =20 if (job->sync_mode =3D=3D MIRROR_SYNC_MODE_BITMAP) { + bdrv_clear_dirty_bitmap(bcs_bitmap, NULL); ret =3D bdrv_dirty_bitmap_merge_internal(bcs_bitmap, job->sync_bit= map, NULL, true); assert(ret); - } else { - if (job->sync_mode =3D=3D MIRROR_SYNC_MODE_TOP) { - /* - * We can't hog the coroutine to initialize this thoroughly. - * Set a flag and resume work when we are able to yield safely. - */ - block_copy_set_skip_unallocated(job->bcs, true); - } - bdrv_set_dirty_bitmap(bcs_bitmap, 0, job->len); + } else if (job->sync_mode =3D=3D MIRROR_SYNC_MODE_TOP) { + /* + * We can't hog the coroutine to initialize this thoroughly. + * Set a flag and resume work when we are able to yield safely. + */ + block_copy_set_skip_unallocated(job->bcs, true); } =20 estimate =3D bdrv_get_dirty_count(bcs_bitmap); diff --git a/block/block-copy.c b/block/block-copy.c index 9020234c6e..4126f7e8cc 100644 --- a/block/block-copy.c +++ b/block/block-copy.c @@ -296,6 +296,7 @@ BlockCopyState *block_copy_state_new(BdrvChild *source,= BdrvChild *target, return NULL; } bdrv_disable_dirty_bitmap(copy_bitmap); + bdrv_set_dirty_bitmap(copy_bitmap, 0, bdrv_dirty_bitmap_size(copy_bitm= ap)); =20 /* * Why we always set BDRV_REQ_SERIALISING write flag: --=20 2.29.2 From nobody Sat May 18 07:08:57 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=1621234829; cv=pass; d=zohomail.com; s=zohoarc; b=X5muvY8g223fVk3TdR6Avf4owaz2FxrpLc/DBbapI/mxmOTNncmXI5KMgdznOMeSDvW4a5Fvay7E1FoYQsG8IdBvu1478HP4cq8xHFpT4LuRHtsk5cw/dNih/RoCB0HoGOUmY9ABxjV9TpLOXAX9E+YIHrqSfljtF4aacm1XroI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234829; 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=OiPY+Rd4RpK6iGr5H0/eE+1/QnUTpokTztSgMGdniGU=; b=asH3yW5XbVBWpHpmu5mys6hyx+FV1DEyPach3crF/mDPjoHEZe97TFfVj2xdtJr6GBsVbZ+7MLVz6ge/DxlEJDa1+Ozf2yBrmJI0/UmbcjHkzyQd629vnfD/VOUstieDqnPLbfg94GITjQLp3hqWlxfK/6oMMNSjFrToUdadqAk= 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 1621234829949648.2049572591702; Mon, 17 May 2021 00:00:29 -0700 (PDT) Received: from localhost ([::1]:41394 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liXEp-0004nf-7T for importer@patchew.org; Mon, 17 May 2021 03:00:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33414) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX0G-0003sm-4U; Mon, 17 May 2021 02:45:24 -0400 Received: from mail-eopbgr80092.outbound.protection.outlook.com ([40.107.8.92]:37028 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 1liX06-0001yn-7e; Mon, 17 May 2021 02:45:23 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM5PR0801MB2033.eurprd08.prod.outlook.com (2603:10a6:203:4c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.25; Mon, 17 May 2021 06:45:10 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:45:10 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:45:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jhmPPgi8jLliEUkIV/ign/Gkfxc1tkiAVqFRNu9azcdp3zJOBMcddW4UxYhSJduqNalHbYpJ+NQiF4szz5TlQmmT6pooQjsZ5BTtrvxQapnDAcBP96QrqD4NKPHZn+9rznpAYZFzWOALo+ls2GMVSIz3tL1GUDrPM3hUd17/K5cOUM2tus4hLTIUBgHUcpdfu9fX5hYJiOuIOrGMW0eexniLEsyGHb7guAXUr0ZwWReNpQcKhfLmYeE0tPPtzFFhG4kqb3Xm6+8B69Ml59XInSTpejnH21R+rJXwA141XFOHij6nujfezaYEqatRFjQay+iFLa3cVbyknZ411D1JjA== 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=OiPY+Rd4RpK6iGr5H0/eE+1/QnUTpokTztSgMGdniGU=; b=BWQiam2UKCx/78XwmfZVBTTiJYyj15l6GZCtyfItgSDkQlESCcLNCrD8X6rH7hbb4ftxih/bcPmAKhMaLbcRxDgSDui443+WBB8gfcjp9gFPze3ylFR49PmG8+KTNK9kHwR4Y2I0b952qoUXW0fYWtet/zo45Z687GKNtL472+RbUgUeGfOeKZWnrm4GgMnQOQNLguvgRZJNGpRi0I8V9zUict3H+97VRsP4b/bTs+U71+DAAKDNwee8hptmS6MqtZdEdx5kY4jEFL9yPxS+cI3YFDctiUsf1bNwQfeXDOJ1GxMjnxqH3hKlpQcjIeTfNzOJqIwvmidC6pacfgWpqQ== 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=OiPY+Rd4RpK6iGr5H0/eE+1/QnUTpokTztSgMGdniGU=; b=JclQWcw6Q5PeFJARgPAAs1HWtdVoZJrwoAIDtElgVkeQrvihNlVn6e6KsQkyB/flafYwK0x/UptXkRhvyoCT++K7xtRjhkHiVgN3P9D/hFkIuqoYoysrR67c9Qb6/woWe1bSi1BBUSkkIVIBKyTWriArWccMy2P0UA6vdDkwlVo= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 18/21] block/block-copy: make setting progress optional Date: Mon, 17 May 2021 09:44:25 +0300 Message-Id: <20210517064428.16223-20-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 0bea55a7-8a71-441b-63a5-08d918ff50c4 X-MS-TrafficTypeDiagnostic: AM5PR0801MB2033: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:76; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nsM7UjxAerigRScg3aBVCLhm8LVP1yimImBDrIbXHmqMU1aVWHzcSxgdXlAYIcRmBZ5wcK2lmn6gUSbPsiw8noTjVcE6dCFNIgr2ZbrpTlc27zvejG/RSChGgVsGHABQtGybosOAi+F37pL0mJsXQS3ztp7ZeDGc7sPzSjJU4a48OVKmmSnb/7wapYEto+isXvZyaf8MZM1vESIvqXkChdTlWNy4bymk5B4gSi1gsvMHhsl4/I3AUO/IEFgYr+SpU8yVlimNyYCkVNGIyUXmS7g/PrSlR4uhqLFsVJJoM+Sh2FUUEfNArvoZVThP530RVXKDS5ROvICrtuHC1DW93omixyjN8RqNIYot6/8LcspXWb1QuBskIRHn8QlUYGXfyDwx6BqCNDJxsweZTwRr/H4TuUOcwfQuny+sVEUadPCMUq6HYrzbbQrnSMGthtAYGQciHT9f5Du7spRzxzt/lRiAK9ONSR321OeLn0bo0S4U0NXMPqf+qKTuD9K6vyF7UFf7AfkORaebKg+FEvQP7DayQxaILHmheysGIyiV47EaHZCcEVr/qf2pUduaZJDmOIRBEqGdI0o3dk/jhR+h2Q7oWNrSacD11HLcETUqjgOVDm+hF6mw7U/bQLo7PMdQjY9oN6s+MB26bGZHs6tBtm9eMNRdJwZtFvWVzm5w49ZOgO1FC/D1i1rOnl9uuCr9 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)(39850400004)(376002)(346002)(136003)(396003)(107886003)(316002)(52116002)(38100700002)(38350700002)(36756003)(26005)(5660300002)(4326008)(1076003)(66556008)(6666004)(6512007)(7416002)(8676002)(16526019)(956004)(2616005)(6486002)(66476007)(6916009)(8936002)(66946007)(186003)(86362001)(83380400001)(6506007)(2906002)(478600001)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?lwAmvf/KXHsg39EqUOIfHyVQH5tJPe8KhcIda+pPHxebPavoQrbI4K6LCpT3?= =?us-ascii?Q?jS+t4FsQiO89Z0UE7uhnoQ1UCtprr37SmJ86eUHjGRnrYpnZZ3TuczCNKuf0?= =?us-ascii?Q?iRqmoMeD+SEyqTMswmbA2zt4XgmLM0s2BfK4eVtzRVIMEhl2BKJqyfQ07yRk?= =?us-ascii?Q?zpmIPngEH34TqG+aml3Z9jWXeqLsye/DFBLvNWU5wmr3FoGzGgzFYmHz3wUd?= =?us-ascii?Q?XRgznby4YtFi0v9NUJCUP3eO1nlH+LzBOrjhBtZDgeircEWfgvgamZ40A+df?= =?us-ascii?Q?la2q3dn8IDRtbB1+IZc3CjYGL1oXfq9INWbZliZt99g/39ymExwDU01CT676?= =?us-ascii?Q?pHlvxfa51+ehEb6HEWeknv73teC+k3WYw8YMgGcd58Y55gpPq6+r9SgDGaz+?= =?us-ascii?Q?RtqvvuJo1EVe1RzjI1xP3PlTqXj80Dsb545i7r+6yvs2AsEQNx68cLG8VvZE?= =?us-ascii?Q?SAD0lX4Dj96VNvh/QODzeYmOhllwFOFHut3qJbGkjDEIm4Wi3GQM+NauzqBl?= =?us-ascii?Q?SemKNLMEoGipLUFv8Nc/g95B8nvb9duOEatoOlGUXbANf0TN0LqCJVcfAlZZ?= =?us-ascii?Q?AM8ltE9V18Le/t6LLX7MaYAfCSLeuW66132B46rD0UuOLoyF/zpNDD2Vxd2Y?= =?us-ascii?Q?C4gC70hNZ2yGfPC0WRsrJwD5U5E9KmZd4TPt+qSH4XOqLYoYv7o/3sfGed7t?= =?us-ascii?Q?ePOvV2QDkHbk1sRztOyShseeHtBkGa5PlnYTodTMt+G8Nsglbygyfn/8jzgP?= =?us-ascii?Q?5f66ELkonNTMx/kZHOZ+u5lIYd0cIYsfAv1595L7lRzWvaIvO0DjXz5pdSVK?= =?us-ascii?Q?6KrRPDIE/yqEhsH42ZUF1a//lojn+IRPLyJuzaC8kLk1CK/Vcei2fWpmyJic?= =?us-ascii?Q?B5TW/+/rsd59tLoIhYVsaTvSbJW36yl8NfLz6LnKQfn0GBpBGc798DHEcDCa?= =?us-ascii?Q?Bnmw87uOqAAxuWeZoHlWkE+EC6iMyHnXjWESljFTqFia/8UR49ofl+7xKj3J?= =?us-ascii?Q?NcAMrC63dS0kGEn9Q/jHJazVc6b4a9s/UKJxNv4oDs55+fHm9lniOEdPB63h?= =?us-ascii?Q?XgUlJ0Ej5vUX8tUasYIh2GqmqsrHKsubeApLycCuj30eZFCn+pbwE8STaQuh?= =?us-ascii?Q?YMO+weUjcItEzobeQdAa9XuMIt4is6c/ZJ0U2rtuXKElMga5EpBL1YyTA3zL?= =?us-ascii?Q?QIhmyXU7ERtqhVsBPZuQ9kZmkVqXAIilpy68xVAvCrnmBmKMXWyAHHDwY/wj?= =?us-ascii?Q?pZMCAe4xh834i/JWRLaSD8dIOnRGc8F8i/xSTuXSbnqyODGnmNkF5GC9/1sA?= =?us-ascii?Q?fZ7NmMV6DmYkmznMUjPD89cZ?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0bea55a7-8a71-441b-63a5-08d918ff50c4 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:45:10.1764 (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: wCTvCVyp9dHpQQxUYSKnV5+Uefd1X88RbY9JGFSANC65/+hIfj0hp/5aBVVbpEkBPwb+Kpx8otWmZJBavEH/tX6mitDCrSW2YUhjKHwrlyg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0801MB2033 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.92; 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" Now block-copy will crash if user don't set progress meter by block_copy_set_progress_meter(). copy-before-write filter will be used in separate of backup job, and it doesn't want any progress meter (for now). So, allow not setting it. Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Max Reitz --- block/block-copy.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/block/block-copy.c b/block/block-copy.c index 4126f7e8cc..63ec5c41a2 100644 --- a/block/block-copy.c +++ b/block/block-copy.c @@ -506,7 +506,7 @@ static coroutine_fn int block_copy_task_entry(AioTask *= task) if (ret < 0 && !t->call_state->ret) { t->call_state->ret =3D ret; t->call_state->error_is_read =3D error_is_read; - } else { + } else if (t->s->progress) { progress_work_done(t->s->progress, t->bytes); } co_put_to_shres(t->s->mem, t->bytes); @@ -610,9 +610,11 @@ int64_t block_copy_reset_unallocated(BlockCopyState *s, =20 if (!ret) { bdrv_reset_dirty_bitmap(s->copy_bitmap, offset, bytes); - progress_set_remaining(s->progress, - bdrv_get_dirty_count(s->copy_bitmap) + - s->in_flight_bytes); + if (s->progress) { + progress_set_remaining(s->progress, + bdrv_get_dirty_count(s->copy_bitmap) + + s->in_flight_bytes); + } } =20 *count =3D bytes; @@ -672,9 +674,11 @@ block_copy_dirty_clusters(BlockCopyCallState *call_sta= te) } if (s->skip_unallocated && !(ret & BDRV_BLOCK_ALLOCATED)) { block_copy_task_end(task, 0); - progress_set_remaining(s->progress, - bdrv_get_dirty_count(s->copy_bitmap) + - s->in_flight_bytes); + if (s->progress) { + progress_set_remaining(s->progress, + bdrv_get_dirty_count(s->copy_bitmap= ) + + s->in_flight_bytes); + } trace_block_copy_skip_range(s, task->offset, task->bytes); offset =3D task_end(task); bytes =3D end - offset; --=20 2.29.2 From nobody Sat May 18 07:08:57 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=1621234657; cv=pass; d=zohomail.com; s=zohoarc; b=FtdFQLL4KwvgEOUmdMTrLHyw60bhgvAOqe4GHhsstOhjvaAiTP2hNrS52sdnA+CE+HyqDgxXRqQ44xVJzVOIZ5wpjFUWMN87mrHcHqL4fxVTxcDuo7q3hAvemOdja/2enwTl/LzztC/B5JcxSPsp9O6cg8jS1xqqmVe5ED2y5JY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234657; 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=cBrXjumhfEnp99vp6XokcInyPwKClfsIZij6dgVXOrk=; b=RSqAWr4nl8OzUcyrCdv+gYNoamj3wndErM9qA/mdpkNNbCuuXO4IuiVfj+k2Q/9EXckTLkCS9P9GC4zAhMk+Jgq+S3g6oTS54WJRE/nKr01Qbdi3sS+bsD2ldIwPJURV4lB9hEdy9GyNdO26nBpwl8SLKAN5fvotEK5F14uxCuA= 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 162123465745593.29391359214344; Sun, 16 May 2021 23:57:37 -0700 (PDT) Received: from localhost ([::1]:59966 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liXC4-0006nh-AG for importer@patchew.org; Mon, 17 May 2021 02:57:36 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33548) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX0a-0004JS-Ux; Mon, 17 May 2021 02:45:46 -0400 Received: from mail-vi1eur05on2135.outbound.protection.outlook.com ([40.107.21.135]:63681 helo=EUR05-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 1liX0X-0001xR-CZ; Mon, 17 May 2021 02:45:44 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4341.eurprd08.prod.outlook.com (2603:10a6:20b:b9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 06:45:11 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:45:11 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:45:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L9WlXBYAA4UkTyqSNWeiSm2FuJN3C7bza+1Xd5n3LzSQbeJBNGNNRSF1ba6pk1nPOdgaWjalags2CIUReHxZjKkVh7N3MqAkkL1UNrk1UjlTsruchduyhxxxlhukPOVOVe0hOniGO+BXb050vGbSVlS/kXjYLhkdR7blmgInThtlSmWPlJdG1yPgBUcSAY1tBblCGd45e69ET3c/xQhH7zLZ9lSKVXXudNUk9TEPbb1jozqPSxwkhvVnxaR4eeH9Mp/m3M4HeL4r274qLX3XTahdxo3kdaVtHRzwkSKz6HxWXuPcWEzab8mERc5BI6tj5dt8RkSnUBByc1J2fOQq3Q== 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=cBrXjumhfEnp99vp6XokcInyPwKClfsIZij6dgVXOrk=; b=E7w+72kX6eDYXj8Sirv70DOf6jSEuXwDiuL/GBsHuQnX3qFpIZ35/C2DK9HcURVPiPiNMgs4eN0kudaVxOQrRF2R5Su7U8CUN74jLxf/TyoqcU/Idqy4OZCqkb9pWKnHCkC9l+LQrOCPqq4eI6yI5BNI7+xlX+EaSGc44iJlV4Uj+NXWtBVgHyT8liDC1ihWjdyxZpaMWBte01ySywHT5kwSCZEtTSiGHKa4NLmh9e4jY/Gch61xwKIhj7KjbjSuNhuy4VPphLuw2xF81M9Pv91OUt29B+k+SHj2FTR5UbqvfjWiMQhOnxYmHBjX73pUEZD1a0SpJ43xx4ji6kVmQw== 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=cBrXjumhfEnp99vp6XokcInyPwKClfsIZij6dgVXOrk=; b=qaLmYouHgHHR4QccoqSNzzp9atAxX0tGyhHFhF71c1aBpROKUTRc5xQ/7ORmPpXGBYHK5qaCA8W1V27am0JHfsfURWS/k6MdO7NTeam5OS+11w0VX/ZKgjFdQsmg7+5hTJyQvEti8LBNEtaD6wf6Ns2k0On4rrYJent0jin7QCc= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 19/21] block/copy-before-write: make public block driver Date: Mon, 17 May 2021 09:44:26 +0300 Message-Id: <20210517064428.16223-21-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 3952e8bd-1b90-4bc3-cc57-08d918ff518a X-MS-TrafficTypeDiagnostic: AM6PR08MB4341: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:341; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: R1Jq+j3MN7igeLwuf68QpIXfscwdI8ypsadkdgWH/cmj/QtcrR8bfiL7/4a4mT7bybmLymKIEyRHnaHf+phjWtO0k4HTwA3R1bOWCH1GyntN+oOiLOlJ7Joqqttzgx3lGibsPAszjxC9gxXatXYqOITUiNrZwyqS47ip1j6EcN9RAZb/f26xE14aZwVKnGGxlgICXrKGhDxCSDhRwLhiPz9jsw9Hcc1u8T9iWZWQ12sMHQUrpbIASPS+bJddIsH3QKoEg1AJwO1AgpJ1fp/uK4dX9gwe2yCVJ7LZvJoTVzCRCU2R5cUFjFEGB3TzzNefFxdPzOzOPyslNL/4KKHc1VSx6sHxWTFRJGMl0dKrh/B3qEAnkbV295fKMCxHr6xIbVaKJo2kE6bvVANMoh1099MIasmdhsmh0Xy6hOpDjXgADYkQQ97e427TgwIDGVmnN2UK2ud8wQT3MUeSFcfetyrNRq0FHIPN1jtdszDqwnSWNhYEv5GG+7mCcHibxjq2Zp6i9rvbJeFFIQmPytATXGO73Bm8msEKktnPLMMEoaEOKLs9f5V8TZvhnlRff2qwfwKKdsbZDUUvOl2i3q/j9qFChTKtf50KP8byjO0NHkuWpWWUJwtjmQsWyjyNSf9VAugb3uz4dcVFO5McLgNuhOFVnNOr1nKTQhF/L57dbePGXwaNW9TtzuzJH8v0q5Yy 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)(136003)(346002)(39850400004)(396003)(366004)(1076003)(8936002)(316002)(107886003)(4326008)(6916009)(6506007)(38100700002)(26005)(8676002)(5660300002)(86362001)(38350700002)(186003)(7416002)(2616005)(6666004)(16526019)(66476007)(66556008)(2906002)(36756003)(6512007)(6486002)(956004)(66946007)(52116002)(83380400001)(478600001)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?ToJbPMlSiRo218ibLqRzcR5i6MIyH9yptAyY8XRi7rzfKWdWon/k2Di4lY0B?= =?us-ascii?Q?JLjE8UG22M8VYEdokliGydrwaOhamK3pX4IkMK3/m2BL1xGOOzSmZZop5xER?= =?us-ascii?Q?MooFcOTMquztP3/FKt2Tc9zIAKXl7ktpHXDw/UhE1YtXAypvPHuluUGVNFfC?= =?us-ascii?Q?rQv5tk58ot5kdSNOyA7q9Jz/YPVt2351HKt+mcIFR8i6TMRbaxtBpQ0vPLqO?= =?us-ascii?Q?lge+mrlar6kJ3YEnJYkvHYVhg1sYAzHeghOSGTTn5JZgPORnnLIJ2qnPUpXL?= =?us-ascii?Q?LTLt9G5CaBpd7cWJROxhop0wBejxv8xkyI57l04bksQlI3EcWtF6orR5oJas?= =?us-ascii?Q?zMro8kLRRubcI9IEerrwb0nAyu2+0DDDgKye3ClJaN7EQ+SEeUrGmLiLbcWR?= =?us-ascii?Q?80/Iiyr5ytRWZ0S3HD0YuElW3G3BJulZWvDN8jHg/tJbo1spkIV4oEN6nNRA?= =?us-ascii?Q?XCTK7Wk6y82AC3Yx6u0ws4Pg8Chk1xqroV+pl65zK4MzhECPBM3ePToV5ZEp?= =?us-ascii?Q?o5rK0b3kHNJrEqWU/A/6Qub2CdwJpo0MpgyPJk1J9L2DUoqfJDILQbjRH5lB?= =?us-ascii?Q?jpAmND+eEuLV5IB2G82eA/5vfK6ZX2B9yy8WHG/O++8gY+NVeI3cZQys5v8l?= =?us-ascii?Q?syjFnPZufe+Axki4HJWoI/nIA/BLOr1o6aAqlxnR1ADU5t/s0GnC/XYNRN11?= =?us-ascii?Q?3RMYsuGQXKkojAzERVmNGeD8iBR9RkQhoB3/eFqpM+Ynyl2kwfWkbPPN4F7w?= =?us-ascii?Q?q8PqfUcuJ1kWAh5T4OyDGx6AjzLrn3ZAJpjN6ABs324zZ7/QZzkaXnRWKQBR?= =?us-ascii?Q?nMapYPHIebXsIp6KC3v7Io1otDTqs+oxxJ8Xs41AYZQYHKyaFmWoS/C2gjOG?= =?us-ascii?Q?sN9eoW4Dw0qgbYwefvKwFBKk563anelfYEy9cWPOjRNfO09q9u1/2iR/Rx5f?= =?us-ascii?Q?VosFRa4lAzq1rIrF+OICpJKVZK8s+cnoVAOIKAmgtiDkZRw0plcoDeBO84fj?= =?us-ascii?Q?2Qne6fHxmDF7T/F518jCsBQlztWCYmtufD84mEbU1jLEzFzphapm9tjIyz01?= =?us-ascii?Q?UYryE9U9Awnva9xmxJr9xpZUVAddE+PrvAGHxPcqh5w/4c/KlBI7RfEkRxS8?= =?us-ascii?Q?TaGEgLDgs4o0fCyBu5AdoUhPf+bVutgcLrT7t0o9QnGx4vURU7SeeNNB3GXk?= =?us-ascii?Q?E5YhHIT7e01zKlNi/ZNJi+qmMKFj2OvOsmJUFfa1UVVYefY5N7BzHGYu/tY1?= =?us-ascii?Q?L5/Br5hLrUuAQOaUOG/LVzxLEifaPF4//6PDgU07aeoQ03PLcLcG8Gk1UtwZ?= =?us-ascii?Q?wWIoJcBY3QxTf0uFVdgAU9w1?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3952e8bd-1b90-4bc3-cc57-08d918ff518a X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:45:11.4996 (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: g0tZ/lZos5FoF1wuPwa0BKQqdNSZzmTe2uVoGEFtM8I3PNnMoABZClmSTll/2wEUmPi3lHHrQyZjDzh4bGisv8tQ9fC3O+fZgCW6JLs68Js= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4341 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.21.135; envelope-from=vsementsov@virtuozzo.com; helo=EUR05-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" Finally, copy-before-write gets own .bdrv_open and .bdrv_close handlers, block_init() call and becomes available through bdrv_open(). To achieve this: - cbw_init gets unused flags argument and becomes cbw_open - block_copy_state_free() call moved to new cbw_close() - in bdrv_cbw_append: - options are completed with driver and node-name, and we can simply use bdrv_insert_node() to do both open and drained replacing - in bdrv_cbw_drop: - cbw_close() is now responsible for freeing s->bcs, so don't do it here Signed-off-by: Vladimir Sementsov-Ogievskiy Reviewed-by: Max Reitz --- block/copy-before-write.c | 60 ++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 32 deletions(-) diff --git a/block/copy-before-write.c b/block/copy-before-write.c index 9ff1bf676c..20c933bfb0 100644 --- a/block/copy-before-write.c +++ b/block/copy-before-write.c @@ -144,7 +144,8 @@ static void cbw_child_perm(BlockDriverState *bs, BdrvCh= ild *c, } } =20 -static int cbw_init(BlockDriverState *bs, QDict *options, Error **errp) +static int cbw_open(BlockDriverState *bs, QDict *options, int flags, + Error **errp) { BDRVCopyBeforeWriteState *s =3D bs->opaque; =20 @@ -180,10 +181,21 @@ static int cbw_init(BlockDriverState *bs, QDict *opti= ons, Error **errp) return 0; } =20 +static void cbw_close(BlockDriverState *bs) +{ + BDRVCopyBeforeWriteState *s =3D bs->opaque; + + block_copy_state_free(s->bcs); + s->bcs =3D NULL; +} + BlockDriver bdrv_cbw_filter =3D { .format_name =3D "copy-before-write", .instance_size =3D sizeof(BDRVCopyBeforeWriteState), =20 + .bdrv_open =3D cbw_open, + .bdrv_close =3D cbw_close, + .bdrv_co_preadv =3D cbw_co_preadv, .bdrv_co_pwritev =3D cbw_co_pwritev, .bdrv_co_pwrite_zeroes =3D cbw_co_pwrite_zeroes, @@ -205,57 +217,41 @@ BlockDriverState *bdrv_cbw_append(BlockDriverState *s= ource, Error **errp) { ERRP_GUARD(); - int ret; BDRVCopyBeforeWriteState *state; BlockDriverState *top; QDict *opts; =20 assert(source->total_sectors =3D=3D target->total_sectors); =20 - top =3D bdrv_new_open_driver(&bdrv_cbw_filter, filter_node_name, - BDRV_O_RDWR, errp); - if (!top) { - error_prepend(errp, "Cannot open driver: "); - return NULL; - } - state =3D top->opaque; - opts =3D qdict_new(); + qdict_put_str(opts, "driver", "copy-before-write"); + if (filter_node_name) { + qdict_put_str(opts, "node-name", filter_node_name); + } qdict_put_str(opts, "file", bdrv_get_node_name(source)); qdict_put_str(opts, "target", bdrv_get_node_name(target)); qdict_put_bool(opts, "x-deprecated-compress", compress); =20 - ret =3D cbw_init(top, opts, errp); - qobject_unref(opts); - if (ret < 0) { - goto fail; - } - - bdrv_drained_begin(source); - ret =3D bdrv_replace_node(source, top, errp); - bdrv_drained_end(source); - if (ret < 0) { - error_prepend(errp, "Cannot append copy-before-write filter: "); - goto fail; + top =3D bdrv_insert_node(source, opts, BDRV_O_RDWR, errp); + if (!top) { + return NULL; } =20 + state =3D top->opaque; *bcs =3D state->bcs; =20 return top; - -fail: - block_copy_state_free(state->bcs); - bdrv_unref(top); - return NULL; } =20 void bdrv_cbw_drop(BlockDriverState *bs) { - BDRVCopyBeforeWriteState *s =3D bs->opaque; - bdrv_drop_filter(bs, &error_abort); - - block_copy_state_free(s->bcs); - bdrv_unref(bs); } + +static void cbw_init(void) +{ + bdrv_register(&bdrv_cbw_filter); +} + +block_init(cbw_init); --=20 2.29.2 From nobody Sat May 18 07:08:57 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=1621234784; cv=pass; d=zohomail.com; s=zohoarc; b=IeQVyEkBg9DjNHns70CQ8nPrS7+CQTUyY29FjzNGWQpqrsbOBVDg616h4IEZBsSl/PHoBRyho/pJD4/pN2hWxuzBvKFy476H5/XHhV2iwKQNNzJwdM1ZdWLFNwJBEDm3qkv+PvLf0r/xRsasX6qlB0uqnUCutYqkfHKV5jN9qbs= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234784; 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=yBl5M4xP40hzq+CLa2LCYHOR/OX7Lq/Rq/X4O1t8gbU=; b=TQJnOhxOVY0NTWA9x2gHfxo6ZeNWVtSlkT9JWPqbcJm7ar+KGiY/woGYTuNf08AjJUQfiIgCssjmfS3mZaqxMceNYaOmeUN2BVCZZb7yyx8aWJI0HxMqMUbzIHZW+g8biI2i/AyMbQKHMfVPVqQZtG9KM1+lqXh51jTYcj1f7aA= 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 1621234784363358.28571564765934; Sun, 16 May 2021 23:59:44 -0700 (PDT) Received: from localhost ([::1]:40232 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liXE7-00040F-7E for importer@patchew.org; Mon, 17 May 2021 02:59:43 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33562) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX0c-0004Ku-Pz; Mon, 17 May 2021 02:45:46 -0400 Received: from mail-eopbgr10124.outbound.protection.outlook.com ([40.107.1.124]:1412 helo=EUR02-HE1-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 1liX0Y-0001ta-Vx; Mon, 17 May 2021 02:45:46 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4341.eurprd08.prod.outlook.com (2603:10a6:20b:b9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 06:45:12 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:45:12 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:45:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R+7w5s3zjQvxJVmaDNTwrQAzUh7cWughYAFoyR5byd1sjfdGw25la8ZevYMe+BWL5OduZLiTCEpwC8eH5Ksai86PS8NUDZ/BRn6p3G9HLmPvLS4b1/vRYnwqOLRn7GPnXBGJkBS9+sVatcyX2a0cNs01G6RFTyteJvAmWAIx54FQYnSLfUizVnCZCE6wQq6Jwn0G9i+QQuG0AfACfQTBJQfzPciZxf/RJ3n2oSA6uKDJoWy3zhREXDte23WfqABQYY5rMFTJxPniRr+9IeY5BZ6hr6l+ioDga4T2o1JhFTjV1uGyPWTQC3/R7ciH9bH//7PtReU+O9NOOjdIr6sLyA== 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=yBl5M4xP40hzq+CLa2LCYHOR/OX7Lq/Rq/X4O1t8gbU=; b=OpGpG74tgj9g3HYDijT5coY8uOiP4Ej6RTlhWzDwBHEEnUjgIai2E4dprAgL1BU37LWTLFXfy/00mOHV7hHNrrt16w6KtCCSYP2k7rgqaH66fy69szMtf4u3ixWFvZ3csfi1qEwK5DZINDApg7LbISosz4m1/1hgdYticN30nGHcxO6JexjthYBZMo3JjNboMcqrdR/yt3Ar5kWrJN2YwJ1xkxdh2pevsokXksWCoNI3C2cqhAlb5rWWeZtnZD9a1k73paawMJ81SuJw3apDmRwGkA1AysxQrhcsReKnFQ9go7sK7yDgeDcGr5jCWovGA/k+nsfzdHm2y3BZX0xcIA== 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=yBl5M4xP40hzq+CLa2LCYHOR/OX7Lq/Rq/X4O1t8gbU=; b=SmRcMv6dooidQTxxkIEkGfgFUXS0k7eoKUBYjY+MN1cumUDt2KaL5u/ReyTsLrP6VBlkn0MXZp8EGU+R7ytdfEGXWbPxKIH7P3vIkr94IgjDMkp6tRngP1XGYXBaF5mH1Tu4C0+fuThsjdQXSJED8bOK8PBW/W/9/2+IOcCaWPE= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 20/21] qapi: publish copy-before-write filter Date: Mon, 17 May 2021 09:44:27 +0300 Message-Id: <20210517064428.16223-22-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 8b44c895-d7e3-473f-58ea-08d918ff5258 X-MS-TrafficTypeDiagnostic: AM6PR08MB4341: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2449; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pmmVVfMPgO6pbrmfmRWt7fyJsXRLEDdB/ezLOYFBJlA6oxznN+d7nPvJztuuApbXsBsluR899joMVxcImZnZwd7lsvqr/L/z1akxR054naWZF7I9iY7amchhy9xGRVQTjH6YSpMzOjK9EALtXool6PMCY5lMEEUGB92f5IXplosvd7Rq8qQh7dlspcS9QPbt5ZHhkPQYVTQogB3f6mr+k0zLVOMZWQXewO63NJv8LHU0Is8gNKJRjb7maG7wui1fZFOLAWJIllCCdlUyql+x/wMCh7GohIHnjrj1pa+YRCAnhEeTG5crIqNf+YLqR4oeBRq5tpHa/lGp1aR2EIItE/qcId+pYZP+6NHPi16+grN3Zs0FnuGdfZKc3DXX8Z3uMGC6qtxaINaTS74LX8tVpPKcIFwlfduS6IIXFIeXfwXnta/qiXtIfAsTm4a+IwVS+tAoRDU79oI8cLzHihvlM+trFydFbdwvWsqC9ld5Rtz6U/hErhTYFexVrQJBj3lZDyR/chCDHQ9ohVXk1pRlwg47rwRBiv6qmFmD/16slaV0lpu664ogb0zwydyW9FRAYdqOGKO/njVD68SAfl8wOIXG70RRycrDBFRec/2BWyPXDnYbYXAUEE9te7wRAX0yBUoE8WSSdA0y1Bl1q8XeVsfVj3VoUK8KgjwCnEvbfpeZ6pvGSS+/JLDB479UKtvQ 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)(136003)(346002)(39850400004)(396003)(366004)(1076003)(8936002)(316002)(107886003)(4326008)(6916009)(6506007)(38100700002)(26005)(8676002)(5660300002)(86362001)(38350700002)(186003)(7416002)(2616005)(6666004)(16526019)(66476007)(66556008)(2906002)(36756003)(6512007)(6486002)(956004)(66946007)(52116002)(83380400001)(478600001)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?JpfMM3MO35EdfxYOsw9Txv7dKzJ4lPafZr4aShldEShi0pT2jp0S1pnMwuz0?= =?us-ascii?Q?XISrf8Fl/1Zuq/j3OqDupgCv3anqzpyz25h0tDRHGGfKXMJD7bTNF4/0B5KD?= =?us-ascii?Q?rrk+3rT6q26c4qZDZr/sYn0Yshk/+vflisJ2hWAAey9cKFCNJYwRLA2/Lqxf?= =?us-ascii?Q?eKpTwLangYXt00MKSweLDcFX2o9WbFHUOx71fJOnC5KMj8DCNLhR+ewoI3ZR?= =?us-ascii?Q?y9kTQEwRmBI8jVZoM6oUFOv/T0JMD+22N8r+0ysrv8xRvp69UuEs0uljXZde?= =?us-ascii?Q?VwysmvTf+4xLacVQnzAZw4TyTyXzw8JkuGYXJBd13Bym/bIIVurNMa/PDJuM?= =?us-ascii?Q?bfzD34MhthX9H1g0c7hAS5HH0mKYFuw2dIj1upcm62Yti834NXtHonULKlDG?= =?us-ascii?Q?ntIg3Z7xpwHdn2gGUVsdab2E+1kOrmte+K8PGHDEnl9bBSPK6Uuz9Ph2iXFa?= =?us-ascii?Q?PLuC25maJHi4GfXiv+0MiC+CC5B7NtRJWEBCBQRUZhFrUi7OhGS1w1RQlYjO?= =?us-ascii?Q?1Q9SW0HOL1kv3G8lKZP+/R4VgMZDxmiEekPDXDnU5PmhxKmHgsOVxS+AfJXI?= =?us-ascii?Q?rHFvjGXBmydYNvKwQEnhcAQe/9Wjk1gXtyN0GNHmK+2a3kBtSstunh1MiuYe?= =?us-ascii?Q?Avm4VSFpPcYdBL/etZhgWeaBuMCxz9+PDI6z3e/uj8TJrAC7l41i2z8s39/X?= =?us-ascii?Q?VzwErJ5wRsWg8S0/9RABZd+A7ZQh0LiOK/0rmxYSzhbkB0HbdBsdq4KLRV9W?= =?us-ascii?Q?UQOVmJX8LzWt6+WGrBRZPbpNBxUrTdyFtjcnVPFo3G2KUi1S9MqQDHcDTJ8s?= =?us-ascii?Q?Ia+lzhwKqEVdYAY1QHGGwG3bH1DLguFLkZdFogChRbxmnlg98dd2l644rUt5?= =?us-ascii?Q?5TXI756XJ3/dsH0ImddMDt6IIXuP147OvH6U0YIDtkKF7BTaSIumS02e90Br?= =?us-ascii?Q?t0cjBDGUEHaFJKYuihbIfMnEbL8xyuWHRyWwFn46YZEUoChXEpbmIGfPS22f?= =?us-ascii?Q?2GJcphRYCuR/FEoc9bI5o1Xy4/g6suln64RHmUaZfSZcC123PP8d6oUwMakj?= =?us-ascii?Q?Gxj6Z1RBi8Pn8eqD0IfGKLAfH5sZEEJSpB1dxI6dnZEyrwrK3osOqSZEA3it?= =?us-ascii?Q?hOmNrTEK8aY3dDNWly2Jop402oIRvYZ6yllG9ROZKC+3cQuSmX6tfRTUCLbT?= =?us-ascii?Q?RENte3/5//yg+jIVYqbQQ3ZOXJGLXD64DnXSeYlopvFYoIm8z8zK0Z5JXedi?= =?us-ascii?Q?9QOPZs52tdI+1Bbzftbt9IvoBTzg8lp8nYnEUXuNW5anwD1okX092n8WSXX2?= =?us-ascii?Q?P6pLp3CkNliVjLm52jMHHtD5?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b44c895-d7e3-473f-58ea-08d918ff5258 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:45:12.7740 (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: wXJyjtP7/adwFppyZcTpqctHEzHeNUxaynoR9xCAnRe4Hozedea/wYd6JyerHZPdA3/5sV15iM2N1WEYkCMOuv7le9T/wIqIkWCsjtZK6Ig= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4341 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.1.124; envelope-from=vsementsov@virtuozzo.com; helo=EUR02-HE1-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" Signed-off-by: Vladimir Sementsov-Ogievskiy --- qapi/block-core.json | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/qapi/block-core.json b/qapi/block-core.json index 2ea294129e..f8fbcb6416 100644 --- a/qapi/block-core.json +++ b/qapi/block-core.json @@ -2808,15 +2808,17 @@ # @blklogwrites: Since 3.0 # @blkreplay: Since 4.2 # @compress: Since 5.0 +# @copy-before-write: Since 6.1 # # Since: 2.9 ## { 'enum': 'BlockdevDriver', 'data': [ 'blkdebug', 'blklogwrites', 'blkreplay', 'blkverify', 'bochs', - 'cloop', 'compress', 'copy-on-read', 'dmg', 'file', 'ftp', 'ft= ps', - 'gluster', 'host_cdrom', 'host_device', 'http', 'https', 'iscs= i', - 'luks', 'nbd', 'nfs', 'null-aio', 'null-co', 'nvme', 'parallel= s', - 'preallocate', 'qcow', 'qcow2', 'qed', 'quorum', 'raw', 'rbd', + 'cloop', 'compress', 'copy-before-write', 'copy-on-read', 'dmg= ', + 'file', 'ftp', 'ftps', 'gluster', 'host_cdrom', 'host_device', + 'http', 'https', 'iscsi', 'luks', 'nbd', 'nfs', 'null-aio', + 'null-co', 'nvme', 'parallels', 'preallocate', 'qcow', 'qcow2', + 'qed', 'quorum', 'raw', 'rbd', { 'name': 'replication', 'if': 'defined(CONFIG_REPLICATION)' }, 'ssh', 'throttle', 'vdi', 'vhdx', 'vmdk', 'vpc', 'vvfat' ] } =20 @@ -3937,6 +3939,17 @@ 'base': 'BlockdevOptionsGenericFormat', 'data': { '*bottom': 'str' } } =20 +## +# @BlockdevOptionsCbw: +# +# Driver specific block device options for the copy-before-write driver. +# +# Since: 6.1 +## +{ 'struct': 'BlockdevOptionsCbw', + 'base': 'BlockdevOptionsGenericFormat', + 'data': { 'target': 'BlockdevRef' } } + ## # @BlockdevOptions: # @@ -3989,6 +4002,7 @@ 'bochs': 'BlockdevOptionsGenericFormat', 'cloop': 'BlockdevOptionsGenericFormat', 'compress': 'BlockdevOptionsGenericFormat', + 'copy-before-write':'BlockdevOptionsCbw', 'copy-on-read':'BlockdevOptionsCor', 'dmg': 'BlockdevOptionsGenericFormat', 'file': 'BlockdevOptionsFile', --=20 2.29.2 From nobody Sat May 18 07:08:57 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=1621234983; cv=pass; d=zohomail.com; s=zohoarc; b=S3hxO8f7BJIrXnz+uBn89kMsIy2hmNNWjYDlMFtEMQZU+jEJ9DmqpyOX9OOAxGjZp1uBmhVlKV1viazeSuDKPDIcb5OaJxSxF0K68jgpYIbp3rqeVi3GmFZ4aWIas6iI/qa6xXPITv+XlrWJhp8mdVMfcOm4jtxl1DurKsEo/sw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234983; 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=vv7Gyd3u3eorN94OkmUxTkBC8m6p/HwKBStFa9kInbY=; b=ikrjf34irFdxqkd4zf4InJS3SL5s1lFjnpmyflfMh1nDOqXDGXBn/tIEh8Dx4bNDUzgozIL/et2wsz8JLo0gFq/zwtWLOKJ0/tBUyWiCTL3zJ5H945DTWgs+hgWly18yZUEG3GoSMo3PKA4zYQSBXKaXZHkRD6XU6h8RuZkYI5M= 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 1621234983092457.6620077442159; Mon, 17 May 2021 00:03:03 -0700 (PDT) Received: from localhost ([::1]:48866 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liXHJ-0001Ue-Q2 for importer@patchew.org; Mon, 17 May 2021 03:03:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33574) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liX0f-0004RP-2m; Mon, 17 May 2021 02:45:49 -0400 Received: from mail-vi1eur05on2135.outbound.protection.outlook.com ([40.107.21.135]:63681 helo=EUR05-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 1liX0c-0001xR-Ts; Mon, 17 May 2021 02:45:48 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB4341.eurprd08.prod.outlook.com (2603:10a6:20b:b9::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.28; Mon, 17 May 2021 06:45:14 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:45:14 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:45:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nf9resHh6nv6r+FW/BIXV9cSmT3YVOo0x1Wr8jWQZnBQSuRk51Xdut3NpBGVbR+87OJUTtQW74QqBw4pnFT6jU58RA2WqHKTOu3I0mZgt/ZezWz1ZPvm/JVIKt6Ew6H9OHSDSsZQYyAjAbbz2/M5jODOc1MeqRxdJg60y7v5WcDBtpev+HpcwzOfWQWkseerSXISKaCt42QqaaG62E7Hdu+Uwcs5bW0uGDKGEqcGD3uM9BBYolXHCA7XMeTrL8ami8MkEvf+Sx2u8kAocPWR7xfzeFz5bwkzebB8Sd8P5qa0f2yu8jBYEVD5VH+W0fawLIpWChijLEzx4eC3Tc/f9Q== 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=vv7Gyd3u3eorN94OkmUxTkBC8m6p/HwKBStFa9kInbY=; b=KI/TDrOHkn1zwODogPGjSSDn6ZUftg3ghPgMQFnWQQ+KV2hP6chp+uHUihGzFginmu46WlU2LfLjDkf4nCg4l7HnDq3Z1JuayvVgs4DLy00W7obarA4EsScETw+4kCX+UDR8EFq9+0C5tzxEYLK7VhppMmbL2PDoBkhPB3md3WubBz/unDaen+pUv5bKPT174kdNO93VLgR9dlYMZTgbu3BqXHD/+Z46wHcwkHs57e9nFpsMtHj3AeBxpQzQ0GP+XgVbVk7RRii5xa471MxVEZxwI1Yzct9Vv42hza+lfi2ZFIGfgVOLwCuBcFV6oxg4rmTL70sNKsWFIDSRPpE5Yw== 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=vv7Gyd3u3eorN94OkmUxTkBC8m6p/HwKBStFa9kInbY=; b=PMC06ACK+rQSzJVDRPfZrZUo9ML5QV6c77ZppWYhfEjDwO7ZZL+KS86mOuqszEnvDbCCBfI/I1BeE3itvbW7FY9cCXB9o5blQx+ddXi93hISoelNZfsEatoHp8YRXGWDpLOxZH2mXX+1NoVwhiHfXkNAaR5nUJj1l7Y63/IvqEo= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH 21/21] itotests/222: add test-case for copy-before-write filter Date: Mon, 17 May 2021 09:44:28 +0300 Message-Id: <20210517064428.16223-23-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: 66fa2341-69e5-4491-c502-08d918ff5323 X-MS-TrafficTypeDiagnostic: AM6PR08MB4341: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:519; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: pX9yA3QkUvd5aOTGLt5lguhr+6Jk5r/kTRR4Zo482ZIKM4D03UzjZhBGFkTzYnrvgpI98GjpcQcQVI/uyM7oEHF6iLtdBAHtrlufEGqbKdRZvlISw1fhJsqAfnS2ytUxoE6UMJ7tFkoA2fkL25lIQI6It/wv7RjUdQF28pwhnfNIoUaRSdXONBWAJ4UKs+HDzf0zSCm1uqOiqwJTzkEWVIJAahT7KAztPn7cljmEBejAF4wBaBiWjmHfa5nTJWTqTI+aG2yxXImgGpDNSrKWWTO+9ZnfFLoAXNjZIiwOf89LK90vPgko1+xEIbgAmB0QglEeXrKzkMBdm1uwmo1I8NX65aEaSZEbO2Yp5OaKMgjhXCmLLsWbd8Yj1L5uKHXs/t7Qt1bUYh5VTNxU3UKp2Jynxhb5QLYzsf0mVgIqHcD8Izqb1TPoboHe2SoTBwTWSrdLWwq3YXs5TT4M69Rdah4nmmEFwfpFzZUohuWreqO3HUfTRGf1ZIaDQiUo/OCU/B/FlqKw0vEgjdv+YlWdmJqTsw/rz1GGY0/eWHazSzDRfn0xiKwcwu6NWB/C+0yjwyLqxerIaYg9jGTRWb7fw49o4o5iWKZw+2f3CZkp7NzrHTRBK2S/mHeSUOEDzA1nxbYGbfpOYWFzl3d5xlwsLguEw/wprvOB8oJXoHyIvrvC7ImUkdRE6LpcuANlI9yq 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)(136003)(346002)(39850400004)(396003)(366004)(1076003)(8936002)(316002)(107886003)(4326008)(6916009)(6506007)(38100700002)(26005)(8676002)(5660300002)(86362001)(38350700002)(186003)(7416002)(2616005)(6666004)(16526019)(66476007)(66556008)(2906002)(36756003)(6512007)(6486002)(956004)(66946007)(52116002)(83380400001)(478600001)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?89keWriMn8sK1R/zsuJYSJSk8Oun4YRPPWJImaYJHkhLlIH69in6PGH7PI3t?= =?us-ascii?Q?ipz2h9hEgw2lSuvVnzn2uQ43wi6UYVPNFl7O+CrdAQtTP/VlvazCDPCkFA6i?= =?us-ascii?Q?fgvxdqzkTpTFLdAo1jNzpn6JYWLfJSuKxE2hdE+/bJPJvg85ntHvrcspbXoB?= =?us-ascii?Q?7fSuHJf7jdI0sNv/G0CWpDEQeihZtHjoBUkp/bXYKDsS3pPQaOQLULwQHBlv?= =?us-ascii?Q?2j2+MbN+loPqChGlrC7FLMTuTy4nwYxj19/Nbt8arD36Ewyoc+XWWOTLfqmo?= =?us-ascii?Q?g2H51AhpiZ7Ej2fUnANm28WE/FXS3Wkwn9DdV9axaOJcYP/eEDm29vuMuGUq?= =?us-ascii?Q?PK8hqKiXnUAtFyApZeHEv0YwaQhFIrFmtzgmt4MjLMw13QLgFDa8vIReHiY2?= =?us-ascii?Q?Kfg+8hs9VjhWMiCgF7mIq+o+6dg+2+yya9A1ogegWjMcGsEDDY013JFOUrXe?= =?us-ascii?Q?+CoQGfW+Fa0lnerlBNsQBx5hYdUdqLXCudONb/fHHYmtTjFJXZYh8e5JrQy5?= =?us-ascii?Q?JFYcvS4t1P73HvBIgRA/IgrjSoy8QrObftK9oTOJY/uDqorQ939RpRnJ0H53?= =?us-ascii?Q?tQwEP61mP5nWB1V8gVjtHnck+wBNpVE70LQ+z54CNM8eTm/LXFAsWQrnfvOC?= =?us-ascii?Q?+6UT5AMGIp+1lw6UKSUwq5i5+2qy0AqOUOTO24gm+rHIhDgpx6xSL/oEcqHW?= =?us-ascii?Q?R4dptz8ifqkNg0qEIAtL9e+HCuRfSRPxxVYRn3s5zNJsAjFsj3FQoQPRFoRp?= =?us-ascii?Q?lpKlblUVTsJYpgGOKRtq4fwIAVA7XuXQTuE2NDXEAZyCEixvOMr6g2ql5eqe?= =?us-ascii?Q?ii5V/DKtqdTpw5KPFfAQ8p+QqnHvySLl2eva5QJpzPE64StVD6NKr0hOwUk1?= =?us-ascii?Q?6U7Cd8Tv7dHmgZ6QeUIsjzvyP3MuXyDvmwFRXZgIHkkoZzcmeEAQUHVji+hC?= =?us-ascii?Q?v6qwrhWpS4lX214BP3UJe5nO+CdO6wMmDxVLSfHkm55f1Mw/UliJe5VcEHm0?= =?us-ascii?Q?aRKoHA6OoMkdcLdE3nIUEjfLty9N+KstIwkq9BpEQoe8iFyGTBel+5oQRpyM?= =?us-ascii?Q?twJARg2gZzsUzGo30L3yEsmCgRfAyMUu+wcMDNztJhsK1hMNqCKsnCN+rGPY?= =?us-ascii?Q?ZrI/qQQ9wkNW3BUOfFYhH3JdNqJIxe7ZnO378Ay4CiD/G5AWSGfDRohh6FAX?= =?us-ascii?Q?/uOxfBX3DOUovMc56C7IzMUSBCzYDxyEBG4/hMjizGql9KUCuhBpeN+eRBHk?= =?us-ascii?Q?ofgRHmI9f15+25OK+Wb2PuJqveic61+rmveHHPBcepZxSrG00UoY0GEKCswU?= =?us-ascii?Q?DWuH9b0AXAQ4eVm1H8pUU/Yi?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 66fa2341-69e5-4491-c502-08d918ff5323 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:45:14.1749 (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: d9curSuXyXEHIUJJc1lr95LRP0uN9W+lTfK+Z/9VQahtwXTs4QevDCk0lBYu1q7PjJFifn7j/F7lxhS3u+DRfLDazGdZ8ZF9OtjVyq7hjLg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB4341 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.21.135; envelope-from=vsementsov@virtuozzo.com; helo=EUR05-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" New fleecing method becomes available: copy-before-write filter. Actually we don't need backup job to setup image fleecing. Add test fore new recommended way of image fleecing. Signed-off-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/222 | 56 ++++++++++++++++++++++------- tests/qemu-iotests/222.out | 72 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+), 13 deletions(-) diff --git a/tests/qemu-iotests/222 b/tests/qemu-iotests/222 index b48afe623e..8f8e1e4d7f 100755 --- a/tests/qemu-iotests/222 +++ b/tests/qemu-iotests/222 @@ -48,11 +48,13 @@ remainder =3D [("0xd5", "0x108000", "32k"), # Right-en= d of partial-left [1] ("0xdc", "32M", "32k"), # Left-end of partial-right [2] ("0xcd", "0x3ff0000", "64k")] # patterns[3] =20 -with iotests.FilePath('base.img') as base_img_path, \ - iotests.FilePath('fleece.img') as fleece_img_path, \ - iotests.FilePath('nbd.sock', base_dir=3Diotests.sock_dir) as nbd_sock= _path, \ - iotests.VM() as vm: +def do_test(use_cbw, base_img_path, fleece_img_path, nbd_sock_path, vm): + if use_cbw: + log('=3D=3D=3D Test filter based fleecing =3D=3D=3D') + else: + log('=3D=3D=3D Test backup(sync=3Dnone) based fleecing =3D=3D=3D') =20 + log('') log('--- Setting up images ---') log('') =20 @@ -69,7 +71,7 @@ with iotests.FilePath('base.img') as base_img_path, \ log('--- Launching VM ---') log('') =20 - vm.add_drive(base_img_path) + vm.add_drive(base_img_path, "node-name=3Dnode0") vm.launch() log('Done') =20 @@ -91,11 +93,22 @@ with iotests.FilePath('base.img') as base_img_path, \ "backing": src_node, })) =20 - # Establish COW from source to fleecing node - log(vm.qmp("blockdev-backup", - device=3Dsrc_node, - target=3Dtgt_node, - sync=3D"none")) + # Establish CBW from source to fleecing node + if use_cbw: + log(vm.qmp("blockdev-add", **{ + "driver": "copy-before-write", + "node-name": "fl-cbw", + "file": src_node, + "target": tgt_node + })) + + log(vm.qmp("qom-set", path=3D"/machine/peripheral-anon/device[0]", + property=3D"drive", value=3D"fl-cbw")) + else: + log(vm.qmp("blockdev-backup", + device=3Dsrc_node, + target=3Dtgt_node, + sync=3D"none")) =20 log('') log('--- Setting up NBD Export ---') @@ -139,9 +152,15 @@ with iotests.FilePath('base.img') as base_img_path, \ log('--- Cleanup ---') log('') =20 - log(vm.qmp('block-job-cancel', device=3Dsrc_node)) - log(vm.event_wait('BLOCK_JOB_CANCELLED'), - filters=3D[iotests.filter_qmp_event]) + if use_cbw: + log(vm.qmp("qom-set", path=3D"/machine/peripheral-anon/device[0]", + property=3D"drive", value=3D"node0")) + log(vm.qmp("blockdev-del", node_name=3D"fl-cbw")) + else: + log(vm.qmp('block-job-cancel', device=3Dsrc_node)) + log(vm.event_wait('BLOCK_JOB_CANCELLED'), + filters=3D[iotests.filter_qmp_event]) + log(vm.qmp('nbd-server-stop')) log(vm.qmp('blockdev-del', node_name=3Dtgt_node)) vm.shutdown() @@ -157,3 +176,14 @@ with iotests.FilePath('base.img') as base_img_path, \ =20 log('') log('Done') + +def test(use_cbw): + with iotests.FilePath('base.img') as base_img_path, \ + iotests.FilePath('fleece.img') as fleece_img_path, \ + iotests.FilePath('nbd.sock', + base_dir=3Diotests.sock_dir) as nbd_sock_path, \ + iotests.VM() as vm: + do_test(use_cbw, base_img_path, fleece_img_path, nbd_sock_path, vm) + +test(False) +test(True) diff --git a/tests/qemu-iotests/222.out b/tests/qemu-iotests/222.out index 16643dde30..bdc0f7912f 100644 --- a/tests/qemu-iotests/222.out +++ b/tests/qemu-iotests/222.out @@ -1,3 +1,5 @@ +=3D=3D=3D Test backup(sync=3Dnone) based fleecing =3D=3D=3D + --- Setting up images --- =20 Done @@ -65,3 +67,73 @@ read -P0xdc 32M 32k read -P0xcd 0x3ff0000 64k =20 Done +=3D=3D=3D Test filter based fleecing =3D=3D=3D + +--- Setting up images --- + +Done + +--- Launching VM --- + +Done + +--- Setting up Fleecing Graph --- + +{"return": {}} +{"return": {}} +{"return": {}} + +--- Setting up NBD Export --- + +{"return": {}} +{"return": {}} + +--- Sanity Check --- + +read -P0x5d 0 64k +read -P0xd5 1M 64k +read -P0xdc 32M 64k +read -P0xcd 0x3ff0000 64k +read -P0 0x00f8000 32k +read -P0 0x2010000 32k +read -P0 0x3fe0000 64k + +--- Testing COW --- + +write -P0xab 0 64k +{"return": ""} +write -P0xad 0x00f8000 64k +{"return": ""} +write -P0x1d 0x2008000 64k +{"return": ""} +write -P0xea 0x3fe0000 64k +{"return": ""} + +--- Verifying Data --- + +read -P0x5d 0 64k +read -P0xd5 1M 64k +read -P0xdc 32M 64k +read -P0xcd 0x3ff0000 64k +read -P0 0x00f8000 32k +read -P0 0x2010000 32k +read -P0 0x3fe0000 64k + +--- Cleanup --- + +{"return": {}} +{"return": {}} +{"return": {}} +{"return": {}} + +--- Confirming writes --- + +read -P0xab 0 64k +read -P0xad 0x00f8000 64k +read -P0x1d 0x2008000 64k +read -P0xea 0x3fe0000 64k +read -P0xd5 0x108000 32k +read -P0xdc 32M 32k +read -P0xcd 0x3ff0000 64k + +Done --=20 2.29.2 From nobody Sat May 18 07:08:57 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=1621234037; cv=pass; d=zohomail.com; s=zohoarc; b=C8MsCM6CZagoTbCQoQjmKpQ1gjVZNtwmj43bruuYFmPLvkZaD80Lp3Oa2hyfiGEUPHkrpi1Ao8OWGsa6Ii2Taf1p1K3uIuQpbzrmXYkUOwu7aWfwMuZpF8qAbrPr21/IF1+vWtiS+onuFmbc92DXh/Gp6CFOaeyBVTulrkP09Ms= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1621234037; 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=WKMLfRG+0XwSxj/Anf8+H5ERipCMV1cx9AWoGmm/KrM=; b=i6K5BXVRh0qq5S+XsKC2hdYkSdNIudbHV+AyeH3juZxfSnCQlMCz4bTheSr7s+6DAuvjVK84vMqEryq6sBOq+8WO7Loe5E0qP0UG/XH71YtW8xRDAl7OwTxe5CCdyoj0sdPI9YTSwNvrKcT8V0yBOgdOCrXN6zNmJhge064Sqv0= 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 1621234037219283.9397657311682; Sun, 16 May 2021 23:47:17 -0700 (PDT) Received: from localhost ([::1]:33580 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1liX24-0005tf-4N for importer@patchew.org; Mon, 17 May 2021 02:47:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:33158) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1liWzl-00038Q-BE; Mon, 17 May 2021 02:44:53 -0400 Received: from mail-eopbgr30130.outbound.protection.outlook.com ([40.107.3.130]:60322 helo=EUR03-AM5-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 1liWzj-0001jR-KQ; Mon, 17 May 2021 02:44:53 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM6PR08MB3382.eurprd08.prod.outlook.com (2603:10a6:20b:47::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4129.26; Mon, 17 May 2021 06:44:45 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%7]) with mapi id 15.20.4129.031; Mon, 17 May 2021 06:44:45 +0000 Received: from localhost.localdomain (185.215.60.231) by HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4108.24 via Frontend Transport; Mon, 17 May 2021 06:44:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HGSfp4A3Aqv5Rn3IT/ZHmtdagOKUXtXokg+j37XSPPld2RfVydtG+0gUZ5+ixmminksW5dYt2Hd0I8CIp6jOm68j+Fj8LetfVTBmdCAC1Yl1CEQrZT0GjDsj1YOQedPmEfoQJtp5ezuIm1+1XdZMHN3oAM3DohywodNpOj/FvkAx+nQYO8+OxWnUyUQjhrBAHegDY3ndfogq/Vm5Eg6Og8oHw64ruJkSuYKWLQzPTN0WdTK6747zDpKIL3uS20NudYReiJpc0eiSocXo5HHZcBcpVPRVCM8Ohf/5WS9KeTCHfqNrdN3XVdOULJxKcunTwdlgrHFyQNMISO+vlkXZCA== 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=WKMLfRG+0XwSxj/Anf8+H5ERipCMV1cx9AWoGmm/KrM=; b=ML/y53+KXmipydO+joGPfAZoBKGXfzQlgCFDRbWAIWcdm5dbbVEyhfEhFttvbByGade3xObfFaj+92T9+wNVd1h9VM9ptpxR1XYQ1JazJ7cifrpNd2IPgaoeIUlXgzTkdwYB1OaJUohwyGNRYA0WU3Xn/QBloxIN6sAwkSQS5RnMOmubTMCQzm+XLdnVaAjQ46KvB2Z4P8i/fw5N/HAlsdqp39iNIXsP0SWhvwt0MPrjGTygMbFM6h93MWBXgp1GDMUmvnzw4vjJnqPvm8Jm5vGm4pG9kd7AvCq5CJO7RA1Z/XeCkGzDEyIToVaItoXks1GJhTUbkwKxRyCmlA6ehQ== 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=WKMLfRG+0XwSxj/Anf8+H5ERipCMV1cx9AWoGmm/KrM=; b=cx9okBsDAtQqozHE4jEZKGjmUxvyIzDa5UUVg/iwEPBnJd7laE6cqoo+IavXhE75gAOuHH6j9fbBPnpOlWZt20QwNv3Pu08oYNp4DExL2wQYagY4gj1808kUm2M3+LPVdcVgnPvRi/UZJZ+bzG0m/UccD2y/K24epxEcAUHdSdo= 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, armbru@redhat.com, eblake@redhat.com, ehabkost@redhat.com, berrange@redhat.com, pbonzini@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com, den@openvz.org Subject: [PATCH] block/copy-on-read: use bdrv_drop_filter() and drop s->active Date: Mon, 17 May 2021 09:44:07 +0300 Message-Id: <20210517064428.16223-2-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210517064428.16223-1-vsementsov@virtuozzo.com> References: <20210517064428.16223-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.231] X-ClientProxiedBy: HE1PR05CA0275.eurprd05.prod.outlook.com (2603:10a6:3:fc::27) 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: ba86847d-4ef7-4432-1e45-08d918ff41cb X-MS-TrafficTypeDiagnostic: AM6PR08MB3382: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:111; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oeWsKg2v+NQAC2yLwujgcLYDS33epWUGy4NxdeJefKcGa4FmYcCpVeK59lcLIPEYatJgqm+U5w9XnnPR7kXcUeYEwHIvGJZfbInSawtTTeN7yjfx8sn0WdnmWrhYbMafPWBkRZJtk9rLlxBcZvbf/GHBuI7P1n1xuC7pRiKu1zbZlG7jyl5ohh5ST0oxH/QrzFwhcC3dF9cCFHK6Cl3QvMDtjz8kw5YW/88cYi3JcLYVhIdf0VXPnEg0JG7Ap7VX7kQfuurMy/4OTL/AuaCrte0H51yfP7Z6qZmwSMVPuKZv3CfdO3jGIQUWJ2B9ESyu7tedFkdEaNZlVHl/m9IyjbVkP+6Sb1LA/scyDuJxUrRLWr4lfWskg9Vm02bp5PQr1wrt4UAFTcXg+3gvkSJ/6ftVrDB2CAVd0B/XicGb/ZpPxnOaipi4TdmB54yQzbi5T+8iJwGdiaviAJK52Mz0FMVMUFJsgZRJFRjVWivX+ah+AJZN9+4LzXjgdu5EskYZUHTQFz9KwjxO8mnTIH3n9YDIkidfrfWWOgkDAqbqCKlDCmxu34SR6W2ls0jWMFXZ3KKGxUaxcV1G2qAW0gxgNYrFywa7GeaCoeMI48ntWehCTeFwUyTfN5Dm545hhZL6TsajzSTR/kxJDLg/uUYwiEyvYOuWIr3PqYq1bEDbjRxB3eR4QtdV9brM9leMVMiZ 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)(366004)(346002)(396003)(136003)(39840400004)(6486002)(26005)(2906002)(316002)(36756003)(66946007)(1076003)(107886003)(5660300002)(16526019)(186003)(478600001)(38350700002)(38100700002)(8676002)(6666004)(86362001)(2616005)(66556008)(52116002)(8936002)(66476007)(83380400001)(6916009)(6506007)(6512007)(956004)(7416002)(4326008)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?5nkyHc+0kxouLrGk6HF2XWFDUhee/Nn0SpZK3vfppjZFQbTucjj9DWFFhDPv?= =?us-ascii?Q?dRr9ncMsAfw22wtakfGwQuCTu85/F62WTkxBepfccfjxaNcjmToqj9cQbUDR?= =?us-ascii?Q?Fh+9/HzjfLhYH0x9npdk5RcO4MVYVMbfPxQzo9mPzpxPgklvFCCjF5RMnAFx?= =?us-ascii?Q?Mdpeu4v8UwARKH5rtMrMMkqisQSP9pGze+PW7kFQ9uevD8L+7SK42j54iLHP?= =?us-ascii?Q?1S+2Tgql6P6McxYNAEDmFiRdYZgi4zzyNdK0a0uHPXilABWJcSoJ/0nr0Tvw?= =?us-ascii?Q?GmfbBnMLnGNy2YPovxE6vy8JmKzsJOOQX2WjKlCHvqtUEDTOjS9g72dHl3/C?= =?us-ascii?Q?Q3ErG2YZWbT2zLD6RUqIlArFWuIOBm/RxqZTdLo+peOuoBhmpUxgbF9fHtVY?= =?us-ascii?Q?fggQbgl77P2e3SeIlCLfTPhGtYxSKanlfn8lkALzYy5dc2EPrQ586zZoF2qM?= =?us-ascii?Q?cIYo+y4iipxI2CO+BZENbIvnSE1okfUkJ6c0jfXTsqIx1/x9m8qcOSJFRYUj?= =?us-ascii?Q?b4vmxhL3wjK1f1boyXxr405invbiUhHD8EwU/r/gmZpVcqHItVMGdzjLvKXt?= =?us-ascii?Q?ffZBUC7DX0p06S7Hj+BiJ9qPEwSyL1cZ4FavZKEXvchpKUnKeIP/d7UFIIrQ?= =?us-ascii?Q?tl90tQpcxKZ8+wXc0Fc42nSAL9C+vNGkL997RQpPjMzgWwqxoU1ehMvDiP3h?= =?us-ascii?Q?KqJbm4Wcnxpph3z5iMuWypPVoqqMsyAXdEIYZrR63cqMqbfx4jnqGafjje4x?= =?us-ascii?Q?eB6irnyVHSbNcaNxhafAI5IptoGxxLvT+Xpe5dYN+43mHY4HZQKCqB/B4i2b?= =?us-ascii?Q?lPLX5hvLRooLC6rJZ7VFjFslk2naEZb7wATUf+pvr0KXc9zlTiGwnJrSpSXT?= =?us-ascii?Q?CIS4YNtHKOGa1c29/Rim1G9LsD5iWeSXbuINpeZXAWv4b/nPxy5sZEvZ260z?= =?us-ascii?Q?nmQC3+9/2Z1Y/SovJAzFvlPxMsHQjgXrU7B/ZXj9Hv35H8BsXH13uPQlXHWu?= =?us-ascii?Q?Bh/mxaFkfuKJ4EVNiKKuDi88KkcOZwmZ9ymHCtkvak6ZjgAWyaXwO4K6EOQ5?= =?us-ascii?Q?3uLzF5yYyawKmGlUYNuF+En9NtGFj1/X2dKp3SahF1Mgn/WHZvjyz3Fldmhx?= =?us-ascii?Q?SEQizYcvy5EVWSHE2fNMJOjzrZy2OSwYuDGfFt6BkpzOvPo9jjrS2MJElzVT?= =?us-ascii?Q?WwR6MU+JKzUniCkGVXVW6VcTqW95KodBHmpuX4bv7ATpRK3hePV17sI0IInW?= =?us-ascii?Q?qKjLI53utgYVgUtUWkcpC/bT9SGtqnFdYrsnJXDfZwpWdUJemUWGDRzMuDQB?= =?us-ascii?Q?+4W9ZQO52noJAjYTe8L/neS1?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: ba86847d-4ef7-4432-1e45-08d918ff41cb X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 May 2021 06:44:45.0587 (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: xMgcuzRaeW6PFqwwk6gwuilo17itPsuDDvmVqhmygefp7/oIw1+p0DTrv2+kjQwNkADpOgJGe9nmuhIt6azcd8T+pdSchjdnRAzDBEKIUGs= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3382 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.3.130; envelope-from=vsementsov@virtuozzo.com; helo=EUR03-AM5-obe.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, 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" Now, after huge update of block graph permission update algorithm, we don't need this workaround with active state of the filter. Drop it and use new smart bdrv_drop_filter() function. Signed-off-by: Vladimir Sementsov-Ogievskiy --- block/copy-on-read.c | 33 +-------------------------------- 1 file changed, 1 insertion(+), 32 deletions(-) diff --git a/block/copy-on-read.c b/block/copy-on-read.c index 9cad9e1b8c..c428682272 100644 --- a/block/copy-on-read.c +++ b/block/copy-on-read.c @@ -29,7 +29,6 @@ =20 =20 typedef struct BDRVStateCOR { - bool active; BlockDriverState *bottom_bs; bool chain_frozen; } BDRVStateCOR; @@ -89,7 +88,6 @@ static int cor_open(BlockDriverState *bs, QDict *options,= int flags, */ bdrv_ref(bottom_bs); } - state->active =3D true; state->bottom_bs =3D bottom_bs; =20 /* @@ -112,17 +110,6 @@ static void cor_child_perm(BlockDriverState *bs, BdrvC= hild *c, uint64_t perm, uint64_t shared, uint64_t *nperm, uint64_t *nshared) { - BDRVStateCOR *s =3D bs->opaque; - - if (!s->active) { - /* - * While the filter is being removed - */ - *nperm =3D 0; - *nshared =3D BLK_PERM_ALL; - return; - } - *nperm =3D perm & PERM_PASSTHROUGH; *nshared =3D (shared & PERM_PASSTHROUGH) | PERM_UNCHANGED; =20 @@ -280,32 +267,14 @@ static BlockDriver bdrv_copy_on_read =3D { =20 void bdrv_cor_filter_drop(BlockDriverState *cor_filter_bs) { - BdrvChild *child; - BlockDriverState *bs; BDRVStateCOR *s =3D cor_filter_bs->opaque; =20 - child =3D bdrv_filter_child(cor_filter_bs); - if (!child) { - return; - } - bs =3D child->bs; - - /* Retain the BDS until we complete the graph change. */ - bdrv_ref(bs); - /* Hold a guest back from writing while permissions are being reset. */ - bdrv_drained_begin(bs); - /* Drop permissions before the graph change. */ - s->active =3D false; /* unfreeze, as otherwise bdrv_replace_node() will fail */ if (s->chain_frozen) { s->chain_frozen =3D false; bdrv_unfreeze_backing_chain(cor_filter_bs, s->bottom_bs); } - bdrv_child_refresh_perms(cor_filter_bs, child, &error_abort); - bdrv_replace_node(cor_filter_bs, bs, &error_abort); - - bdrv_drained_end(bs); - bdrv_unref(bs); + bdrv_drop_filter(cor_filter_bs, &error_abort); bdrv_unref(cor_filter_bs); } =20 --=20 2.29.2