From nobody Mon May 6 07:08:34 2024 Delivered-To: importer2@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+importer2=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=1622063937; cv=pass; d=zohomail.com; s=zohoarc; b=EYULhcK3VlmBOCqWD9ioFqT5LRR/1KIpruBihGCkGBeAMjh3AngiPRUcwooXn8rW+AItIQ29gNkHSjyPjX0BUsXpu7TLdRe4WCgnl+49Lqu2dJ0mZiRohYNZbkMpXItgYV/pZdE0VnEjoG01UHdpq5MVcZbMDdNKkYDO375yedk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1622063937; 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=1vUqLjDZn5LVggUnTdP6HAHubKURuEj6ekl38g3v1Vk=; b=b7sgL2KB30mMo+j61I8QGcnmce21RwmNbJDZl7F09a/G21S1Rus7xMi/W9IBVH3CLqYJd79YVKLDauip29GZIitp5Jcahf7YDp9s73oIAiv0UNpZm033rmhMxdRVTLZ4IsUMg1OYOwa2CxCZ0uG85+0RTZ5mO7Xy1skfSsruzYc= 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+importer2=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 1622063937231871.2388441503703; Wed, 26 May 2021 14:18:57 -0700 (PDT) Received: from localhost ([::1]:38764 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lm0vW-0000qZ-3A for importer2@patchew.org; Wed, 26 May 2021 17:18:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37236) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lm0so-0007OU-BF; Wed, 26 May 2021 17:16:06 -0400 Received: from mail-vi1eur05on2101.outbound.protection.outlook.com ([40.107.21.101]:2688 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 1lm0sj-0006kU-UC; Wed, 26 May 2021 17:16:06 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM7PR08MB5382.eurprd08.prod.outlook.com (2603:10a6:20b:108::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.27; Wed, 26 May 2021 21:15: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%8]) with mapi id 15.20.4150.027; Wed, 26 May 2021 21:15:50 +0000 Received: from localhost.localdomain (185.215.60.195) by HE1PR0502CA0021.eurprd05.prod.outlook.com (2603:10a6:3:e3::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Wed, 26 May 2021 21:15:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OPuzulsVNVkUUmXYF57nI+YzO6oAEnNdEc5ZuA60jo9Fm8Uhxn2zyrqy5bpo+DJHOZtCp2Wgj/68PQ5R89QZxj3WcxwbSHJtN8QF9JghSyfS+7L7lwQbDpGHhJy/rxusn4TAWaJGTpT832UwMuHNP7Id0MllgaYikidWXrpWYTMNqlHwmCS2CX62zHebeP1Q0iRZjsUBP/NFZ8sxz69ZCIHSv/Muo1VgBPRfteexmhASIkAwfzw3/11f7KoCdNibBcp0zTjcam/ZTeql7fADR06/47LOXHRF/6zfZmpfS0AM99I+9w0XQBUkdsO8OkRMF+YiQyi3Hf/7VuSDlIACpw== 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=1vUqLjDZn5LVggUnTdP6HAHubKURuEj6ekl38g3v1Vk=; b=VLvtnKu24AMEtyE57IXpt8nvyJ82oaHyw+qXzEWLi12vN87IpsAdClBupOf2Tb1NmwkRpHLD6jTXYIl70+NXynYKYRAKsDcNdQA+NY74iAFwhus4C9KdW4GFVLT3BEBEtgxLOfKTpY+wtLqgG8vnnBrY157Kgt1geaeJxcbA9tR/JLrYhalftRnwMfPWfn1WnMNmQ2f9Gq+8b4M1Xb6lU1xef8QLD3Xtt0x35Iy1IH4rF0/iFRqXFRSbBlsSVz7kpB+U961FgiWt39+5lKVRI9/ZeTsASzoWsEOs2MYmb8B5pQQqddTu/oNPbWB80oPo0MYi1ymrUNu2M0HG4VzqcQ== 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=1vUqLjDZn5LVggUnTdP6HAHubKURuEj6ekl38g3v1Vk=; b=IiQFKoJT7rSPZ5mLJal2CsyluaK2ARsgaGAvdnI0cq5g01osQjVoKJo5BTYO/nDroGVmXfYmVMEzCAb1OQiCTmhg58UA+gX4lXB9k3CNjD55VWU8SMnjLfQKjZ57zFJf4A8LsHPamNzsy9MK+OO1kYkcak9WfYLP4vBwmkKVaGk= 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, codyprime@gmail.com, armbru@redhat.com, fam@euphon.net, stefanha@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com Subject: [PATCH 1/3] block: consistently use bdrv_is_read_only() Date: Thu, 27 May 2021 00:15:32 +0300 Message-Id: <20210526211534.524597-2-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210526211534.524597-1-vsementsov@virtuozzo.com> References: <20210526211534.524597-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.195] X-ClientProxiedBy: HE1PR0502CA0021.eurprd05.prod.outlook.com (2603:10a6:3:e3::31) 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: 441c0003-3f67-4aec-efa0-08d9208b6fe0 X-MS-TrafficTypeDiagnostic: AM7PR08MB5382: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:60; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0dDeJXZgNqptmVZRhsCvbcZaWfCT3wjdPXPaHIuvCWQpt6fB4bsAc1XJ3LPftYmDX7Y80N6B5XwZre1zzGaRVKzQxDvPbIYwLeOj+HkYLaLEx6EEASBVlEreBA7HpmUZ+GLJJo+aEMEr5wwlA5rZNT+R9IRhcPiFot/p54WyfuNmU7jwWMpnABd19cqggiX8Qh+AGgj4XWpwCLJjE8dGIbhOPEOp9LkZhjhwj+jAOgH9XlatXK1L7Zm8P3IpjXfeFDRCXinlhUmvsx9eKV03doU0ZAAYkOFP+TXSdvmnw+9gCBDuPmnED3J5fbiqLyjnvPTKpHF2zuzatU4FXs/PtEsq/JkRHjQBEzn5mTeeDAS5/X/n4X3l5tVrlD50jnVdtSv+VVGLQlyCbTxNmgQLwegA5F0sIf4aTHAdj9cbDIaHR8n7DdhLvlwr7BzKO4yQEp3SSEYPXQSybCo77pXu6G9BH1ymKYnFFjyM4RsvzsH6/kdBJmjxZ5roiQZzzrEuS5ACQT+pbPNOrF1PbYTxmTJaqiXwPt4ITiODlu5Xl1knZ53Tw1965SrHaFHz8oC3uOy1LG2aDhE8GxXIwQyWkMAKBC08x73+9Aek+iz8lgdAtv6UvUlXBCoxnKTbW1iP+XaaGlYUpT/MCSui+Qg5S9nvu1NymK2LN/CcqifMjTj8Y3Ez4Pt57ZSIpU7tzXif 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)(39830400003)(136003)(366004)(376002)(346002)(396003)(86362001)(2906002)(478600001)(38350700002)(38100700002)(956004)(36756003)(316002)(6666004)(4326008)(5660300002)(66946007)(83380400001)(8936002)(8676002)(6916009)(6512007)(6486002)(26005)(2616005)(52116002)(1076003)(6506007)(66476007)(16526019)(66556008)(186003)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?heGGlsI7oGmP0UiqX4yEgViHTDRmNeg2SzDoIixQDqI7hVlyQZaiXwV/9q26?= =?us-ascii?Q?+HBqTQUFLSSWj0Wv1Oq8XHyknns0eb/61/lKCKh7uH5YvYvFTxQCMYgBAQk7?= =?us-ascii?Q?j8XI7ZFxTIqv7oWCgcnpAPjn9Z3GMK9tzhw+yNCdu+DgN/vAVyzzz1dNndwC?= =?us-ascii?Q?fnFapGiiKSHgE3oRnbQfr0/nImSixGhDJdWJVzpRFUNxKD/RBBBKwB5n0UWF?= =?us-ascii?Q?KG9Bat7Yp1ly47PKyYB14SBo4CQD8Cf6mIR+tqq9uOCOMkfXeyN+5ocTRsSu?= =?us-ascii?Q?TS31Xdy2LKJEdAeSYe9G/dJ+85FGwt9CJ/7ylcZpN+Ym17NWrZS1e27popmb?= =?us-ascii?Q?LmwxjM0RUm1YKu+1fjSdJ7Ok6/Hfu4DjHa4s30K1nKB8wnkjNwLTETNuO0TE?= =?us-ascii?Q?PO1LCwboi8nXxDv7CVbhITSvudWaI0D6SHsVg1qVTlmkijYuweZ9uPXgI2wG?= =?us-ascii?Q?eHg7bCZcw2syEksCbS42b1iF19XdG0dQy1qxeNfP0kahe6oQoNNMrr0pp4QW?= =?us-ascii?Q?F0xTe8wfvlgWT08PRm+8DETHJT3ZcbWUwjqiS6gkofJBllaJCGeH2L6KGBln?= =?us-ascii?Q?ySia+evlSZlLqtssqk1MxaHY0eLKlCg5bWCCRj0FThERnNMErRXxVbyEk8PK?= =?us-ascii?Q?EQcKti0TD448f1EVBUIfPfU/9yj6F7Dk064/noKeAY1Ky2PjE/923WhUmF53?= =?us-ascii?Q?fEvvgMdzrYESU2Zl8CslplO+UZKSj9EuKDEktGVKzRrbVVMArv3pZVshmx67?= =?us-ascii?Q?ipYnstUHk3V/EDBvmfilWC1cX0JMtBARi6f0IzKvm55k1mlrewLu2iU8Vcu9?= =?us-ascii?Q?3+WiHmBc6cJBY2nYLiAPYS9hoqdQOa35g5QtayZF4/2vJQDJrNMYI1G7I4zS?= =?us-ascii?Q?zFoBPYmSqc1NYq8wB8hwob/pj1cDeMICFd7SYGWTAw74KtEIxepXMXl4GORE?= =?us-ascii?Q?04VFz+uzUp1Zna47dFWsmKIlmbZ/ycOl042HR1fNETmpL/hzYHPw5X0ih8wm?= =?us-ascii?Q?0b2SneDuyw1d/kHbkeGWkPGs8ug8uZb3NY724U2epkBN4X61ep+LE2AisqnE?= =?us-ascii?Q?NTQJsUj9ik2VsMLyPILEzDMeL2YHNJTzF7s3DJaHuA+0jmnTeGIpuoDRFYqS?= =?us-ascii?Q?TMIMKURsuFfW4AdURc1EZCRQJGiawG/W2lPm8GhUC7OUNFG4ebehR+GoKt2r?= =?us-ascii?Q?kzw0ZU/aYTtsypIYsvaGMfcBqEutS/PzLx5GNee8zd8SI0ngpnmBWheQzUi1?= =?us-ascii?Q?FJr9CT5vVqDwOcep2BBR61kvE1QsrVk6wVG/bJBH3XzOs5HEgEVQflFOItJf?= =?us-ascii?Q?++4jBcxXKq4FzXiXkCotyYT7?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 441c0003-3f67-4aec-efa0-08d9208b6fe0 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2021 21:15:50.0545 (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: 08UIU/n6+rnV2JCp+kkAO7quF0qpb+YE2m7YvadTrY80nkfpLTkGvalLTkc1A9SU3iNZ31N7phgo9Dby+flnH1P0Z4Pa+jB1Leyk2rglHvI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5382 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=40.107.21.101; envelope-from=vsementsov@virtuozzo.com; helo=EUR05-VI1-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+importer2=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @virtuozzo.com) Content-Type: text/plain; charset="utf-8" It's better to use accessor function instead of bs->read_only directly. In some places use bdrv_is_writable() instead of checking both BDRV_O_RDWR set and BDRV_O_INACTIVE not set. In bdrv_open_common() it's a bit strange to add one more variable, but we are going to drop bs->read_only in the next patch, so new ro local variable substitutes it here. Signed-off-by: Vladimir Sementsov-Ogievskiy --- block.c | 11 +++++++---- block/block-backend.c | 2 +- block/commit.c | 2 +- block/io.c | 4 ++-- block/qapi.c | 2 +- block/qcow2-snapshot.c | 2 +- block/qcow2.c | 4 ++-- block/snapshot.c | 2 +- block/vhdx-log.c | 2 +- 9 files changed, 17 insertions(+), 14 deletions(-) diff --git a/block.c b/block.c index 0dc97281dc..0270b609c4 100644 --- a/block.c +++ b/block.c @@ -1720,6 +1720,7 @@ static int bdrv_open_common(BlockDriverState *bs, Blo= ckBackend *file, QemuOpts *opts; BlockDriver *drv; Error *local_err =3D NULL; + bool ro; =20 assert(bs->file =3D=3D NULL); assert(options !=3D NULL && bs->options !=3D options); @@ -1772,15 +1773,17 @@ static int bdrv_open_common(BlockDriverState *bs, B= lockBackend *file, =20 bs->read_only =3D !(bs->open_flags & BDRV_O_RDWR); =20 - if (use_bdrv_whitelist && !bdrv_is_whitelisted(drv, bs->read_only)) { - if (!bs->read_only && bdrv_is_whitelisted(drv, true)) { + ro =3D bdrv_is_read_only(bs); + + if (use_bdrv_whitelist && !bdrv_is_whitelisted(drv, ro)) { + if (!ro && bdrv_is_whitelisted(drv, true)) { ret =3D bdrv_apply_auto_read_only(bs, NULL, NULL); } else { ret =3D -ENOTSUP; } if (ret < 0) { error_setg(errp, - !bs->read_only && bdrv_is_whitelisted(drv, true) + !ro && bdrv_is_whitelisted(drv, true) ? "Driver '%s' can only be used for read-only devic= es" : "Driver '%s' is not whitelisted", drv->format_name); @@ -1792,7 +1795,7 @@ static int bdrv_open_common(BlockDriverState *bs, Blo= ckBackend *file, assert(qatomic_read(&bs->copy_on_read) =3D=3D 0); =20 if (bs->open_flags & BDRV_O_COPY_ON_READ) { - if (!bs->read_only) { + if (!ro) { bdrv_enable_copy_on_read(bs); } else { error_setg(errp, "Can't use copy-on-read on read-only device"); diff --git a/block/block-backend.c b/block/block-backend.c index de5496af66..21b834e9df 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -2269,7 +2269,7 @@ void blk_update_root_state(BlockBackend *blk) assert(blk->root); =20 blk->root_state.open_flags =3D blk->root->bs->open_flags; - blk->root_state.read_only =3D blk->root->bs->read_only; + blk->root_state.read_only =3D bdrv_is_read_only(blk->root->bs); blk->root_state.detect_zeroes =3D blk->root->bs->detect_zeroes; } =20 diff --git a/block/commit.c b/block/commit.c index b89bb20b75..b7f0c7c061 100644 --- a/block/commit.c +++ b/block/commit.c @@ -453,7 +453,7 @@ int bdrv_commit(BlockDriverState *bs) return -EBUSY; } =20 - ro =3D backing_file_bs->read_only; + ro =3D bdrv_is_read_only(backing_file_bs); =20 if (ro) { if (bdrv_reopen_set_read_only(backing_file_bs, false, NULL)) { diff --git a/block/io.c b/block/io.c index 1e826ba9e8..323854d063 100644 --- a/block/io.c +++ b/block/io.c @@ -1973,7 +1973,7 @@ bdrv_co_write_req_prepare(BdrvChild *child, int64_t o= ffset, int64_t bytes, =20 bdrv_check_request(offset, bytes, &error_abort); =20 - if (bs->read_only) { + if (bdrv_is_read_only(bs)) { return -EPERM; } =20 @@ -3406,7 +3406,7 @@ int coroutine_fn bdrv_co_truncate(BdrvChild *child, i= nt64_t offset, bool exact, if (new_bytes) { bdrv_make_request_serialising(&req, 1); } - if (bs->read_only) { + if (bdrv_is_read_only(bs)) { error_setg(errp, "Image is read-only"); ret =3D -EACCES; goto out; diff --git a/block/qapi.c b/block/qapi.c index 943e7b15ad..dc69341bfe 100644 --- a/block/qapi.c +++ b/block/qapi.c @@ -59,7 +59,7 @@ BlockDeviceInfo *bdrv_block_device_info(BlockBackend *blk, =20 info =3D g_malloc0(sizeof(*info)); info->file =3D g_strdup(bs->filename); - info->ro =3D bs->read_only; + info->ro =3D bdrv_is_read_only(bs); info->drv =3D g_strdup(bs->drv->format_name); info->encrypted =3D bs->encrypted; =20 diff --git a/block/qcow2-snapshot.c b/block/qcow2-snapshot.c index 2e98c7f4b6..71ddb08c21 100644 --- a/block/qcow2-snapshot.c +++ b/block/qcow2-snapshot.c @@ -1026,7 +1026,7 @@ int qcow2_snapshot_load_tmp(BlockDriverState *bs, int new_l1_bytes; int ret; =20 - assert(bs->read_only); + assert(bdrv_is_read_only(bs)); =20 /* Search the snapshot */ snapshot_index =3D find_snapshot_by_id_and_name(bs, snapshot_id, name); diff --git a/block/qcow2.c b/block/qcow2.c index 39b91ef940..d39d9f4e9b 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -1724,7 +1724,7 @@ static int coroutine_fn qcow2_do_open(BlockDriverStat= e *bs, QDict *options, /* Clear unknown autoclear feature bits */ update_header |=3D s->autoclear_features & ~QCOW2_AUTOCLEAR_MASK; update_header =3D - update_header && !bs->read_only && !(flags & BDRV_O_INACTIVE); + update_header && bdrv_is_writable(bs); if (update_header) { s->autoclear_features &=3D QCOW2_AUTOCLEAR_MASK; } @@ -1811,7 +1811,7 @@ static int coroutine_fn qcow2_do_open(BlockDriverStat= e *bs, QDict *options, bs->supported_truncate_flags =3D BDRV_REQ_ZERO_WRITE; =20 /* Repair image if dirty */ - if (!(flags & (BDRV_O_CHECK | BDRV_O_INACTIVE)) && !bs->read_only && + if (!(flags & BDRV_O_CHECK) && bdrv_is_writable(bs) && (s->incompatible_features & QCOW2_INCOMPAT_DIRTY)) { BdrvCheckResult result =3D {0}; =20 diff --git a/block/snapshot.c b/block/snapshot.c index e8ae9a28c1..6702c75e42 100644 --- a/block/snapshot.c +++ b/block/snapshot.c @@ -415,7 +415,7 @@ int bdrv_snapshot_load_tmp(BlockDriverState *bs, error_setg(errp, "snapshot_id and name are both NULL"); return -EINVAL; } - if (!bs->read_only) { + if (!bdrv_is_read_only(bs)) { error_setg(errp, "Device is not readonly"); return -EINVAL; } diff --git a/block/vhdx-log.c b/block/vhdx-log.c index 404fb5f3cb..7672161d95 100644 --- a/block/vhdx-log.c +++ b/block/vhdx-log.c @@ -801,7 +801,7 @@ int vhdx_parse_log(BlockDriverState *bs, BDRVVHDXState = *s, bool *flushed, } =20 if (logs.valid) { - if (bs->read_only) { + if (bdrv_is_read_only(bs)) { bdrv_refresh_filename(bs); ret =3D -EPERM; error_setg(errp, --=20 2.29.2 From nobody Mon May 6 07:08:34 2024 Delivered-To: importer2@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+importer2=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=1622064201; cv=pass; d=zohomail.com; s=zohoarc; b=m1kSv7fBtvBmJ3hDKVkVWtqpCrP6VSNVBG0yTtGeIN3/96Zq3MWf74+aHEOE5DC5TCL8pReQade2o5fNridZ3jvBYPsdIE+MvGbFSx+xA+SmGSm1HNSGW5TfwnpW4MGqgFegLZEd6LITYSw3wKAgdBnoqb4TAO4k7nBbfuzWPdU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1622064201; 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=aRGPwpJuuMrY7C2mhOvOGXuHunyhZk/yXi1/6Ynf4JA=; b=AD8JuVaEz6Ji0rQvAXnhbunOMXR6fjQd2YvJ/aM215+wxW3QZ1vMdpecW3dpUnAZdhUkw/M0zfqm8E4xvoSwjnLsNIGibroFlysfUGESJD9m302r6SVoXIx+Hf/JdGaGAPyIWe6vDMGnUy6DRry45qRZQfmtLkSjBgXQ4IL915s= 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+importer2=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 1622064201143101.30086658832897; Wed, 26 May 2021 14:23:21 -0700 (PDT) Received: from localhost ([::1]:46290 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lm0zo-00066k-3g for importer2@patchew.org; Wed, 26 May 2021 17:23:20 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37254) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lm0sv-0007QV-Ir; Wed, 26 May 2021 17:16:14 -0400 Received: from mail-vi1eur05on2101.outbound.protection.outlook.com ([40.107.21.101]:2688 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 1lm0sp-0006kU-QC; Wed, 26 May 2021 17:16:13 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM7PR08MB5382.eurprd08.prod.outlook.com (2603:10a6:20b:108::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.27; Wed, 26 May 2021 21:15:51 +0000 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133]) by AM7PR08MB5494.eurprd08.prod.outlook.com ([fe80::b403:c1a9:6bb7:133%8]) with mapi id 15.20.4150.027; Wed, 26 May 2021 21:15:51 +0000 Received: from localhost.localdomain (185.215.60.195) by HE1PR0502CA0021.eurprd05.prod.outlook.com (2603:10a6:3:e3::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Wed, 26 May 2021 21:15:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WUZJfBQnP9k/A5yWiAlUHseSsd+oZQJQ1muPQQwrNa8BBkyJvpiwko5GWnxI3BDsHLkHVvyWtVFo/y4e3jslSj0fTHN8JeEFfw6xHS7YbSyTwMASCSZ27yivY/MXfNkqP/fJ4+W9iwQHl9t+hA0WKOHYFKEKFNPtWzP53pLI+qJ4vBxb6vAJZbVQhxlfzRK4Nc66rrXD4f7LmdGLMxLCeM2YpnFMSi8DrbVwiRRaiFdWmBfFf9MtgdOGxXla9TjdQc3JSMx4z3BC4tWFmrq381bJkONd1wGnyQpySBwLDjTmAUnYu2ykZuGUgaJ1HAXlfy7gNv/p0QB/M5hNNlkpbw== 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=aRGPwpJuuMrY7C2mhOvOGXuHunyhZk/yXi1/6Ynf4JA=; b=Y0HfpaRfzLGMgXHtBuyVNBUnSIDoxlWOnMBAqT5tGaF7Bf3Q298QCAj1e+QjeMYABijp4HtdS0f9T0uLwsSqjJDYTuI9n/qJKB8mYw/a1LEkB5WNPv4XkA6yJWUzd7ItuED5WQDO9fSfwZXzae+SeTsNXK2w6FSQOzwAVs7lgX6nbszcLiY0X2kJlUntNZvsHg/SG64jl+/yr6Xnk4qrv8ZzrN6TyMECRkBegc4ogGpmOe0sqo3y8i4zNQ81lOpwA/8DSUZJzx25LvmCs39ANp7yUQ1thnBVAOiDZ9L9b5O+yfNXnhm9v/d+KskpNG9JYwGJLXHNZ4kl7yaZR25U0Q== 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=aRGPwpJuuMrY7C2mhOvOGXuHunyhZk/yXi1/6Ynf4JA=; b=bHVpRFr5A+KtUckXLnCq+NqWgisx53M552QMtKQbvkDHsIvFCGvxqWIadCAyjTduBiW3wTKQpcblgnjchxdKlZOujfXkqoKwhP4w+66IGOjb5z3fTJCKgZppeDIMRWS6raGh3axS0gmSUoIfzFTFyWhSjGTW6dTmUNvcAFq4GeU= 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, codyprime@gmail.com, armbru@redhat.com, fam@euphon.net, stefanha@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com Subject: [PATCH 2/3] block: drop BlockDriverState::read_only Date: Thu, 27 May 2021 00:15:33 +0300 Message-Id: <20210526211534.524597-3-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210526211534.524597-1-vsementsov@virtuozzo.com> References: <20210526211534.524597-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.195] X-ClientProxiedBy: HE1PR0502CA0021.eurprd05.prod.outlook.com (2603:10a6:3:e3::31) 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: 0d19c4c3-a1e2-48d4-245a-08d9208b709f X-MS-TrafficTypeDiagnostic: AM7PR08MB5382: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:208; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9woX/k+VKfKRlGCwr3Jvxbc3Y9EKvYj+6HTmGwIMc6RKJul+UwNBxLK2yR3DReQea/aCPlJt0uFGOTvH8C7IVpuCySTIvSvwisyhQS3lZYmq/G4dwvnyglJG3apQ7ECFau8rSpJus4ummVnussYw/KrCUmjKuh4lpftg+m/K4DWpzj9m6QqRjxabtMz981bbrGNSynnc++GsvhemIdvzDhtO/UL7dVfxwm2aR/Uie7GokmK64BuL5LWRo9t4TaDWZOFolhA0cd4lV4bfV+cIO7wSGTcvz6jbjr7zSxc6/Uegfs5M4I1jKVGi12PbmgZ/YUyBWxW9RduG7NWRLC/IBozhzZUv2ySoWXPxZ3X2FOZwf5h4dlW0fzGHj+e0DATMCIggwe1QdzGvRa7en7wqL+qqWKit7NuuXLEae5Z9HUlqZogqfkAqD1497xsl1KWSPnRiQihLu7uh+a7kp0uK6K0ko5AA4l0YUMTrORKz9R4O9UImRQvohKwIItKDaa8Ojp3Or5XWcAffcWcLPsQhiMgfHT5yGeQwwSYunCR475ro3W66moGE7T/XaGo5+ybAp/LL8B12hnK1g3M+oYrUqTDJgM8Lnwl6lbTN9alXbyO25OCpYUpsxC9RBZ+BoSYUPNJJb0pMaOTeir4stE6hpIbn8ELXs9IZEDxfkB3iNex7UKA2WEWxxAn/bwGbShJA 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)(39830400003)(136003)(366004)(376002)(346002)(396003)(86362001)(2906002)(478600001)(38350700002)(38100700002)(956004)(36756003)(316002)(6666004)(4326008)(5660300002)(66946007)(83380400001)(8936002)(8676002)(6916009)(6512007)(6486002)(26005)(2616005)(52116002)(1076003)(6506007)(66476007)(16526019)(66556008)(186003)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?2DSpKsBuKKcx1ci6FEwzkQYEyqhnsv9rHnbuz8HRVoYeHMi5jq+XAddWVWqD?= =?us-ascii?Q?7U1FdTjjNKcsJ1p5vinFlTaRyKuZeysrUws5e/Jd0xjUl5VwifEGVR6e0gCH?= =?us-ascii?Q?sMIuF3C2bOItBfv6BP5g6cDT8aheS6HcWNsby4+1Ur4DLTax//8xFV2MfqTg?= =?us-ascii?Q?ByQW4C7mCMOCXOqDyDQEhtYattJvnfPTB573wLLNfYFWZt8IbF6XSeQ9jBxl?= =?us-ascii?Q?Z6q97KOvDwB3//ZxibBvH58jDoJwbF0Q8TmYRx3S6ksKOyDnXtquWcQQLzte?= =?us-ascii?Q?usGlowYS8uhz9oY7EEka0JiOZeBxzca+/BO5pum+jwMoi234a2X2emibjKb6?= =?us-ascii?Q?7Np8Fh0mHJJmzZKN/q3tumtOEV4YQX4Ep1ga7MduEmLWs8DB0IG9uoQbHh4V?= =?us-ascii?Q?MQZtrJMEAi8DbpObzrU/HmGI+eH3JJ6j1l+2CXEau18L8B1e7PfoWlsOge0z?= =?us-ascii?Q?DkEh/CbCQG+Qnz044Gaf5qMCGU2MD84hjIi5FNiejzYoR6uqfF6uv+UNTVeF?= =?us-ascii?Q?TeHRrRSdkDTxHqDq4VlYmGYNTngcs+AT21C3MN5s6vQkDblKpNXNtCaysyd+?= =?us-ascii?Q?DDVoPMo/Wh3a2qelfxmbrwCbN5XxhDIpY9FZHW/klURNFGJs9nNz5R79eN/d?= =?us-ascii?Q?EiPBiD6N91rK/WBgfPHdEAVwhZnN98+6KlMrL9MlnTiKOcL3U9Mp1yZ8YSXd?= =?us-ascii?Q?QfbGTtWFAtE2EL6mZsaSZSLseuzxqaxeiTcKJrMAwOhXSIhS/5K/l6YlyDk3?= =?us-ascii?Q?QF/bpFrhL+6dVRiz47C00qEP6IeJvT7y5PDACRYyt1KLfRNk/squGy0QAGRr?= =?us-ascii?Q?mR0dVHkbfMtw014/Yi+tC6/gGWJLPFwTQdczJOcqXbp7O8oIFFspsIsRhYF8?= =?us-ascii?Q?54JzCxTEmf5O0cSojQoCz1viUzMfRlHSlt5uWgDTeYWthQ8/SQKQc3AfUh03?= =?us-ascii?Q?8QoOu1J14ZAFxUm1OxAcCOnz6t5C3YkAdUeOpuW1ZihXIAT5WzcUHbk2txvB?= =?us-ascii?Q?AfDBRagGh8xlQ14B9awTVSdBiSPcEU9BRaSshBLfdaWcRc69Tnbwnv2sXTBZ?= =?us-ascii?Q?NupbW43RvSVKwjxI5MIONtb2jS9su6tQjR6/DSUX3paSTBfwma30+XotAKFO?= =?us-ascii?Q?ue3OlkCYXICS7F6g0hCrCUvZqtuEiZ3gZuio0rmLq/1wx6Xe87vZj8EXiV0F?= =?us-ascii?Q?on2U3MgPpGGfl48yHPe7RSMfvSVnMcVTjLGQ4vuwAQ1tHrhvYjYABNpH8cfc?= =?us-ascii?Q?gjGN5s6TLRyLLtuMjKR6UdVyCmlB/ASfyMFFFqO3SIB3262A6MAv7u46QJFN?= =?us-ascii?Q?QDo+xaaty9UXIUOPLST0jpzx?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0d19c4c3-a1e2-48d4-245a-08d9208b709f X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2021 21:15:51.3588 (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: WoU/6fnWpMtppMXtiAJ2zxWUWz9mUCcZsyUhtdWm8GO8t751nHYN6xpGyoV3Ym0TUp3aDg5+G8srOwuWfOT2g3XJFyR/RAaN+Kr6SyY2KGk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5382 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=40.107.21.101; envelope-from=vsementsov@virtuozzo.com; helo=EUR05-VI1-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+importer2=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @virtuozzo.com) Content-Type: text/plain; charset="utf-8" This variable is just a cache for !(bs->open_flags & BDRV_O_RDWR), which we have to synchronize everywhere. Let's just drop it and consistently use bdrv_is_read_only(). Signed-off-by: Vladimir Sementsov-Ogievskiy --- include/block/block_int.h | 1 - block.c | 7 +------ tests/unit/test-block-iothread.c | 6 ------ 3 files changed, 1 insertion(+), 13 deletions(-) diff --git a/include/block/block_int.h b/include/block/block_int.h index b2c8b09d0f..09661a134b 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -843,7 +843,6 @@ struct BlockDriverState { * locking needed during I/O... */ int open_flags; /* flags used to open the file, re-used for re-open */ - bool read_only; /* if true, the media is read only */ bool encrypted; /* if true, the media is encrypted */ bool sg; /* if true, the device is a /dev/sg* */ bool probed; /* if true, format was probed rather than specified */ diff --git a/block.c b/block.c index 0270b609c4..d36329e712 100644 --- a/block.c +++ b/block.c @@ -265,7 +265,7 @@ void bdrv_parse_filename_strip_prefix(const char *filen= ame, const char *prefix, * image is inactivated. */ bool bdrv_is_read_only(BlockDriverState *bs) { - return bs->read_only; + return !(bs->open_flags & BDRV_O_RDWR); } =20 int bdrv_can_set_read_only(BlockDriverState *bs, bool read_only, @@ -317,7 +317,6 @@ int bdrv_apply_auto_read_only(BlockDriverState *bs, con= st char *errmsg, goto fail; } =20 - bs->read_only =3D true; bs->open_flags &=3D ~BDRV_O_RDWR; =20 return 0; @@ -1549,7 +1548,6 @@ static int bdrv_open_driver(BlockDriverState *bs, Blo= ckDriver *drv, } =20 bs->drv =3D drv; - bs->read_only =3D !(bs->open_flags & BDRV_O_RDWR); bs->opaque =3D g_malloc0(drv->instance_size); =20 if (drv->bdrv_file_open) { @@ -1771,8 +1769,6 @@ static int bdrv_open_common(BlockDriverState *bs, Blo= ckBackend *file, trace_bdrv_open_common(bs, filename ?: "", bs->open_flags, drv->format_name); =20 - bs->read_only =3D !(bs->open_flags & BDRV_O_RDWR); - ro =3D bdrv_is_read_only(bs); =20 if (use_bdrv_whitelist && !bdrv_is_whitelisted(drv, ro)) { @@ -4548,7 +4544,6 @@ static void bdrv_reopen_commit(BDRVReopenState *reope= n_state) bs->explicit_options =3D reopen_state->explicit_options; bs->options =3D reopen_state->options; bs->open_flags =3D reopen_state->flags; - bs->read_only =3D !(reopen_state->flags & BDRV_O_RDWR); bs->detect_zeroes =3D reopen_state->detect_zeroes; =20 if (reopen_state->replace_backing_bs) { diff --git a/tests/unit/test-block-iothread.c b/tests/unit/test-block-iothr= ead.c index 8cf172cb7a..c39e70b2f5 100644 --- a/tests/unit/test-block-iothread.c +++ b/tests/unit/test-block-iothread.c @@ -194,13 +194,11 @@ static void test_sync_op_truncate(BdrvChild *c) g_assert_cmpint(ret, =3D=3D, -EINVAL); =20 /* Error: Read-only image */ - c->bs->read_only =3D true; c->bs->open_flags &=3D ~BDRV_O_RDWR; =20 ret =3D bdrv_truncate(c, 65536, false, PREALLOC_MODE_OFF, 0, NULL); g_assert_cmpint(ret, =3D=3D, -EACCES); =20 - c->bs->read_only =3D false; c->bs->open_flags |=3D BDRV_O_RDWR; } =20 @@ -236,13 +234,11 @@ static void test_sync_op_flush(BdrvChild *c) g_assert_cmpint(ret, =3D=3D, 0); =20 /* Early success: Read-only image */ - c->bs->read_only =3D true; c->bs->open_flags &=3D ~BDRV_O_RDWR; =20 ret =3D bdrv_flush(c->bs); g_assert_cmpint(ret, =3D=3D, 0); =20 - c->bs->read_only =3D false; c->bs->open_flags |=3D BDRV_O_RDWR; } =20 @@ -256,13 +252,11 @@ static void test_sync_op_blk_flush(BlockBackend *blk) g_assert_cmpint(ret, =3D=3D, 0); =20 /* Early success: Read-only image */ - bs->read_only =3D true; bs->open_flags &=3D ~BDRV_O_RDWR; =20 ret =3D blk_flush(blk); g_assert_cmpint(ret, =3D=3D, 0); =20 - bs->read_only =3D false; bs->open_flags |=3D BDRV_O_RDWR; } =20 --=20 2.29.2 From nobody Mon May 6 07:08:34 2024 Delivered-To: importer2@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+importer2=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=1622064161; cv=pass; d=zohomail.com; s=zohoarc; b=QzhRGWFUNw71IULp4UwT+8Wh+lDcRFKxCbgkTVeeisoJJQSvfI/+56lHAdkyvxqLr6M5ptD+Bh//WBEoNbVnvGyDY+n09xrZZsOUe8E90+QdSxar3xaYvARmIuPIWPR5RsXa9Il3T/VWkXA4a4JbBbDNNvR7/f4fHNhht4xZskw= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1622064161; 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=3i5Gq0Hug8eGIreRsj7c0H83hLpDuzAVfJysubM3cdo=; b=ZzusYQbS6miWVeaopVZD66Rdmp6u9677Ze/xlx7KoGYAxQoEh7WG5ZPbK2SpLXUhPgn/IE+6Jw4MLcqAOoDnsyaVZqy7CK5AhK1vfL2QkIUXR8+2O52bI8W+ZP79ed5M5no5cRvFf51TCamSRjd7iZfYCtqLkq+N3/sA5AaFI40= 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+importer2=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 1622064161837548.6264371196573; Wed, 26 May 2021 14:22:41 -0700 (PDT) Received: from localhost ([::1]:44762 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lm0zA-00050W-Fp for importer2@patchew.org; Wed, 26 May 2021 17:22:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:37272) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lm0sy-0007RA-H1; Wed, 26 May 2021 17:16:16 -0400 Received: from mail-vi1eur05on2101.outbound.protection.outlook.com ([40.107.21.101]:2688 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 1lm0sw-0006kU-9d; Wed, 26 May 2021 17:16:16 -0400 Received: from AM7PR08MB5494.eurprd08.prod.outlook.com (2603:10a6:20b:dc::15) by AM7PR08MB5382.eurprd08.prod.outlook.com (2603:10a6:20b:108::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4150.27; Wed, 26 May 2021 21:15: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%8]) with mapi id 15.20.4150.027; Wed, 26 May 2021 21:15:52 +0000 Received: from localhost.localdomain (185.215.60.195) by HE1PR0502CA0021.eurprd05.prod.outlook.com (2603:10a6:3:e3::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Wed, 26 May 2021 21:15:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K6hy3d6VtgojKcd5xvYxUKFLesKUggHV27ImLFYggNzAkDzpd99WXVYA+/OPfU8v/yWeol8ebGcgMRNTwW4l0rANle0kSjXWowJVG2+JUoxg2TNE/RvgSCv3A1fdmf6E4FlI11UKRQ3zQRDI74S8PFkamx4j4MmBTk4kP7KvL+ysLpgKYKbdE5V2VwDtICZt1ZS134BZ2ZqRsJSu6mcv/q3snDpAjKDzi58tgH8rwNmJrT+My0mtAkrhVwtpIpSyG5qwhoXbG9Cle3XXp0CKj8SakH7v9cLTZs5FA9Nn9Dt6jG45mVi8odu7NHphecO/T9fT5Walxefyg+4UrJcaSQ== 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=3i5Gq0Hug8eGIreRsj7c0H83hLpDuzAVfJysubM3cdo=; b=c8Kz/5e2tsy90N+iZTAg76mMsktc79CVyBMeJdIGu0n9Rj/1KT8620qdMyKBK7Uof+dRff2uG7D4cYoyWf/N5ZWH87WjnhJRJUwziSNpW8cvX4WqH99r9B9JdCzBqnpBimhFz07rtriRSdyH88QKVNpRTjK1fAqQjzxW0DJcZoxiuwWD6qGU89jeFWnTE5jQSXLs07hdiSo0v8hUiRVLjjDduqsBPY8gnsJxwveH1kv/sNuqXwnwZmevAU3lQipQRr5GKUq9jfUI9rCdMSVBy5JclxEPuxaCigYRJVvwDSJq46XX/lpgOL6yN7ZjmK48jExza/Gf2Dfdov2//0e3MA== 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=3i5Gq0Hug8eGIreRsj7c0H83hLpDuzAVfJysubM3cdo=; b=Fho5gIInOj+AZ+88tM4cc3utN8lSlRo/lmB3hAXv1zPpGV9mn8CREVjvESEkbEGDB20U6MR9bw8KlCCTi7OocP6/jaRJz726be8RQNhQZKz+QhGEzduH1dqysrhxkR7TBnRWN5h4KuWnolYN+KK/gvKbQ6ELDVpqju2Tgh09bRE= 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, codyprime@gmail.com, armbru@redhat.com, fam@euphon.net, stefanha@redhat.com, vsementsov@virtuozzo.com, jsnow@redhat.com, mreitz@redhat.com, kwolf@redhat.com Subject: [PATCH 3/3] block: drop BlockBackendRootState::read_only Date: Thu, 27 May 2021 00:15:34 +0300 Message-Id: <20210526211534.524597-4-vsementsov@virtuozzo.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210526211534.524597-1-vsementsov@virtuozzo.com> References: <20210526211534.524597-1-vsementsov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-Originating-IP: [185.215.60.195] X-ClientProxiedBy: HE1PR0502CA0021.eurprd05.prod.outlook.com (2603:10a6:3:e3::31) 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: cc61b509-b34f-4783-3907-08d9208b7167 X-MS-TrafficTypeDiagnostic: AM7PR08MB5382: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2733; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: D9+lJ4RT2NIfWllJ6ET2Jv5zJKLnkJUQ5GvXuhQT7xOA215p+URKleAmeJ6SXhCCEHLsygwFgqnY5aP7lzdUgAk5joFNbsu1dINyQALqBRQ/KCf1z2cdV1bZG8AWrjfw31uba+WtUXOwoHe6rmB/rBW1bsCI96FGMqFK+ugWQs1JTu8Zrrq4u4cNS3zyq77xe9sYsdH9/jSQ4QoS3TyUiZhmdrZ/yhvg6isRDot5dC675Etcwsqd1SPu2Hao2l4GucCe6f2sRj/tEtksWG4VrF7Hm7srWO4N8J7GD3PIKPY+33sxqD72K75LuDCpiOB8U7/Tas/M9RaDi/IbsR/zQCTaQrvmxXOhWXMeQsinhFuRG9XIjv97slwCq6WhXXBFbzxcstda2qZFGIckbRXHJmaNidXGZNOtRQ17rStKVpu8ZTu1Xu/QfAzdvCAKlw/Coj4+34YRFuHTXkhH5+HXiVe3DcuKIBIY5p7kvE2avQ3R/ZcZ16C+1CHTXgWR2y7rpo72OFBzQZ29u7ZQeQPrZWmL1Qw2pBRAlm5LHcmkA71vGDQk6BCQlpVA8IbscczVS0Zz87EEYvG3ZyIVxm9o/5ramW0BxY9kEfvWN5IknHbXYHb0OSBxJJ5pdh9o8YF1qxdfPoffgtnqhs/YL721ugerO3709NGwwJat5YaO5UKTxyZP4fLUQ0MJ/5ZtFBd9 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)(39830400003)(136003)(366004)(376002)(346002)(396003)(86362001)(2906002)(478600001)(38350700002)(38100700002)(956004)(36756003)(316002)(6666004)(4326008)(5660300002)(66946007)(83380400001)(8936002)(8676002)(6916009)(6512007)(6486002)(26005)(2616005)(52116002)(1076003)(6506007)(66476007)(16526019)(66556008)(186003)(69590400013); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?us-ascii?Q?2tDLXlXJeSATtwcDFGZ7OF4R8MwjMp9ZfmjmlRk55tQshhg9Zq8+7fIALS/u?= =?us-ascii?Q?GwVRyEpgLaJ9++OmB0uUq1sS236/HNI1Xt5/UYbSggnlyJJPy58d8lWY2pik?= =?us-ascii?Q?aTeS1I9I/EoA+AE04WO/6kV0RazfXHhL6XSwwyhqyGTBf11HTH+GjdzefcQp?= =?us-ascii?Q?fTovA9U02ZOFFNOEUK9L1nX7QFVlkjtX4/GazNMgGnCY5ioJdj3IfZHlN79U?= =?us-ascii?Q?Rret7wqMh49AeYY5M03slBJriR4SCGWu1ivcU+Oj67eGbnNRDyHW2ObG3M3c?= =?us-ascii?Q?GsfmntvfYEX6pAXGncj5gIcTzUr6iASb8ST4s7pRpc+FlTLtmA5F5NIUb2Kt?= =?us-ascii?Q?nV+kWbPUeE89vpiICMaB1UsfTNwneh25ydu3ER9oZgvAll9f/MIxXcUNhGvw?= =?us-ascii?Q?QWgdnQyy1MvIrbivwZzdDYwIyAX4n+PzYzCtPZan0PCQDJq/x8FGmMO3Yqxe?= =?us-ascii?Q?6WEsqfLolfeq8rCfs4Add3orLK4v9t7soAPBKh/8qfUE0CgsiOgvHEzxFzbm?= =?us-ascii?Q?LISdQZl7/NE4IG3Qd+PWH2LUGJlEF8hlT41rQUf6dczfqFxz47D/hEj4CbEF?= =?us-ascii?Q?9RoK3ERoIjgZoThoNtUT73hy7EOEmxFGILtvNvozbPgHxLC/WQDl0XEY1rce?= =?us-ascii?Q?k59FvEGs1+8X5yF/kejKnEUClPU7N2qIV7zhYGwD6dP56ldKagMNZCcYeXic?= =?us-ascii?Q?9aBqr9I6WSD1cq5AeWDk9Eu57FOlCbmsgE++CeEjMeZG2HM65Zs4ZQK2ZIuu?= =?us-ascii?Q?zasdQjM0SgCudqhf6d9sq79o/Ut76wnOS4pXeOjzERyjp+gru2p3pu/he5TW?= =?us-ascii?Q?J/a/ye8jrgfYMBNVHFmOckMGfkFkxRYPEcCTIZkjK5W3/FWsSlJ/wi7WeEt4?= =?us-ascii?Q?dX91EjWD8J8au9v7mpezi9/dLnYMtEo6lmeKVkR0WHyb/0q1j1124jxpW0A+?= =?us-ascii?Q?d30NS7PMpDJUSaFAdFHVVfPXIJFu2bQ48bIVBhNLoOeFKmUt3pckZSdSSdYi?= =?us-ascii?Q?OQXaFcruQJtKW37dJ5WyRWgeQtqUERKe/TC3NYQ4wpnKQ9NCWLHFXsWESQMM?= =?us-ascii?Q?pdMhPxpa45uoV2n2M5D/J60HOssuEP8RKQ4T4YXW+uIE+V1YDR15ofbibaDc?= =?us-ascii?Q?y3gBwUOStqILqtLrm6fd4JOGcUS2np2uXuyhURcuYruyvPeM9MWX/Kd/func?= =?us-ascii?Q?ceeZWedUJM2NlTfqN1l6zSmqlpWIixjBGKAVU2Ukz8MsGXRID0ItQZavhOBJ?= =?us-ascii?Q?FpvTy1GE17R4QXXAK6EGrxttv/Mzsm9eLECsT6nAV+qYF4EkkOot110Plram?= =?us-ascii?Q?g5EantIeqj2yfEW/0MeW0RHn?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: cc61b509-b34f-4783-3907-08d9208b7167 X-MS-Exchange-CrossTenant-AuthSource: AM7PR08MB5494.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 May 2021 21:15:52.8592 (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: 4C8OgdY1X50Xrrl0FadPKeLuQT0+m7X7tcNZDCSLE6iDx7QorhpCuSLCaDrG4ojpGmGgG2JKHFG7kJcKeAUnIwLGEkANkYos9bU9KI60HR0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM7PR08MB5382 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+importer2=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=40.107.21.101; envelope-from=vsementsov@virtuozzo.com; helo=EUR05-VI1-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+importer2=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @virtuozzo.com) Content-Type: text/plain; charset="utf-8" Instead of keeping additional boolean field, let's store the information in BDRV_O_RDWR bit of BlockBackendRootState::open_flags. Signed-off-by: Vladimir Sementsov-Ogievskiy --- include/block/block_int.h | 1 - block/block-backend.c | 10 ++-------- blockdev.c | 4 +++- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/include/block/block_int.h b/include/block/block_int.h index 09661a134b..057d88b1fc 100644 --- a/include/block/block_int.h +++ b/include/block/block_int.h @@ -1007,7 +1007,6 @@ struct BlockDriverState { =20 struct BlockBackendRootState { int open_flags; - bool read_only; BlockdevDetectZeroesOptions detect_zeroes; }; =20 diff --git a/block/block-backend.c b/block/block-backend.c index 21b834e9df..d1a33a2c8e 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -1852,7 +1852,7 @@ bool blk_supports_write_perm(BlockBackend *blk) if (bs) { return !bdrv_is_read_only(bs); } else { - return !blk->root_state.read_only; + return blk->root_state.open_flags & BDRV_O_RDWR; } } =20 @@ -2269,7 +2269,6 @@ void blk_update_root_state(BlockBackend *blk) assert(blk->root); =20 blk->root_state.open_flags =3D blk->root->bs->open_flags; - blk->root_state.read_only =3D bdrv_is_read_only(blk->root->bs); blk->root_state.detect_zeroes =3D blk->root->bs->detect_zeroes; } =20 @@ -2288,12 +2287,7 @@ bool blk_get_detect_zeroes_from_root_state(BlockBack= end *blk) */ int blk_get_open_flags_from_root_state(BlockBackend *blk) { - int bs_flags; - - bs_flags =3D blk->root_state.read_only ? 0 : BDRV_O_RDWR; - bs_flags |=3D blk->root_state.open_flags & ~BDRV_O_RDWR; - - return bs_flags; + return blk->root_state.open_flags; } =20 BlockBackendRootState *blk_get_root_state(BlockBackend *blk) diff --git a/blockdev.c b/blockdev.c index 834c2304a1..c36884c691 100644 --- a/blockdev.c +++ b/blockdev.c @@ -576,6 +576,9 @@ static BlockBackend *blockdev_init(const char *file, QD= ict *bs_opts, } =20 read_only =3D qemu_opt_get_bool(opts, BDRV_OPT_READ_ONLY, false); + if (!read_only) { + bdrv_flags |=3D BDRV_O_RDWR; + } =20 /* init */ if ((!file || !*file) && !qdict_size(bs_opts)) { @@ -584,7 +587,6 @@ static BlockBackend *blockdev_init(const char *file, QD= ict *bs_opts, blk =3D blk_new(qemu_get_aio_context(), 0, BLK_PERM_ALL); blk_rs =3D blk_get_root_state(blk); blk_rs->open_flags =3D bdrv_flags; - blk_rs->read_only =3D read_only; blk_rs->detect_zeroes =3D detect_zeroes; =20 qobject_unref(bs_opts); --=20 2.29.2