From nobody Thu May 16 11:21:42 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; dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1689677187; cv=none; d=zohomail.com; s=zohoarc; b=LC8CsskTzyEumb3XpYeygT2JbGZETglbf8F8VFiPhhBjJjs3+IxVDRs165bwm1QDS0uITtHSHGtH/6z6NkjkHheehNZldM6Zate6GCXZjAlHKNNuBqV/jrZeZ7gyhc9Uyq0/sIyw503uAbjHID5I4nCRr3fk38JgdQ1GNwAB2Eg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1689677187; 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=Omio7khsQfaVO42vuev55B+XfAfSpsQYbNkUeuTdOg8=; b=ivjaDcN1CB8j/NIrD9S7yO0WLIMxAvyICRQBPpPPg9LKtAVAbZHEgib3Ctj5JmokPWwSmZlpin1rrmB/oGZw4jOikgmgrh7v0kHFw8QSv4HXqEJvFx8mYhtAxR11cCIf2ElHk0feybggkhoJxTuZwmv7YmFJZumD6kMpggapy+4= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 168967718692147.43347821579198; Tue, 18 Jul 2023 03:46:26 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLiCK-00021E-05; Tue, 18 Jul 2023 06:44:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLiCI-0001zb-0J; Tue, 18 Jul 2023 06:44:50 -0400 Received: from mail-db3eur04on0703.outbound.protection.outlook.com ([2a01:111:f400:fe0c::703] helo=EUR04-DB3-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 1qLiCG-0001xm-Ej; Tue, 18 Jul 2023 06:44:49 -0400 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) by PAWPR08MB9784.eurprd08.prod.outlook.com (2603:10a6:102:2ea::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.32; Tue, 18 Jul 2023 10:44:40 +0000 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f]) by AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f%3]) with mapi id 15.20.6588.031; Tue, 18 Jul 2023 10:44:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iYH4WgUVA6Mf9xIz0/uzwmY70u0iYtHnF2P4+VeYlZC3xMDVRJMqkp73cuYh90+XrWy2Xro07MC2bIYLgxcSkdx/56XzQNBdEzcLZXTQnSSOJQwCnRlxE6OHd6LXyxasOu+t1rBR21iXIZOSopWkjXhj2Vw7dekSSF/PDCCNBbUUigojmZAt0JlfS12ge20CiEXi0zoyzQ1/+22FDBXTh3CXdk9pv5+y+UzXCtCXYnTac/iKr6jpwjE2Fw81wPD6LWVDnQDGhgwGCAn46aZV9O876BQOZ5QNrV76n5BPNx+QR+h3KmPMo4t79sqkQsrPdCudgxtcTrLWz+mx6eDHMw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Omio7khsQfaVO42vuev55B+XfAfSpsQYbNkUeuTdOg8=; b=JKW59SmOCFoC5mbzILhdMafxApK0nvnEhPVbPqnhMluoT98w1H4tZvb4nwHK2nCz/6pGboQOYHVNRcoGfVMcC4ThDiFeyJyK4MvYpK5MZLeJzW+O+l0YTVslRb/Zgf7lqHQcqhbysklI1dYwW7Adi6dbNL+GPGZr5D64u2/ZQPNV7sLJN+pO9svsm7bxxiu9dfrSu50X8BJkGslxUMEfjSzabXBP8V8m6na3Jz++sDJVe9E2vEW2U5IW/ik4mdTvDgFk3qlLn4UktvugoLNbjilIbM/1NhUim+6J3wFC55XjHNl19SrP6rnbjzh/wc9G65Y+obEIYYmJkV5u/glncg== 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=Omio7khsQfaVO42vuev55B+XfAfSpsQYbNkUeuTdOg8=; b=GoUrcyrkGL0mGh8ToS6a9rGKLXuvGxX3xF+odIBEhqOXEgoBLaSLiq+S9qw4P5hyco6HAj05khhHHt86sXIueVpRjuoBYwFGCJKd+japt/v6N5SDb6quKj/2f/Kx36CQy5rHhtF06ncEUe303GJjaLPvFHpKA7fTX9yJ7G0JfiySOAwrYVuLFIqDDgW9k0s6e9rT9tjhf8//13mtGEkf9s+ytisGuOC0PM5P3FSgEtdgia0CzAdUpMIXSgJ6DrNhqgEGE3PubzwLNmENjeagmeV/rQUK7d/Xya9Kw/OLX0b6s40Q9s4rM5KN8XcpZjKgxsQjvXFp/o9mO/IEO78+bQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Alexander Ivanov To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, den@virtuozzo.com, stefanha@redhat.com, vsementsov@yandex-team.ru, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v8 01/10] parallels: Fix comments formatting inside parallels driver Date: Tue, 18 Jul 2023 12:44:23 +0200 Message-Id: <20230718104432.1130469-2-alexander.ivanov@virtuozzo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> References: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1PR0202CA0001.eurprd02.prod.outlook.com (2603:10a6:803:14::14) To AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR08MB7095:EE_|PAWPR08MB9784:EE_ X-MS-Office365-Filtering-Correlation-Id: d895f593-8ff9-4671-2224-08db877bfcf5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Z2pTxughYmgCy7OYxa6CPQU+KrkHmwY9rl+bQLmwejHkV5+Yp9UyWrFhBfX/BvmPOoFvQ/P7v8VoMlFuKNItID+ewAZG4TBRnOtVK5vw0Opk2roPLUjjOh+8uTu6vAJmuKCN7FNHdeM0hG7rtEV8W6R4Z9qa0Qp71OLQ/Ak4n+FHzJEmTlq9IV28RErQlWa2NMSRGZ0vppk8k3jMfmuwp12VAsoC/7CAsX/1lS/IDTFok+fIZ7vD/ycvuZj9JXEKN0xkybLVNbJiBmRsUHdUi7VzzpA6e+PxQbec9JgfIdmQcs5RCPho+sNhbLA9tHuvHSQ8OwSSnjhvVNET051L1/bSvkkMsjYEQfN0VA8BriHmFYhdJwhrj5mx70ZiExu1IjCvcQJAFi6zfXaVTjC9izps9CdAdMn70vk67yIJhOF3zz6euweivEz/iVIMaglLNzfdbtK0ZsVvrXPmfKt44+kzUaG29yjtKCNIKOxTwWqFVXAo44gBzboCz7eFNmILM/DWi/I7cXtHPtm9+HK0YKmDUZYe1GKCMFCCgO9j/i1W7VPcC3wJAj4m6rQC6qb/57sWM0akCqhMuQ6MZGAssUndB0Crdw4763fEOdTrc0FE2E1Q2wOsBQ2UhLWnCPh1 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7095.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(396003)(39850400004)(136003)(346002)(376002)(366004)(451199021)(478600001)(52116002)(6486002)(6666004)(1076003)(83380400001)(2616005)(36756003)(86362001)(2906002)(44832011)(186003)(26005)(6506007)(6512007)(38350700002)(38100700002)(66476007)(4326008)(66946007)(316002)(66556008)(6916009)(41300700001)(5660300002)(8676002)(8936002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?yRHfSMAp2WhOw28N4Stbc3ecdlUZjKlqhRomYEnfJnaNG7EBkAvNyxGJEM1k?= =?us-ascii?Q?zSBNGh/NBLC/va7ap9Xe2NV87YA9DyqVYQzPXvFSh8YBNZVA5/HP5sTLm+Di?= =?us-ascii?Q?/hH8nFQeLnOGyrKC1lmU5bamiIFBRNPiXfK2RKIg+kvjO5hdnYRWhCJ8TLQL?= =?us-ascii?Q?j558gmr4C7xYprhFPzCwfNv7P1ttvtThmOa4oIFs0zgYSRFkOMR5rtqmW6vg?= =?us-ascii?Q?g65AMNGzs3geu9WjAzJGhLqgfwwQE+pjF6l13h1Z9WfjqeZC2E21O8qimXra?= =?us-ascii?Q?3ZGlN3xpf+9xIEw4MKlUEvQl46HhIrnvs01djOiGhzcos9/f3MiNURAMnU8b?= =?us-ascii?Q?nnEi2AXQWrruiOP4SBZ2RReIK9jE1kk5dDe/MRagZoJoUoYVJkRck1D9+to3?= =?us-ascii?Q?dUVvDxA+H5rWEqZ1clHarzViu2eP2q2Xy1x+Rb92MoKDl+WvT6FmOvAVwJlU?= =?us-ascii?Q?ef8n0ZEA35JTrbtvRjKwUmxMs7a3A5j//vQyIxnQV9xwEg7Q5dSaHaNd7Xxi?= =?us-ascii?Q?P4FuITK3nl5a433szXkofl9N6Xx9RLcHZ8ZokzPWpT2TGIrzaP6Qh0CDd8OM?= =?us-ascii?Q?BYnvOi2pjSUIB+pci6iFpObRI4SvJe4yfMtatxtcAnBvhf/aJPpdrB8vUKba?= =?us-ascii?Q?aW/gSQmlA7dtb3TqHZBg8sRUIFVcVPecDl959YbUF4aw3m8+B2GywQCiNnB9?= =?us-ascii?Q?zn1fjyYj+IDG01zxu3hYQDG2MbUqAYDM9p0jkseofaqk5qTBaVWO7tfuJCYn?= =?us-ascii?Q?zma3n00W+qvv+ENXcgps/D8+XoXtUbFDjvVifno57uwYqDamjCcC5coJda95?= =?us-ascii?Q?GQbh5xosDukNTyy7mVjcZWJht8q7IV26ExkWts9Vi/lev1W+hYH676JBN4i+?= =?us-ascii?Q?wCcSPgXArkrZ0g0Xj3ETRUwmoLoUgN2HhiYQk2lB0dWwi7sdoHs/VV5aAPrh?= =?us-ascii?Q?QWmGAMKZKRrb4qvPYvsgu7o4I6vD2yEGTPsHkLjJURC0PmC/2QJsGmGVB6l+?= =?us-ascii?Q?OtwwawsyITAWd9sa/HvG3s6TO8i6nAd9xkELokVPYXgLECdnEoeM3ffVai8H?= =?us-ascii?Q?5gNSJQBS6DJWew9fTuFtC46a8nRK4UEeAa2gb/zkYrHNgBktjY3vT1yDJJj2?= =?us-ascii?Q?4p37Cu++rmrwaV3/sqI15dsRedJJcLeBthe0OzMz4joyKh9PR5mNQMk9FdZI?= =?us-ascii?Q?Ur1v0UCukVPqaRj3zHSjH6JHpO9QcjDTeKyhR67MV+1tgapdccwakJLoWA3D?= =?us-ascii?Q?dXfGegXqxwg73b83mLTqr7IUaTntHOcLLRdlXexALFGdh2NaXxS3y3IfEES8?= =?us-ascii?Q?I9PByTCgeZXxOcLIDyAEvkARz2dkqp1L17ji/wYLPCWCkKgiZtyJlXrzV48r?= =?us-ascii?Q?mmBVjNnFPEOJPoChtvD78LSA0hSQrh1JrQw6gMWbTs4fIWDZtHtYt+lrUUid?= =?us-ascii?Q?ZWRW9G0w6nv9RLaHSF6SY/CTPLeL+/3Ulk1RmFbX8rsWJDbGdUgMv00hJCDb?= =?us-ascii?Q?hp2rZqBBzM3utDFJ6WTvcXH1bawyLSn/ELanfwOxMkygbMaTjXESQd98sp8p?= =?us-ascii?Q?losXJMmBX0u2OxL7IqBjy+nyktSHTowWjcV+h0sd+Dhsj6HAIXy+nNawpA7s?= =?us-ascii?Q?93CulE36l3e8IF8JdwMVhWE=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: d895f593-8ff9-4671-2224-08db877bfcf5 X-MS-Exchange-CrossTenant-AuthSource: AS8PR08MB7095.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2023 10:44:39.9091 (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: reprq1rIFO80FdTzIea4XKqxHMnBjy3MJTRuIjog6I8Ajt6mHORx4e7JrhtenPdKGK6j0yqlGjXsErfZzx77DTBjwVVh9FcQqBM98f2Rxe8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9784 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=2a01:111:f400:fe0c::703; envelope-from=alexander.ivanov@virtuozzo.com; helo=EUR04-DB3-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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1689677188772100001 Content-Type: text/plain; charset="utf-8" This patch is technically necessary as git patch rendering could result in moving some code from one place to the another and that hits checkpatch.pl warning. This problem specifically happens within next series. Signed-off-by: Alexander Ivanov Reviewed-by: Denis V. Lunev --- block/parallels.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/block/parallels.c b/block/parallels.c index 18e34aef28..c7b2ed5a54 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -188,7 +188,8 @@ allocate_clusters(BlockDriverState *bs, int64_t sector_= num, idx =3D sector_num / s->tracks; to_allocate =3D DIV_ROUND_UP(sector_num + *pnum, s->tracks) - idx; =20 - /* This function is called only by parallels_co_writev(), which will n= ever + /* + * This function is called only by parallels_co_writev(), which will n= ever * pass a sector_num at or beyond the end of the image (because the bl= ock * layer never passes such a sector_num to that function). Therefore, = idx * is always below s->bat_size. @@ -196,7 +197,8 @@ allocate_clusters(BlockDriverState *bs, int64_t sector_= num, * exceed the image end. Therefore, idx + to_allocate cannot exceed * s->bat_size. * Note that s->bat_size is an unsigned int, therefore idx + to_alloca= te - * will always fit into a uint32_t. */ + * will always fit into a uint32_t. + */ assert(idx < s->bat_size && idx + to_allocate <=3D s->bat_size); =20 space =3D to_allocate * s->tracks; @@ -230,13 +232,15 @@ allocate_clusters(BlockDriverState *bs, int64_t secto= r_num, } } =20 - /* Try to read from backing to fill empty clusters + /* + * Try to read from backing to fill empty clusters * FIXME: 1. previous write_zeroes may be redundant * 2. most of data we read from backing will be rewritten by * parallels_co_writev. On aligned-to-cluster write we do no= t need * this read at all. * 3. it would be good to combine write of data from backing an= d new - * data into one write call */ + * data into one write call. + */ if (bs->backing) { int64_t nb_cow_sectors =3D to_allocate * s->tracks; int64_t nb_cow_bytes =3D nb_cow_sectors << BDRV_SECTOR_BITS; @@ -864,8 +868,10 @@ static int parallels_open(BlockDriverState *bs, QDict = *options, int flags, s->data_end =3D ROUND_UP(bat_entry_off(s->bat_size), BDRV_SECTOR_S= IZE); } if (s->data_end < s->header_size) { - /* there is not enough unused space to fit to block align between = BAT - and actual data. We can't avoid read-modify-write... */ + /* + * There is not enough unused space to fit to block align between = BAT + * and actual data. We can't avoid read-modify-write... + */ s->header_size =3D size; } =20 --=20 2.34.1 From nobody Thu May 16 11:21:42 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; dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1689677259; cv=none; d=zohomail.com; s=zohoarc; b=e0FTC9DAPaPjqwcPrHSi1p8HjJDfIye4kahf3zNNqr8jDQIxlVj6nEursC751+22BL4JNv1a6R2gi6AulRdCNY8y79UIU6aRH4QU/1iTXBM/YvOCD+CSat6G23kdk0gUe/o4wp5GnO8XV2txXyjgsEvu4z9t6EbjtnzoE7IN2Nk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1689677259; 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=G1d178C7HLbrsfWME8Ns1UxvsTeKlDgcAEjIdjdqkwI=; b=jpEXg69/KSIO3YqhVV5kpX3r1FHEOGeldfjcrjddsGTy/UK4C2JQLrObidGWpszaVtc1g9/h7jYxvvr+s2fpdwvqSXjVe1otPlnC2yhGIFKo3LG88WT1oPa4oN2J1S6QTffrZcW1ScQJN2T1awDHCtXKrzmJnyFU4RBHnIy31kU= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1689677259637631.7960278920108; Tue, 18 Jul 2023 03:47:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLiCM-00022U-4N; Tue, 18 Jul 2023 06:44:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLiCK-00021J-3L; Tue, 18 Jul 2023 06:44:52 -0400 Received: from mail-db3eur04on0703.outbound.protection.outlook.com ([2a01:111:f400:fe0c::703] helo=EUR04-DB3-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 1qLiCI-0001xm-JQ; Tue, 18 Jul 2023 06:44:51 -0400 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) by PAWPR08MB9784.eurprd08.prod.outlook.com (2603:10a6:102:2ea::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.32; Tue, 18 Jul 2023 10:44:40 +0000 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f]) by AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f%3]) with mapi id 15.20.6588.031; Tue, 18 Jul 2023 10:44:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CfDq2LD7Za2sJQ9VR3dEIzZEn15xTGG/RFan124LZS2ZYDpD4G1Pf9vK389CEnurHEcT24JJlfKUvN1ZwcXwBkbdHpOIdVy75v3+q2mDedxjrWht3dccQ7SJILj9ZEIedFOripdRASw40hSjsz1AmWge5OEY45G0//VFEgeyRBA7N2uyfw4tS8jb1KUqxeS/g7wR0KCMQODuvdg87i4MABP90I6fu8nC+c00//F+/OZr4nS8Hpry4vYQ8XfQ3HTSTElpR7cDTAdoQtIjjwB3zpwfYDe5id1pPnRQVzb7Kd8XImCvBgYdWXV+oiZYHVZJflf7g/J+YtrJhJ69V79Ovg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=G1d178C7HLbrsfWME8Ns1UxvsTeKlDgcAEjIdjdqkwI=; b=KHYQgD9tzcqJNWfIFw8UcMVrxNnpVLhRi7TsqHOm6ouLI6T8v+U6bPz1mPjBb4KwREx1diLddJsYjcfLi6/ENYah2CkILbHzY+x709fgzvrRp4x6yTRfo2RcBhytG/bPJ7uaX+lBobRSa5e6P/rbk00Sp+SgDZBBvg+gtvYg/Shk2PQGtXi9KVb+94B03WqTmV8JlxvgY+R1+/I7EU8beFGv0GZN/mi98Wzw5qR2K/Mu3PhV73vclkqjrDPObFS1tOxyDJiiQJXfQNdPDpW5OomU4O3F9WrphE/O8mA5zdYTMLvPhOt/haKxA3C2hkUS50WX4faGQpd+tyI5Z1Luiw== 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=G1d178C7HLbrsfWME8Ns1UxvsTeKlDgcAEjIdjdqkwI=; b=OVVIsVhobNkG+dTmLsgPlzBtFpilQSW9GAmyuuqzST7TsM1PNlLffChqGHTEQ6fhd1/+NjK5lnbmF5JS1+1njAM3lu0QgNQLXRIPJuid0NkePI36jFTInfW1olMutroXt/OyGyKkl9jJvvjHlBOEHsbGIcgio4YciBUpjiesqmFAelLtIgabNITYA99NwEywFWGmrGZRoXhYLX/a46k7R+qDEstJ7f/uHot6ONLOJtxGXUIMgUMt9F8TOVEfwtjDwf6PkaCwrtw9nqjFOEM73a8GoOM8yFRLo7I8Xa4Td2I4fCzHFkRd6TrtSJhpOJefFmtyYdApzvCOu9ICdHeoOA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Alexander Ivanov To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, den@virtuozzo.com, stefanha@redhat.com, vsementsov@yandex-team.ru, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v8 02/10] parallels: Incorrect data end calculation in parallels_open() Date: Tue, 18 Jul 2023 12:44:24 +0200 Message-Id: <20230718104432.1130469-3-alexander.ivanov@virtuozzo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> References: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1PR0202CA0001.eurprd02.prod.outlook.com (2603:10a6:803:14::14) To AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR08MB7095:EE_|PAWPR08MB9784:EE_ X-MS-Office365-Filtering-Correlation-Id: a33a0e55-e2c1-4306-54f9-08db877bfd4d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RCJo2Pecj93cPqV8gOskA/C2EyC40lH0GU9Xz8Ltdgl3TM6amVSJvVfo+h0gZwlG4XZuxyQbHQVhAfpSemXpxyAufYF6L5I5IIMdo2dAbOv6ZDG76nqwXmPgXxQ6uEr78oAMf1tV7FRzt7asq4QKydRvkncdiIDXpXiXHhpZpcIAjkarG/bXpMHzXLtgmWTZjCOw+6H9fCgSJUlkilF5MpHHioofhHQEf0p3briXA2YN99GkuNHq53tj9NnxivG5X4nGRugy+tEvCLyS3YI2goxIuig9UBrM7Q2ViBwuTpHLHIygxb912ATUy7w7syrS223BMKhrJdCCe5Q7wLu48/GnXO4T9xTfaQ0cGBRVe0lhv888KIrWMal1neP4Dbgqmv5vDubJC9/5kQ/2Bnhio2Cs4zHI4jz7KySaqRQUHSw2/ZPArf/kedemfscouJmKUsE5NixyjOVrAcIBGvDGoXop089prOashAA4amVaUM8fkl67QBoq22pTWLGKgM1ubMDIL8mGWST58Ckmpa4378ogph/yql74KjT8nJlf8gH07S/wFlEX83p1KsGcTDy2SIDFhEULihBCk1SvClNV3Rkoe5LzyHGC/ZphsgZx1Cl8iSEhBHK0rmGG+xk3p1KQ X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7095.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(396003)(39850400004)(136003)(346002)(376002)(366004)(451199021)(478600001)(52116002)(6486002)(6666004)(1076003)(83380400001)(2616005)(36756003)(86362001)(2906002)(44832011)(186003)(26005)(6506007)(6512007)(38350700002)(38100700002)(66476007)(4326008)(66946007)(316002)(66556008)(6916009)(41300700001)(5660300002)(8676002)(8936002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3JFyBlUHfOVgJGHi13hrCgTFdp9mO9UTnETxFsKoTW6R+UU7BAPESlKrzkEN?= =?us-ascii?Q?7npTU4sqaBZMu+Rgml5fV+BdZbtpbZpYNhYH+PnJ7HosWjbqK6+hnMK7oZFF?= =?us-ascii?Q?tzv4JHVm+4OBSxVvoBTth9Ftj1N2XRU4bfa4M7ChscFY1oY+M1Q78Hr1Hn3p?= =?us-ascii?Q?Gcp00/mgNeI0JCtH+giHwVfmD9o2h2EhzUzCZAHSUJxXOv1mFMNHg7NZ7iOb?= =?us-ascii?Q?pzi98vYGBxcmPQNtzwfjU1X6CaFwgS4l3x29uc9ABSxrHFy+t2t09X3Gef2t?= =?us-ascii?Q?klJ5pOu0AGStnOfaVn6eU8LDnrxzSvtjskWKRqBKAMTuoU9kT6vwV7rz/YTZ?= =?us-ascii?Q?bH9Znmv+fBVGG84hpBlWaAysjboy0Rqar0HxaTGoWv+gNIGfIiM4IF7Pg/Es?= =?us-ascii?Q?/69BZGX/0tr3BcYCbEJTN/WSbJ3ihAn98KwHM+yOcymB/JeW43RGB1+XKDpx?= =?us-ascii?Q?zmwfLCf5qcDfrR8t3ByBSzE1eSTYapbgt8gOoXGSnHZVY4wqi5phRMayM7s1?= =?us-ascii?Q?aEj6FADI042T7cYU5oPTzhB++Lur/WZHsDX6Y5Z47eGX+6UN2Qsnwv4DJyGZ?= =?us-ascii?Q?YiYQAMq5afPmGkWLCieneWAr1jTEUIicUKJlpMfK7rNpIM8fvdLV/O1a++Ae?= =?us-ascii?Q?c9ALtEtMjX4gszId4Ydi9c2jnEMqwGW25dat/rcr4PRezFK38ksFGG7tX9dX?= =?us-ascii?Q?UVJ8IL66jLNnhv0L4jBxbdO4XdxBEok0E6uZLDDSMnxRx4wHaU4vm31vSFjH?= =?us-ascii?Q?lSwybCT9JsT6k8xZ0RLhk/pJnqVLEoaPPG9DLjFKmTjk50QJk9x9JVhHw8qE?= =?us-ascii?Q?/cZtgO7Lef8Jrh5fdxKb3IA5Zf6A/7g+9PVnDzdfYncsT67btl/wmU4hqVhj?= =?us-ascii?Q?4BSU9UFrY9HU0ewxf/pOxgSuc+qRv8K8tZ4RrLzTpKpxSlmQnM/oqDFTMWD2?= =?us-ascii?Q?FToFuc6+CAVtB9CsGjusaBwuipjyALmbJnaT3UqQr6GKtOWQXwfTLDlFifGA?= =?us-ascii?Q?k5CU0h8QH57k8GwPIhGOeyOE+2J14gRD/6dhaCnKFFdRi6x4BuHKqG42crkt?= =?us-ascii?Q?2l/6VhMW8Xki/9W2lk/uQE6MmM88ii0x6k2zAC5t4+uS6d/510smdIH+1jJq?= =?us-ascii?Q?v4w49nebWxIHkJm9F5G+eHBeOM7jaQYebx7/uu50c5de5yUSSubPLO0MXiUq?= =?us-ascii?Q?nS5Svmbbr2uxsCjlsqHGOy0ksI+abGjBNmabjPy3O/E2wL7JufhqyZg3SmTL?= =?us-ascii?Q?+a1grAKUVdI10mENA4JmnaAJtv2MFmJXxlvqbq/Pp1coaSe+Jr9ZYvMgLzMq?= =?us-ascii?Q?MsuQdUY0wL/GiRwgQ8BQVRMrHm7nFMONCoeDMKjhG4CQd+nUqh2J7V9Ihq4U?= =?us-ascii?Q?upRyfBq3DyKOr3gNn4p1B+iK2bx9QYqrJuPMerepk+3ISotBWDiUpkUV6tz7?= =?us-ascii?Q?eY8fFEzXgFumohb2IJ6Ls3OgxTgkIjX9m78eHRuHGQutp4gEW79d6T5pPz/3?= =?us-ascii?Q?7+4t5MZuImy8785T86AySXaO7CH3dC2cCAwCrmYFNDeB+TANAixsrO0/gAnP?= =?us-ascii?Q?nkFgY22pigCVpjHzDFP4jNhn8pczL/GVIviaGu/RoYyWBDaaeiybO7PLRbRB?= =?us-ascii?Q?dMCSJIHnhZuAwKRtW14oIj8=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: a33a0e55-e2c1-4306-54f9-08db877bfd4d X-MS-Exchange-CrossTenant-AuthSource: AS8PR08MB7095.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2023 10:44:40.4459 (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: u1hRW0ad8geWfEmIazpeYzNEC1ueyaIVMmpK4Mr5pgTXBHl92JOVi48WctBCe+GwAJ/bsapL+WctDu0MrEvuFAgAvCXe8At1pHBeBvNzl0Q= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9784 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=2a01:111:f400:fe0c::703; envelope-from=alexander.ivanov@virtuozzo.com; helo=EUR04-DB3-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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1689677261058100005 Content-Type: text/plain; charset="utf-8" The BDRVParallelsState structure contains data_end field that is measured in sectors. In parallels_open() initially this field is set by data_off field from parallels image header. According to the parallels format documentation, data_off field contains an offset, in sectors, from the start of the file to the start of the data area. For "WithoutFreeSpace" images: if data_off is zero, the offset is calculated as the end of the BAT table plus some padding to ensure sector size alignment. The parallels_open() function has code for handling zero value in data_off, but in the result data_end contains the offset in bytes. Replace the alignment to sector size by division by sector size and fix the comparision with s->header_size. Signed-off-by: Alexander Ivanov Reviewed-by: Denis V. Lunev Reviewed-by: Hanna Czenczek --- block/parallels.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block/parallels.c b/block/parallels.c index c7b2ed5a54..3c0dca3dbf 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -865,9 +865,9 @@ static int parallels_open(BlockDriverState *bs, QDict *= options, int flags, } s->data_end =3D le32_to_cpu(ph.data_off); if (s->data_end =3D=3D 0) { - s->data_end =3D ROUND_UP(bat_entry_off(s->bat_size), BDRV_SECTOR_S= IZE); + s->data_end =3D DIV_ROUND_UP(size, BDRV_SECTOR_SIZE); } - if (s->data_end < s->header_size) { + if (s->data_end < (s->header_size >> BDRV_SECTOR_BITS)) { /* * There is not enough unused space to fit to block align between = BAT * and actual data. We can't avoid read-modify-write... --=20 2.34.1 From nobody Thu May 16 11:21:42 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; dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1689677202; cv=none; d=zohomail.com; s=zohoarc; b=OYyBXSttZEtWbyVpNA94VtefrEHoXMxBQ9mKBwBZuhlTO6GCQ6v3Iul7ZwQwh404C4VJ8k7MIvDNjW2Jiau3vqq7c5LZzkXHPLAn1920dML/uNZdiSGlIBcuegMju8nlmxqw3dCDoiStL6cCRL8OYTgK+CtWZrnx474AqC358X0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1689677202; 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=Uo3CppeSMM+1BXWZY6EsFr+tgAetQN5B+M0ldLNK3tA=; b=cFUYIT0RZIw3tPZWaVy4t1n3aXZNH9F9BNcIOn19h6aRGI8/4bmCwt3CwiD50qG4K3qEMuvUB33Y7x0LlNbtkXCqMa1M9QvresyAx7ctMOKEVZU2HEP7VViXVhGKKk4ISxyELsvFJ9r3Uym+MxaUBfYGR6KUf/9ExZJ4/k69+NU= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1689677202715166.54406937976148; Tue, 18 Jul 2023 03:46:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLiCN-00023U-U9; Tue, 18 Jul 2023 06:44:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLiCM-00022V-3R; Tue, 18 Jul 2023 06:44:54 -0400 Received: from mail-db3eur04on0703.outbound.protection.outlook.com ([2a01:111:f400:fe0c::703] helo=EUR04-DB3-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 1qLiCK-0001xm-Mc; Tue, 18 Jul 2023 06:44:53 -0400 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) by PAWPR08MB9784.eurprd08.prod.outlook.com (2603:10a6:102:2ea::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.32; Tue, 18 Jul 2023 10:44:41 +0000 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f]) by AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f%3]) with mapi id 15.20.6588.031; Tue, 18 Jul 2023 10:44:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WE8qeWh/7u0+Z38F9e0oyQJQuB0ryIj7rb/e4OymLQwVI+eMWblcpoMKHSB65vwhdLNYGx6oHhmDpXAkEgDOzvp4DMAoeRH+Zj4RWLB/PlnaIkQjC5fryne6GN724T6Ok2muK37zG16GQEmTPecqe5QnqTtjhZEgtJdvbizhmRnCraNKafwwxYG9O0z0BflL7b8afJsu1s/cokM+3zwYrBBV3hkXYyjs3SeF4YPetFXSpOn/I96GCl87JTOnvFB+QWufBzx6HbInsDlMu/dzJGswz8q9xShNB07rP8TLo5V+Ttpk60z8YdHLz10cZRO/75Jp+HJ8O7WArisrltp2dQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Uo3CppeSMM+1BXWZY6EsFr+tgAetQN5B+M0ldLNK3tA=; b=d/6K30BRE+WNJuY3CW5gPc5o6KPZutZKvTfs7vV6NDVHKmVGSJlqqfafNnI6KQXhb+C6NSjKKrdz3OBq6X6m57p7z1j+wz22+4xsztBvEemm7cW4RNwJCByq5IOIIp6E0I4xVekpGBusAYHEo7JW4uwg0Gl1dxfUq9dJwVTkWj4AHa2nGJlXpLpJJRCHR+BoxAa5jUOFv4MMqdXPi06MNnxlW/YBmruiP29riy3HQk/aR1siwGaEh2lACTgbJ6/+r6d8YvLutFEDs9FtkB2Lain5bjFlekqAbPVw4BYvgmzrzCgZe639IZnBsmL5FlVzU1py4HQR3jBnP238ckXMAQ== 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=Uo3CppeSMM+1BXWZY6EsFr+tgAetQN5B+M0ldLNK3tA=; b=vmFa8FW/i2ZI4KXFhQ61AYMgDhEE+dM6yKzipriqc0av4KjSxyJ+UvI2Qyb7xuIii6GbY0ng2u3E0Z/ZhXGwq+3Nd9urpaQz2/ip3O6bNLNf5CecGxZBjRHKQ6wscqztYPlOx7pKfoUXHjcjXWMsz4GSzQzj4T8BaNqE/ZFq1wROjy/JGTy/gm9chAvfmzkzQNjMWMNheQiyceNKfp/+uKnXwpVXV9b+CDYg9wS1lvnORkqxnXyDUfpvYstm3IIyr42d/1hT/s8Eaae2rNzFHDuMPLZ0HB0X48MjNB98rdoYT9iVuhMdFTTzVB90HkxjprXr8CB/cu+8POZUbulICA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Alexander Ivanov To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, den@virtuozzo.com, stefanha@redhat.com, vsementsov@yandex-team.ru, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v8 03/10] parallels: Check if data_end greater than the file size Date: Tue, 18 Jul 2023 12:44:25 +0200 Message-Id: <20230718104432.1130469-4-alexander.ivanov@virtuozzo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> References: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1PR0202CA0001.eurprd02.prod.outlook.com (2603:10a6:803:14::14) To AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR08MB7095:EE_|PAWPR08MB9784:EE_ X-MS-Office365-Filtering-Correlation-Id: 8d960b0a-f03e-49a8-6134-08db877bfd9e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: McXvrakob9VBVm/deXBrQnueTAS7bYNWi694IV6fDUhYmC92R54KQsDrnPNCMBz+N9Z+edb4XRRe8aD3T9ADHGXoBuywMEBDMG5+3xl9HsQPwmJMexP441YORswdQADp+wT28tQvgkxqqJf3paTH1GcqC8TfS2Wz0k6PYUtAHRTFBPgNLsyBtFIo/S1Ma5DU4q9+Vs/XZ/uoxU0j1z1nWN/7/9+r823us64EI8ZzsNdTODDFcvXP8+5EOZPgRcC8uS+CS8WtCYPvQdbVY/cjr/nx58CseanhZsuCyFf0NMoOWgGeNCIwnpyvrkEavTSrJGkYnSy580CdEdB9ZLpyrUUkoN2KlAEJvdZdc3Kl9kckNjNCDjg45aPmey1QpXFfOpEMaon5grApmfHRBWqywKSokGJms26gm1RdhfCeILAzmlXtCgFpkcfJf6MBW8ISgnBtbK2CmI3SQ2d8OmCtdul0VX94OjWe+E4/LaIExgiiDQqvd18t+YN9n1AfMLrigOwlSWgpwG8AeWGb8p2EEKRuqWcdRQmiBFVJi9ERjPtF7LoHFN8wWsqC15P1ohkxsmJSUIDJpy6KBVKRPrJdcNKSE1vNhBx0ZUmP2/BDb6wk2/ICpN/bIWm83/fUL8Y6 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7095.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(396003)(39850400004)(136003)(346002)(376002)(366004)(451199021)(478600001)(52116002)(6486002)(6666004)(1076003)(83380400001)(2616005)(36756003)(86362001)(4744005)(2906002)(44832011)(186003)(26005)(6506007)(6512007)(38350700002)(38100700002)(66476007)(4326008)(66946007)(316002)(66556008)(6916009)(41300700001)(5660300002)(8676002)(8936002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ApSH2o/zkvRwYnsrOW48CkrmhwpfZtRE3N3xhVNxRfSNjNCe1f26PbeujQDS?= =?us-ascii?Q?2judc2S1cNvuoxqAqoFkw2uJ23tWqtrc97qEJMNwYb3SuVnrp7047SyOqoMK?= =?us-ascii?Q?79juAHjpqrnzq5qNKHE0GSmIISV+/1OoCw2XgTH6PA2bYryycMqwQdvFiuZl?= =?us-ascii?Q?dHZq0Bs7nK4xC+I1SNIDRUrI36M6lNErmMpqFiK9aOPcu4GAB4Vc4NHhLR1h?= =?us-ascii?Q?gSLrB8nwZw5bNMsBMDkYq80Y7eujjLS6+RE3lDDLPD1QLBuVWDaibCLUa5S0?= =?us-ascii?Q?cfGiadwT5Zkng/d5kG021RHAFsmll34dXvnuC9Sk5h6E1dhODLXjs0lNrWeP?= =?us-ascii?Q?w19DcVsv7cDE2ktoLYj7nZjvaga4SgUrir17uEBiT/r/WvWfW4Oz3HEMTc1e?= =?us-ascii?Q?DixDaGHej/Hji4TRoh9YRdyBGemzC+OJNurjEiKuP/prf7YnnZimqSPnJ5eG?= =?us-ascii?Q?h8pRaRMW8whqc+GErvY44AO0yOh+aa52AcgceNCFbCVq4QW4vHCT+Xz85JZd?= =?us-ascii?Q?+mMp6KZeqmmNY8rIjswKwQeeK1g61MGM3KAYPqC2JfeFW5st9gn+ZnbmJoS+?= =?us-ascii?Q?iLZk7sqsKcJ09AOpcF0xJgoyO0VMZslgnYlV5LByc5xDyo52kTRhDkxrRKMr?= =?us-ascii?Q?CCZYkJlzvOlro2FWrHBJzaZtWOjdI11XPOxnDDko9fF7W7cBOpAX3YEOmH+7?= =?us-ascii?Q?B8pN1lUMXxfNPySjGq6q197cs11d1qtv8DeVyZVFwk6ui0m8Kz2c3SY6sLQ2?= =?us-ascii?Q?Q6LfNXP+6j41LuBlG/e9kocnAe51XxGztibkS7lSy9mnxQQ34Z/bxGbQrDRp?= =?us-ascii?Q?WaOUivLoKIGTjlJOs1Ai/fyKny/7flV9LwPu2l1pU1RFaOmZPZc9RNzB9Wlr?= =?us-ascii?Q?F7HxtwnKumwdvm3SS0CVzlna5u/eUFt2hFhDrIrbsv570crbi7LVGy3Vu7sz?= =?us-ascii?Q?Tl508Qx3xxfPBT6KtjmC+5pCy7ZxZsUcAJ5q8fLYsGffrY26mhLpeH65Ur8k?= =?us-ascii?Q?LOlsYgyZPicG3YVlTzSQghb3YuZki9E6TjtTVrp79Uqkc03TnAqu8Ix0ued8?= =?us-ascii?Q?XFFUD1fX/HL9jpLhpi7YV+7NIvzpObUmZZz2syyLkdDqYpj7V3cii4PEwmNy?= =?us-ascii?Q?RgSjY8ivFNi7EqR2MKRFxwWFQeunYX9Y1s4usaA1CZY41CsZzzEvK8eaRRYC?= =?us-ascii?Q?8WNG+wbb8TbuqJrV6KzpnIodc94pgY4jML7RoSbtd8CWjgjGbKTDv8SNaem6?= =?us-ascii?Q?LbIUFEfwvkXOhnn1N1zWMmXFLx+TaNYF/Xs779NT4bnvGCbuz5x9PtwSaUa9?= =?us-ascii?Q?4x2yCQS3WbHUBv6QAspu7f9Hv2V3a0QaMrbpHyb3wAFTl8CyrUdk8Wco5GwU?= =?us-ascii?Q?w9u9/WhXwDnwD1tzSPrunll52rN7REcwaMWDLOEUy/UXcIQXEs/8wlVoHMKq?= =?us-ascii?Q?SFI0H1IZc46mduzPhOpTZas2wT1q/yv2OWSpRLDPlxb3yDPqeGyTjKEDD+lN?= =?us-ascii?Q?DgqPh65dscrvdCF2bOyNJfy/miNFT0Qq5S8+AR5L+eBlkg8ypjku8WmeqjtC?= =?us-ascii?Q?kOyxSyAFGQwE2rsn3672PL1DKZ2UmSwWBVIK7NTVGgNGrBqR9MKMUwXgMXTd?= =?us-ascii?Q?17s8O2/u/pBV+UHQbG8vRy8=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8d960b0a-f03e-49a8-6134-08db877bfd9e X-MS-Exchange-CrossTenant-AuthSource: AS8PR08MB7095.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2023 10:44:41.0159 (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: 6TP3PPCeQ3uZs5XBfylI7oWsRR/GWoHS2f7WgO6g/zYAY5oyVTApjdNQi/csWFcjVenyvPF3HuZCsECljyjAoXozta3oFbBOCxnZsYNon9E= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9784 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=2a01:111:f400:fe0c::703; envelope-from=alexander.ivanov@virtuozzo.com; helo=EUR04-DB3-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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1689677204795100003 Content-Type: text/plain; charset="utf-8" Initially data_end is set to the data_off image header field and must not be greater than the file size. Signed-off-by: Alexander Ivanov Reviewed-by: Denis V. Lunev --- block/parallels.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/block/parallels.c b/block/parallels.c index 3c0dca3dbf..6a3d41373a 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -874,6 +874,11 @@ static int parallels_open(BlockDriverState *bs, QDict = *options, int flags, */ s->header_size =3D size; } + if (s->data_end > file_nb_sectors) { + error_setg(errp, "Invalid image: incorrect data_off field"); + ret =3D -EINVAL; + goto fail; + } =20 ret =3D bdrv_pread(bs->file, 0, s->header_size, s->header, 0); if (ret < 0) { --=20 2.34.1 From nobody Thu May 16 11:21:42 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; dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1689677207; cv=none; d=zohomail.com; s=zohoarc; b=Mh3geIPmzXDF5iJhEhxoob2I/Fes1IBpLc477c5HHmdnhxNXkij0LGTeO3ajfNDW6t8UvHTiTldhODMHl9UmZvrM+1aJmM6lI0xnKnTW8WHAy/4/VYOHnWXALpZIXNsNyDi2DMBWtZsf6Xs5FMl/t1x5uKuvl4Sd027ob4dCifs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1689677207; 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=S4bt11CVpXe4XbaBgahYT86Tad2GhoirQubK102zvgY=; b=nEFvagP5tgPGLe4JGljl4NiUxMxJX/FBozQxwPo/wNsrr/kvuveufKMkxCqGCM42z65Se/K8nWpdiGfVf1ny26BMAQ4DMEIdHazh6gWyjQssuPhTyS1YKfDh2wJLMkI4UwsYfmCCG32cvRX88ECJYjCjr2e8S+YxGeUCKo+ZOHQ= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1689677207099346.01443441705214; Tue, 18 Jul 2023 03:46:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLiCQ-00025a-NJ; Tue, 18 Jul 2023 06:44:58 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLiCO-00023q-7j; Tue, 18 Jul 2023 06:44:56 -0400 Received: from mail-db3eur04on0703.outbound.protection.outlook.com ([2a01:111:f400:fe0c::703] helo=EUR04-DB3-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 1qLiCM-0001xm-Nb; Tue, 18 Jul 2023 06:44:55 -0400 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) by PAWPR08MB9784.eurprd08.prod.outlook.com (2603:10a6:102:2ea::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.32; Tue, 18 Jul 2023 10:44:41 +0000 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f]) by AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f%3]) with mapi id 15.20.6588.031; Tue, 18 Jul 2023 10:44:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bXylxg4hqUg1H921QdMVxaf4GsirNeWI7TKRrobNn7tkqAue1BsG1k2rJ1tWs+AvO6zswMUVXbUBWXeoTaDp1Moe6lYfVwCGYeNTskJdExsBucr2DcnRQ2I25fViD8uTz6d5Ow6FK0dl11M9vSLl6aUryJLDbnY41m5nx7PJS0ICeppF50XN45xz3f0GYAbj08ULdWFQQ16ZlvYbG9FakHIlL44+0QbPuS/stxF5GmOMf+XjfrdQxLFsEoaYrPLoibGfAHunsrbGG7Myd7JAKUi+Z2rZoM851pZqPICYnJguF9Nol3dHKzYPmEjv7AhRseGo96xMen6LL6Hz4dnqtg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=S4bt11CVpXe4XbaBgahYT86Tad2GhoirQubK102zvgY=; b=DTlV4HRC8JrPPzJyoKrukdDVPfzId3oFRMly+Cprx6LpuC+LT5ZTstQQKT1spFlzybKc1T+fMeJ+02rMiG15kGkO8185b/i9tS9TIP2kMCZwErUADsM/leEkSYvF78BBl6KR2aP2183g5FN4eZMW0cCjDNK8FpjH8MsrqZ/JqTtyBxrsW5+R2eJX802yDZjubLzFkJAq2ZxIVtGc6LzSjv5ACbRaPQVbabN5ZzgiK/DQdDFZOljUORVKwEvubGxDX1R0BZjntDbbl7PKmzK5bLp8wmcbdpXkXi2H0HdBr55H6kLu0xg+7AWHQBZgtf+eHLU30/nSmorI9SU//sJdFQ== 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=S4bt11CVpXe4XbaBgahYT86Tad2GhoirQubK102zvgY=; b=fxv2PP96YS3nblL9HZ2omcdal7e/a1hSCotFSRdPdP8KDL1NPp9LzZsrmX6lhY/76dCNj8VoLHfiLMSL9xW0OpicrYTTS/kaIBixB3uJlSkbXdmO+qQ6awAc1SLzB+kccFwOjrVKGKn96NIW80aMXbC4sSMqy9+YUCiTnjDn0K67XFwjt30r5A/vCtEHKu/xxVw4rQXqV98nPeebiJlSpo070CPtkPdfkWdmq6ZHuWO390Zl5aTByV6Yye9Ur5dsCoG7gGd2IterHdI1xDbV3QMC9wE1lj1i6xaT4H11WvIIsNt1k4Bs9+bl5C1bsRUKZ+5rrskGmst3t+Wa4LuEtg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Alexander Ivanov To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, den@virtuozzo.com, stefanha@redhat.com, vsementsov@yandex-team.ru, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v8 04/10] parallels: Add "explicit" argument to parallels_check_leak() Date: Tue, 18 Jul 2023 12:44:26 +0200 Message-Id: <20230718104432.1130469-5-alexander.ivanov@virtuozzo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> References: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1PR0202CA0001.eurprd02.prod.outlook.com (2603:10a6:803:14::14) To AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR08MB7095:EE_|PAWPR08MB9784:EE_ X-MS-Office365-Filtering-Correlation-Id: f791a539-8182-4043-31cd-08db877bfdf4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kZF8bC4lkm49G+BeXR1406ksQrhuT1PfKnZvm5ehvLu5sypxTYxPFaf8Zzgkr35KpSZhKS4fkVAmRwZBT6gDNDCNx1FwDA8fJiVlWOT1YrXTiahLjVoLxuYf+/JFmKBGCg6rNf8R3vnlXuG8IVvinjC7+NBS5Ve5lX7WDpV8kEAAk81LjWo1B2CWxxSiP7UZ1j0lJKL599Sn0JYO91mJswETGKZZkNyaICvxfcwTf0/PQVFezO+V8QLJ40DH3wu5MUZ4cZ7hDpLIWBWStHQPd+ELasV9gaYxg7nFAOcoBpgE83s53DT3uJr6zOXcGSP1CHsMf0a5YWBHpQ8te+E9gKBr6St54XK3qK08QpnCELhWsM9uA+9qAXbEaDAFCTsbZnD4N4JnHgq8rch0yFtIV/rVomQQYQgpl6VVQpuuLY/okh1GGCx1wrOJd6Z2GJ/+3IuYDMQuLxe9nSxusE/0oB9pkO83cdYzuSKAq+UciroWVo/ipGs76UOPtMmfE2DOmdwW9ztTm+6fu1U4OkyznY+It4aXAqPTGLhSTsk4aY0nKKOLHuJiCNoXJa2hWkE4Av4U+z9jC8AJIWVreAmcp7LDOgNPqNoL8mDHcMiLl5cioBGNYvquE1BrNk4qdSr5 X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7095.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(396003)(39850400004)(136003)(346002)(376002)(366004)(451199021)(478600001)(52116002)(6486002)(6666004)(1076003)(83380400001)(2616005)(36756003)(86362001)(2906002)(44832011)(186003)(26005)(6506007)(6512007)(38350700002)(38100700002)(66476007)(4326008)(66946007)(316002)(66556008)(6916009)(41300700001)(5660300002)(8676002)(8936002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?254UAQ7MKydKFicVaqyhBGEZpcEKGX1kZ7JSGsHpRYzqGzrd+qsvKNkMYVci?= =?us-ascii?Q?JlsbisGAjUexe4mfMx59pwmO5wyJXsBgHiVD9XNAACgcV7SZAd50dZVDGJ+d?= =?us-ascii?Q?H5Q9UV0LNif4G9ezALAnVMpJCbaDSIdvOwr+SHeW4GCfnJC+VE9zVG01cfPh?= =?us-ascii?Q?yjXFGvtn5e2iYH3PLZ2KHd2BVdgfBEFfsmI/74QDhZj4KaZFxseICFEtEpe8?= =?us-ascii?Q?60XFu2oUqH5QQm4IA0QF/MaiaGr06mxwVo+y58k8u9aGYOo11P5Lnv2MzRvX?= =?us-ascii?Q?ATYIpJcqW4JvVZU9dxrxvALQMlyrsdQmNIhoRJB6AkauXSqSYpEXuBYP2ZAP?= =?us-ascii?Q?5fOtLHvLrd9iemSKPDt3gN+lukXPY/mnpU2XE1n73aJnyhG6ZcPU0wMWPdNy?= =?us-ascii?Q?6Ymcc9rM+wr93WSimL01Pfnr3lyiYMyl33T4D0yBrYoo7DbwTcQgCDUiQcOI?= =?us-ascii?Q?k3Bh3Pay5W5hIkl48DltnlC769VpQQWaJNwi+BFGo6hH/uTvd221etgLxqGp?= =?us-ascii?Q?dh7qGeHauq5x6UUOAzZFJvZC5hzlOm9PUwXzJ70OA7KOE8a5V83Ssi8tEZO2?= =?us-ascii?Q?n80r1wyuVAqVRLHt+JHMUMXF/HYhfHhI+lKDGYK28tEvZY85qdF8V0Y601cC?= =?us-ascii?Q?y1gh87dfTbGGjyNI8RoTdFmTDnAgZwuwibB22XZTexl58wzbhfspXuO67Kkx?= =?us-ascii?Q?/RJfjcEs88CG1dE3JGuUPBaZ6nrzRi8IV2rkHwB5Y/qesUqQ50wmUM8kLnhL?= =?us-ascii?Q?wcCTL/fdZ4DAdlb88x7yGWPSmfJMLM/ROu4T3ZMR4UVCy099quGDq0cXVYAh?= =?us-ascii?Q?OqiQa75uDUR9mkmFJm2N1pO/vX4GDUAP6+n4F9S/aMo+Jq4g8P/DnbExOvuu?= =?us-ascii?Q?AZoar+OK+0m1YOc1n49nWG9KhCX9OJSmB+wmauCr1xWGfNKWMpqRCaYd4JI5?= =?us-ascii?Q?zNcyoJ1l6vRZIy2d2Ce8eTgreSuXxIYLisdb40HjjAvCfEGgjQYb9xTBPD2Q?= =?us-ascii?Q?tYcbNroNikBP622uaz4sGihwjKd/UtkSTSUsoYYJ8kCidttTPpFW3hCB38+6?= =?us-ascii?Q?aTuo6BFmevibYrjtCAhPlnowq7JVOnC+NH8P3fdE1RvvbcrVu03eMAbMjc7y?= =?us-ascii?Q?dt1TnipopTmgClbhF+YBdxsEkzOLIkCi/qphbgFvVvSVwqJalkD4cbexlWrJ?= =?us-ascii?Q?0I4wDs2J/nYMVFWgiR4ciHNc4mGoaDX+JRwOfVexn/ozhKgKfWvTpv3lj3Y5?= =?us-ascii?Q?029pXZlUUn3TWiFKu6J49oEcLNxwgXuNRR97LXOQLKBM3GFPLh/O8S3EnWBj?= =?us-ascii?Q?5+cy755GwzBgeTxLqXMzFrUlhvFT+1IAibFkyJs/OiFQbEdH41zs5PcIoHbX?= =?us-ascii?Q?JXBRqEl6YzdCkVc+HDW0iVHfqsbiaKA/u1wbkYreY2D5cCmo6G2X6sqSW/fz?= =?us-ascii?Q?JVgMhdauHFYROqdxUU6ek2H+W/I00Wh6JSPt80NuejM1l5fOvdw/bhHVoWSX?= =?us-ascii?Q?+mlB0uM4GiYeXwEPP8Q/IjE/odcC64Sulx+uSNbedHut/Y0IpFUwkzah3SLJ?= =?us-ascii?Q?pld8+HghpJue3aK8UAfpcQsY/bJGbk2HQ5vbEkHhUlRLwyENRN/5MNAqGZfL?= =?us-ascii?Q?HRF/MaIzbc2WsNATl1pSKAg=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: f791a539-8182-4043-31cd-08db877bfdf4 X-MS-Exchange-CrossTenant-AuthSource: AS8PR08MB7095.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2023 10:44:41.5488 (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: Nqs22CtFy7QWDlXCBlk0KJx6LIouPUS/elphFXuqujma/8PopnCglfEUmc3tXbR2fc969Wu9A4jV1ttjM00pZVMMc6dU80zeJ6gu3XQl/Yk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9784 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=2a01:111:f400:fe0c::703; envelope-from=alexander.ivanov@virtuozzo.com; helo=EUR04-DB3-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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1689677208843100001 Content-Type: text/plain; charset="utf-8" In the on of the next patches we need to repair leaks without changing leaks and leaks_fixed info in res. Also we don't want to print any warning about leaks. Add "explicit" argument to skip info changing if the argument is false. Signed-off-by: Alexander Ivanov Reviewed-by: Denis V. Lunev --- block/parallels.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/block/parallels.c b/block/parallels.c index 6a3d41373a..8bb5d115fc 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -488,7 +488,7 @@ parallels_check_outside_image(BlockDriverState *bs, Bdr= vCheckResult *res, =20 static int coroutine_fn GRAPH_RDLOCK parallels_check_leak(BlockDriverState *bs, BdrvCheckResult *res, - BdrvCheckMode fix) + BdrvCheckMode fix, bool explicit) { BDRVParallelsState *s =3D bs->opaque; int64_t size; @@ -503,10 +503,13 @@ parallels_check_leak(BlockDriverState *bs, BdrvCheckR= esult *res, if (size > res->image_end_offset) { int64_t count; count =3D DIV_ROUND_UP(size - res->image_end_offset, s->cluster_si= ze); - fprintf(stderr, "%s space leaked at the end of the image %" PRId64= "\n", - fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR", - size - res->image_end_offset); - res->leaks +=3D count; + if (explicit) { + fprintf(stderr, + "%s space leaked at the end of the image %" PRId64 "\n= ", + fix & BDRV_FIX_LEAKS ? "Repairing" : "ERROR", + size - res->image_end_offset); + res->leaks +=3D count; + } if (fix & BDRV_FIX_LEAKS) { Error *local_err =3D NULL; =20 @@ -521,7 +524,9 @@ parallels_check_leak(BlockDriverState *bs, BdrvCheckRes= ult *res, res->check_errors++; return ret; } - res->leaks_fixed +=3D count; + if (explicit) { + res->leaks_fixed +=3D count; + } } } =20 @@ -574,7 +579,7 @@ parallels_co_check(BlockDriverState *bs, BdrvCheckResul= t *res, return ret; } =20 - ret =3D parallels_check_leak(bs, res, fix); + ret =3D parallels_check_leak(bs, res, fix, true); if (ret < 0) { return ret; } --=20 2.34.1 From nobody Thu May 16 11:21:42 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; dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1689677193; cv=none; d=zohomail.com; s=zohoarc; b=c3rhvvlh1aJ2VsGrS5OlxRsxl37QHA04KBIqejjj3ysCCbFdIZYHn7zp1Pb34ZzCt8pbPXAoebcu2ODvwKhfmyrxLTf/BSGBb7949NgmzGBeIdnuXMlRJlrMU1jyvfzhX9Vs6Fdq1pYUmBUHolctZDk7jg9MPIL0g4gW/hHbcaU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1689677193; 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=5bU9kYmAMMpkItlyZ3OZS8PV4Y4XX2CRLrx/JT6o1Fs=; b=bt0yNUOihcXMPzEC47HbFGljY0wK8yhjJQ9wqEvOjIDsmG67qc/IA8lkfio3YHts4t1BPJAdIk+H0ixC8lPF6bbq3IuwJjb/gcP5QnHcBX8rvfKwhFhc7z1lzcpSSO+T1aKeEK/prGWakLVG2TgBKbyE2PW/5NVn4Lon4FpduMI= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1689677193056814.1626505001419; Tue, 18 Jul 2023 03:46:33 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLiCJ-00020Y-Es; Tue, 18 Jul 2023 06:44:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLiCI-0001zc-0H; Tue, 18 Jul 2023 06:44:50 -0400 Received: from mail-db3eur04on0704.outbound.protection.outlook.com ([2a01:111:f400:fe0c::704] helo=EUR04-DB3-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 1qLiCG-0001yi-Gp; Tue, 18 Jul 2023 06:44:49 -0400 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) by GVXPR08MB7894.eurprd08.prod.outlook.com (2603:10a6:150::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.31; Tue, 18 Jul 2023 10:44:42 +0000 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f]) by AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f%3]) with mapi id 15.20.6588.031; Tue, 18 Jul 2023 10:44:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UxsaEYtHtBszPIQZ1CMjdQvx9YvRT2eXdNxUIJMG8Hu1JeIGVmkw+EL/6XoiNuoXdGOlEYp1Bs17K+FMqekAJs5z6zj07t9BSwqXwSvXtnuwtknmV2s55RyZymaYOqGLEWO4Bm/Y6w6KwKAXJdSkS9lrsM5Q3yKu2JwIMq9WyIoSWJLHyUmedVn+khJpXyPgeEzgi1OaMgIvqUu6RTI3rubK9mk7fOv5CPAw10ifN41gXWRiK08LQGxBgHsiUYhdwoOpEcRYUfY93WsEU+xQ7K6qYJx5qF+pcL4TRhYDoshZLI6STfC7U7ihaC1KOTYHK7AHsESKNzzDRmNBvS+cNQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5bU9kYmAMMpkItlyZ3OZS8PV4Y4XX2CRLrx/JT6o1Fs=; b=GhER3q8ef+wQ0pzs4I1fKLZxJXpghWvEtY1Va2ahJnWo6LcTXxHWnUts+04BOOTTu2vT0ajipBnAcZizduPdHBLWbFrIzVCXAmaurmrYVXEEQ/y8wzsg8RHF0jBLWmV39y/nPdwDPVBrUB7N8h/l0GpEpTmlkFb7QYnLSJWL9tSKI1jvw3uVKIoKwoYmBZKNFHaLr8XWuGxiJREoCjchEI7gFMffcvCK8QCZlrWa4/uSD/EXsPc1C5iX7VhdhBxA7qy96ryve3o4MJWKHhH14SRHCWdrLKclHhsV/H1WijT5SBgrZ7WhncH21tMeC0s8mePc4KtubSELuBznuVPk4g== 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=5bU9kYmAMMpkItlyZ3OZS8PV4Y4XX2CRLrx/JT6o1Fs=; b=lw9qwa3uKIg4UdKViZWtRluh/Ui7feWz5DToAcoeW4NIzMJycpV4l2PU9UftBroqGtYo+wx6gwEWDhI1abyjD/FyHbqvAMWZ07Ec3PkZiZOwTDplFRl1fWK5wQHf9eq5Eaz2XH+6HkAj3BhHboG1WQpJc9Vmh+tvq0Y9FrEdQ+tAHOMsSzjHTNxl8Wsh8mOguXY2j4nQ+gIo9sDB6D91f6Cw9yK0SMvQnpXA+VQrYlqeTXoIcrfV3sgg7bzKRFgF7xhPOddQdXvnR+WazXz6+iG28fVHAMyioQNqDw0h7SmBjc6cSILlcQxrc7iaX1ZIh2tqLdY/DUsW0NC7SZKuFQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Alexander Ivanov To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, den@virtuozzo.com, stefanha@redhat.com, vsementsov@yandex-team.ru, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v8 05/10] parallels: Add data_start field to BDRVParallelsState Date: Tue, 18 Jul 2023 12:44:27 +0200 Message-Id: <20230718104432.1130469-6-alexander.ivanov@virtuozzo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> References: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1PR0202CA0001.eurprd02.prod.outlook.com (2603:10a6:803:14::14) To AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR08MB7095:EE_|GVXPR08MB7894:EE_ X-MS-Office365-Filtering-Correlation-Id: 0d2d0c8a-ad24-4028-3fde-08db877bfe45 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zjj9k1GVAo91Ruj2F++YmT/iZcEoSja9AS/F4DPHRvPx1+kYgPWuhkAOk7+RrpPNzlo3L/kQVSwmf4MlZyirKjxBPsil0eZyN9Z3j+ND9TrJYkBVCI8ciAGelJl38IEiJf6BSXttIO91NTWWlePOQB4l3zFddc+VbOu9SKvxtCFotjsEukWlEG4ZVIJaMlZiicriAbugAEb2zk/DeYAY0JpQqmE9yLotGg5koY61fz/vF3Eb4+2CUFdWmazt2UAOi3XhWyIv5B8AqkChm0Vzy7DeUdV+A4OBAAD690nVO9Pmo9w8A1U+Xnat22w81IFOpfl+oKlXZhHOE0HzTFMuQv3UZL+qZGP+3DfvZ3BufHoDEPfwruHyy2e7ANJC5LreMBYk7eUkVuPv8VtoGfsfroU/+T6ecbAmMLQAh0yM7OycNF1UZDt3WAzKGxz/a8p2UqmRbCSLD4KdarX6hUll5dwjWGRJff+29oJiNN3jWC91hNoLZsjiFD2NDOC6OkzFWEk5aKbImgLAZ1TsMdq1Au0ujsQGW6q+9aytiU/tSwVC43GKkNxSi6lUAzuQB0eAheMr4JO9zukojc7fTVg8IRbEfPgXPVFAvu8pGu5HQKrRtZJ5zdgIQlapCYNjFaZr X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7095.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(376002)(136003)(366004)(39850400004)(346002)(396003)(451199021)(86362001)(2906002)(36756003)(44832011)(6512007)(2616005)(186003)(83380400001)(26005)(6506007)(1076003)(38100700002)(6486002)(52116002)(6666004)(38350700002)(66556008)(5660300002)(6916009)(478600001)(316002)(66476007)(66946007)(4326008)(41300700001)(8936002)(8676002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?uwcGUrIAz8D898qEyxoK+AUCi1PvV3sEx+aag4LIDt/l1JrKRFBiYK/jnUkX?= =?us-ascii?Q?S4Fdl6+JMWlOjEYZ56/7I/R9QHvjXO3u9kkws3ileA9QRVuamKnZTwPbT9ee?= =?us-ascii?Q?kriJeZHMKitJcFQsBkf2id8a00+MC54XjKmUQUUq8572ozv78tYzs565tFYq?= =?us-ascii?Q?e7zNJGEPqmyC0seVwyR1PXvW6Vg+vyVOLRfNNSgJT0cS6G4+is0YIf77JCAS?= =?us-ascii?Q?Qr3tXoKxyy7C9uPgpLIpTSq8toJD0Ek/L2khnE59MMcfSSyoOjyRLzXnAnSl?= =?us-ascii?Q?S+/0AEVuvWUvoltkVxvkI8oEFQkDuufapsZhNKziGUzH7zgakf0DbdUaxYOF?= =?us-ascii?Q?vBgOeVvyS6HOoUnO045stTrduyG84E4yulWIWzwcqY8h/0iXgjbTY/lumcog?= =?us-ascii?Q?OAIHhIzR18F0SjnCBl2NO1SLFvK8oceP1s/Y3soka8r/4WyHtEY1NF4KIusA?= =?us-ascii?Q?HmsGUWoyP2r5SUod5Wv+vmWYveYj8FSfaoEK2KBy0Abopo+ElcB9haKt+PSn?= =?us-ascii?Q?QUaSVe1xKE7i9nQ92HjD+/VtgUWBFKcF98K4NB320xJupI1+Ob1Tkw3+YtUQ?= =?us-ascii?Q?rECIYj2w6KWbyEf1ANpT2QWsV7DL2T6at2RTmEqFkmMieGCgsid4zSdoN2cg?= =?us-ascii?Q?xgfHqczUvYWDk5895CizuMF1XFdjXJUvjaff1ibDkoQsvAQ0YAG8Mpwpx3n8?= =?us-ascii?Q?+RWlxEvjZDG5QOHTHeeqXo9bDkCeRBq5BohvlhHo8ZifsMi7IQo/XRi+44lX?= =?us-ascii?Q?vV2u/J/sJgNAJHZ6ZU8PsQlChn9YoFN+/QBt5O9c7Mqh4aucKaksocre1m0e?= =?us-ascii?Q?UkVSRaFwYiyNNarImBiXAkztI7KYNuCK6ViNwrLsEDFt1FeYUrO59i/BeFDn?= =?us-ascii?Q?JI3lxv60Vc7OZTosW29Y1vvWpPx9xD0ye47rhbFwoiot3p0YGrertxXhm7sQ?= =?us-ascii?Q?88kHJV8ssvt65nA9t5xaJfMlmn7gPXSIoA22zZ0QwdsxtJ62/5v8N3oOa7Bk?= =?us-ascii?Q?pKK99c3R5cYeVVqqOUdnQiMnEEf4dXsmF8wHeaCR7chd0ntnSVOdmgS5C+9D?= =?us-ascii?Q?lN5tyrR3VXcNphMAKp/0gfY3xZV8wIp8q6ZcmDjsRCni4dGtITE6gXOXoNtM?= =?us-ascii?Q?LlwaMM+XdXPT0CDmZfltx7NYhqpIh0Xw6yF2Jk+P9OwKV5TCnYf4fe+DoVmX?= =?us-ascii?Q?IzPISD9kh2TvhpNJ5QzNEMGBzOVQrXbjFxDV5BHoVF8vGItwqLUdv1xd6lrU?= =?us-ascii?Q?xBlI3m+g/kZ4vSbb3RIsY3FuiIh3bzQThi3kiCLsKxit9qMco14DJMdM69Ie?= =?us-ascii?Q?hWYTtR4Y9vn8PFecX4ACpEsPoHWirkbkGzy5lu+8p7PffOjjg9ZaPgbJLaV3?= =?us-ascii?Q?ePtg06B8PO21l7IGDBHN2etr+pyDNnE1IZyYk2OoQFlh/AXLGMeEXgENppd0?= =?us-ascii?Q?lh9kctdcWD7IBhprv0Sby8P87RT03acPV9DOoSIHJqCTwv5XUe4eHkrDTpp0?= =?us-ascii?Q?sS0rRzIMxDxUqIULdD029N4HZ7mcQyO0u2CKfeMvCFijnBUG3baIBd2pTDm2?= =?us-ascii?Q?BrF63b0hH620wlyDy0YWqWYx+UUW+4b9fGNMaTvGcFT1OwqCOfi/jIhaHjqE?= =?us-ascii?Q?0rzAQL9xGHerPuLZMy5AbAY=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0d2d0c8a-ad24-4028-3fde-08db877bfe45 X-MS-Exchange-CrossTenant-AuthSource: AS8PR08MB7095.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2023 10:44:42.0706 (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: mjaYGS0QtJyWA3hbnA/lRtuTZ8WnWgCmaivMSs7MU/VXTvuD0ylczv4M9mz/B+2cx+54pD3o6Q/V5XIR/s3dd4XPefSBjlJjdl75eWGgz2c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB7894 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=2a01:111:f400:fe0c::704; envelope-from=alexander.ivanov@virtuozzo.com; helo=EUR04-DB3-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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1689677194758100001 Content-Type: text/plain; charset="utf-8" In the next patch we will need the offset of the data area for host cluster index calculation. Add this field and setting up code. Signed-off-by: Alexander Ivanov Reviewed-by: Denis V. Lunev --- block/parallels.c | 7 ++++--- block/parallels.h | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/block/parallels.c b/block/parallels.c index 8bb5d115fc..f7b44cb433 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -868,10 +868,11 @@ static int parallels_open(BlockDriverState *bs, QDict= *options, int flags, ret =3D -ENOMEM; goto fail; } - s->data_end =3D le32_to_cpu(ph.data_off); - if (s->data_end =3D=3D 0) { - s->data_end =3D DIV_ROUND_UP(size, BDRV_SECTOR_SIZE); + s->data_start =3D le32_to_cpu(ph.data_off); + if (s->data_start =3D=3D 0) { + s->data_start =3D DIV_ROUND_UP(size, BDRV_SECTOR_SIZE); } + s->data_end =3D s->data_start; if (s->data_end < (s->header_size >> BDRV_SECTOR_BITS)) { /* * There is not enough unused space to fit to block align between = BAT diff --git a/block/parallels.h b/block/parallels.h index f22f43f988..4e53e9572d 100644 --- a/block/parallels.h +++ b/block/parallels.h @@ -75,6 +75,7 @@ typedef struct BDRVParallelsState { uint32_t *bat_bitmap; unsigned int bat_size; =20 + int64_t data_start; int64_t data_end; uint64_t prealloc_size; ParallelsPreallocMode prealloc_mode; --=20 2.34.1 From nobody Thu May 16 11:21:42 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; dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1689677267; cv=none; d=zohomail.com; s=zohoarc; b=ZoXn0rauaWIjR0OOiTEEoRyKRIY23ohXrfWE/o5zxugE4csr9UuXfZEyTVgs8GQiKfkC7CiIRxhGjsqllUto/ZCRIEQsggfNWd0BHA5RflkIusuYMI/okjCc2uoKxFAJQPjszlpxbG58ByutKV7Yy+HpUCmSixxwqKTGbeKdG7k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1689677267; 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=G6No7S2mIfoq2E9I5xoANEy9Ibx7QcjrMD+ZbvM66tQ=; b=P2Q49D1AAckYi0hLx12/G/rDscU4kkiE4jjVz/ZaVM/q2eS38zIe1j06S/4rCg5vhGp8n3tznroeYCWBjHFQLSV/NhdcJqlx/rR44dUqxNwH0F1Urq4r6kLI+yBp2inH/5GhaTOT0VPgowhlXuj6/IBDm5TVJ7farMFgS2dZJPs= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1689677267470821.6022331697209; Tue, 18 Jul 2023 03:47:47 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLiCR-00027V-Ck; Tue, 18 Jul 2023 06:44:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLiCP-00024e-0B; Tue, 18 Jul 2023 06:44:57 -0400 Received: from mail-db3eur04on0704.outbound.protection.outlook.com ([2a01:111:f400:fe0c::704] helo=EUR04-DB3-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 1qLiCN-0001yi-7A; Tue, 18 Jul 2023 06:44:56 -0400 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) by GVXPR08MB7894.eurprd08.prod.outlook.com (2603:10a6:150::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.31; Tue, 18 Jul 2023 10:44:42 +0000 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f]) by AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f%3]) with mapi id 15.20.6588.031; Tue, 18 Jul 2023 10:44:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CLkGJ/z9iK27iD+naSN7oRzQ0s6NV1h4DMvxjGpwjwLGsw4vMkp4XsvYVhrZeCZJ2vDcibRs5gktu6dA+r9z3BuPyF3y5Zp+KZfMmhVKTrkQV82EasbztbQ7v3TBkIbS5h+6bZCPDpfcjmL2j+VMscFRmWVWbml444vMaddijsuEnzA6Rh0jBaJvcfF5n+8tyJEzMUvWmhL9RNZkFPwFTuWHH99v+Fixvo65BD3+wITlInNxQy84MkHW2GksypSP2Q0jn+ZMwmhwA+PZQLBL6EGMCfDDrrhrl/bqE36IhM15ImPVQcSMVE1lxEExvwvcvd5O00vSYU4OVVxqtVZTyQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=G6No7S2mIfoq2E9I5xoANEy9Ibx7QcjrMD+ZbvM66tQ=; b=gDH43rXqv+yhiMn1ASK9JERqv0kiTVa03lK158w3VTi7GVcR0illd7xGm2aDONnbaBNE7n9ktLlf0tqfCCYLDGfihgBW5t37LZhj996rYfCLBGWocTlFQIxnyOvwAS/XiHT/499KkQe7npDyK/X4WN/DL6M07vnJgmWjawepyyDy5DKSgV/yA67SDsmxTVirHRglFdbBDOavPHkSb0K5jwZjajo6+BPTN/jIFayVi+ks3odfV4blT9aRHzWE7Gc2gg8gfha36NeDEx9lRUsgq9yplN7TVN61+J2BvsiCIbsas9/TJG7swkddOBMAhB4iAUS3wMQyAcDH6v/IPCku4Q== 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=G6No7S2mIfoq2E9I5xoANEy9Ibx7QcjrMD+ZbvM66tQ=; b=hSN/7CiClfoPJvysYmkgOi/HNAx/Whf2Zw0x1lUD87AsDP/GIbEy9WuW6+mNJ4LZ8C/P7oRePAru3wxoboui63i0dO9ZEZYV4dnusq4Ufj5qujqtxefqIvA8LB+OYfxzhODCXMiNNo5FRA5GvjYvr5LPd7CjmalwskNtQFtGz1UE+1F9f1vdyVGsZ5UjcJUPewRneyyGKgB342TNSVA4prWQKSpP3D1liKxTZKMSp3V73sjuNMEEr+SuMMfChrAi7zSyqV6KSwkybq4Z4h6E26SvwBEbpGyBY4jgEwet05vSwTDhcRmybdKOlqymPtDFZzGvbcsGZ3AiiTcRlDTffw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Alexander Ivanov To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, den@virtuozzo.com, stefanha@redhat.com, vsementsov@yandex-team.ru, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v8 06/10] parallels: Add checking and repairing duplicate offsets in BAT Date: Tue, 18 Jul 2023 12:44:28 +0200 Message-Id: <20230718104432.1130469-7-alexander.ivanov@virtuozzo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> References: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1PR0202CA0001.eurprd02.prod.outlook.com (2603:10a6:803:14::14) To AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR08MB7095:EE_|GVXPR08MB7894:EE_ X-MS-Office365-Filtering-Correlation-Id: 4159e0ce-42e0-474f-4a2a-08db877bfe96 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cfgOkMSHHvKNq/En5KZKJR7Z9vKU1Kqmlzd5y8M3uevFj2g8HexcFHvoOAD5XSPNV5IqlWJs+Gh3dFN24Ff7FKhbOs/sfPcs3kwJpU8C78wkxVGMl62DWH1rKFscsqfTuv25xDUyevHKJbwUJIIfwaviOJhjlHEUMkisukSICDsBFReCSM32wFNwrBdxdsf2dEGyqwceBoeNCAjXrE6XsRtQErYBXPBUNZ+4CkWyrUeis5BOW2Vwz/81G5h8107tq3pXM4vhagxoZrWZ5L6Y+UwXqlDEbiK4UT5ZCP90T/3omvkLJ4Vr0qSIVSPg3kAEkFNN8tCyqvT/GLA27SHEQ6EhtErPki0QJxtqL3Ft04vk2heUodstLyvce9OiqmcgVwwP+ksmC/6Slx+ZQGsxqhh3w6gYR1jTKeWfePQ6hw6Stz+cnx71JOyfhJxLk6Bui+pnCYLnjmm6nS73qreQPZbZhu9eB28lKU2+bitFRIyLEN9eT4+cyF8wEutFhF0rJAxnXcAeBomcO0rfqjiHKl/0hXxY2+Z4wsmggIt8LF+9UzMKfuRhqJb8zo19Vm50T+rDUjhtKV7iXl4WSGJdRtZTPuGuOWK6WTYCxBpJNtzcnBQvj/yoDlmFXON9tLE/ X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7095.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(376002)(136003)(366004)(39850400004)(346002)(396003)(451199021)(86362001)(2906002)(36756003)(44832011)(6512007)(2616005)(186003)(83380400001)(26005)(6506007)(1076003)(38100700002)(6486002)(52116002)(6666004)(38350700002)(66556008)(5660300002)(6916009)(478600001)(316002)(66476007)(66946007)(4326008)(41300700001)(8936002)(8676002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cakIBGMOesYwJo9EugazoNCYM6dV+zuaVnyfAnaSmzlFGLt51bdbNqhNQvBt?= =?us-ascii?Q?5/jIpGuId5llhXdYanx8o456IM5c4uqjpxhG5uWI+larJ/Z46/i+GxJF+xwD?= =?us-ascii?Q?DT7b3Eu93ELrYUEbl8ABRb30dsV3dZD5X9ElFSYo2AB3SEvLD/bU+HnwPuy9?= =?us-ascii?Q?1dGDAlfFkvQi8oMdwnYeycrwOmr1oOWMt7ylypIA4pMkrsHnLmGxJ1FhWB9f?= =?us-ascii?Q?vgWQrkXSZHQT14N9fh8OMOztBQijvOk+v9mwicREZfIk3kH/6ikaeBsy4lM/?= =?us-ascii?Q?HfAoVDS2rnvtW6EZ22svOa1Vubv+GEZvGYwtbuSHzLcpGA+NgfR6/I+iUZEc?= =?us-ascii?Q?Hg32WVWGyMk231AaoyxstcNHAdwCKrieYP9aSlUwbB7dvCkdUL4VjIj1dye0?= =?us-ascii?Q?48xey1ROG42CZWtFhP7HJZ5aAq8Yh6lnVLydv4rjAp2h8n/Ad0CnW0TtyYGr?= =?us-ascii?Q?CmaJNmJaYQ7z3c7zN6VG/LOJSmBWBhngY2vCkvs1kDl21BfjpGVHVncKuNDG?= =?us-ascii?Q?F8VPBohDpY8ADausOJyT4giniQh6XR+UuwXjgSlJbtEADBLcfhzdzOwIxyu4?= =?us-ascii?Q?xDm/KsW7bbk0nmU8ZqvlwoerXjpjriYk6qNowQAVt9IW66Jr9Q/bCCsklN/l?= =?us-ascii?Q?0O+DV2D0W0hV8W/3BuiCKm0hOat3pzVnujRXalGHczR6Y9u/OzPUC0tqUo8R?= =?us-ascii?Q?0DaExg31QC8YmiukvfcjIfXGGt9qQKmMip/gfvr27SDPETHrZLkRnCOQkNS8?= =?us-ascii?Q?rbiX2O+OMFbRmzbxPX5oG9UVKeCqaMfyta0S/YpuEpHbv7g5Q9v9I3O4Z0Rx?= =?us-ascii?Q?eKq3r7r/hZu7gkFwZVZ/Oha7UabNxBeCVGE0uLYS7xfwMzkjBtf4CzpU7k9c?= =?us-ascii?Q?b3hr4Tr2nDwOxwwrAV8MGc7BPpAtgu3ZWvW+8FEnCOve/Bb0COuFVj3V8Xl7?= =?us-ascii?Q?MgN3I4XoFhZAnIKAN22g8ZAplP9gd4UOEBqtU4avlh6JUi40YiZBx0P0WqW1?= =?us-ascii?Q?6n4e1fKEd/GLzkzIR7DjzVvT3WBiyFdSrORq+Ul7WqSC+rOiMpLtQpYl4JsQ?= =?us-ascii?Q?KR8eoUMrnm7WR32nV8YuDkfmQxDt/92lnAykTKAxz1gb0jeJ4TT25bEclRV6?= =?us-ascii?Q?utmZ+pwq6ZbxHXWTdM5WV2ljYeRsJdesnqj/J09RWPh6oxQDwKhK7MXGsOgY?= =?us-ascii?Q?4MFJWPzXjfXd7d2mVV1QklrMhrhUfoPMz+g6ka8OMnR5zck7B5FkvkRl7iI5?= =?us-ascii?Q?h9tEzRuaF15xHXr4bYKdszZf54l4cVnx8t+DHjY68sknbf2fLvpLvk0vePKW?= =?us-ascii?Q?d2fXLthKzZc1ZK0eDTR8wVyNDEKpIw6SC4t1lMGcN+uISQkMtkAC7nW2V4od?= =?us-ascii?Q?pW9vb4dNR1PXz4Wu79ul2gs8N5bi6G4O95axQMWleshB296dp1aeoirEOjpZ?= =?us-ascii?Q?YJE5HWe4NIeFT3plSeMuhpNB3xVfkc4uPFBKker0OGoUW4EIF36pFNXwbiMC?= =?us-ascii?Q?OO4br40KGumcl1H/z8NDbnvTfw9eQR6r7rU18XOOmKkkeVqpDovZUtMJ9WlB?= =?us-ascii?Q?bsgWlAU/++sdZwHtFlnyLMYpqTJ9NVor8JuIlyU8RUQvqGQYseOcFRlw3+cp?= =?us-ascii?Q?oZZMIcbcNoWr6hHqKLVxThk=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4159e0ce-42e0-474f-4a2a-08db877bfe96 X-MS-Exchange-CrossTenant-AuthSource: AS8PR08MB7095.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2023 10:44:42.6077 (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: Svh/OrvJTH69pzWmLMiITnLOU9JqQn1f4Ny0/Bb6cWg3zGt7wppQqtFA5B5hnotT7mwzdkI92n0BgMQrQDEP/4bPeYHCD5z3cF8KKZWPNmo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB7894 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=2a01:111:f400:fe0c::704; envelope-from=alexander.ivanov@virtuozzo.com; helo=EUR04-DB3-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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1689677269269100004 Content-Type: text/plain; charset="utf-8" Cluster offsets must be unique among all the BAT entries. Find duplicate offsets in the BAT and fix it by copying the content of the relevant cluster to a newly allocated cluster and set the new cluster offset to the duplicated entry. Add host_cluster_index() helper to deduplicate the code. When new clusters are allocated, the file size increases by 128 Mb. Call parallels_check_leak() to fix this leak. Signed-off-by: Alexander Ivanov Reviewed-by: Denis V. Lunev --- block/parallels.c | 144 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) diff --git a/block/parallels.c b/block/parallels.c index f7b44cb433..a78238eadd 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -136,6 +136,12 @@ static int cluster_remainder(BDRVParallelsState *s, in= t64_t sector_num, return MIN(nb_sectors, ret); } =20 +static uint32_t host_cluster_index(BDRVParallelsState *s, int64_t off) +{ + off -=3D s->data_start << BDRV_SECTOR_BITS; + return off / s->cluster_size; +} + static int64_t block_status(BDRVParallelsState *s, int64_t sector_num, int nb_sectors, int *pnum) { @@ -533,6 +539,139 @@ parallels_check_leak(BlockDriverState *bs, BdrvCheckR= esult *res, return 0; } =20 +static int coroutine_fn GRAPH_RDLOCK +parallels_check_duplicate(BlockDriverState *bs, BdrvCheckResult *res, + BdrvCheckMode fix) +{ + BDRVParallelsState *s =3D bs->opaque; + int64_t host_off, host_sector, guest_sector; + unsigned long *bitmap; + uint32_t i, bitmap_size, cluster_index, bat_entry; + int n, ret =3D 0; + uint64_t *buf =3D NULL; + bool fixed =3D false; + + /* + * Create a bitmap of used clusters. + * If a bit is set, there is a BAT entry pointing to this cluster. + * Loop through the BAT entries, check bits relevant to an entry offse= t. + * If bit is set, this entry is duplicated. Otherwise set the bit. + * + * We shouldn't worry about newly allocated clusters outside the image + * because they are created higher then any existing cluster pointed by + * a BAT entry. + */ + bitmap_size =3D host_cluster_index(s, res->image_end_offset); + if (bitmap_size =3D=3D 0) { + return 0; + } + if (res->image_end_offset % s->cluster_size) { + /* A not aligned image end leads to a bitmap shorter by 1 */ + bitmap_size++; + } + + bitmap =3D bitmap_new(bitmap_size); + + buf =3D qemu_blockalign(bs, s->cluster_size); + + for (i =3D 0; i < s->bat_size; i++) { + host_off =3D bat2sect(s, i) << BDRV_SECTOR_BITS; + if (host_off =3D=3D 0) { + continue; + } + + cluster_index =3D host_cluster_index(s, host_off); + assert(cluster_index < bitmap_size); + if (!test_bit(cluster_index, bitmap)) { + bitmap_set(bitmap, cluster_index, 1); + continue; + } + + /* this cluster duplicates another one */ + fprintf(stderr, "%s duplicate offset in BAT entry %u\n", + fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR", i); + + res->corruptions++; + + if (!(fix & BDRV_FIX_ERRORS)) { + continue; + } + + /* + * Reset the entry and allocate a new cluster + * for the relevant guest offset. In this way we let + * the lower layer to place the new cluster properly. + * Copy the original cluster to the allocated one. + * But before save the old offset value for repairing + * if we have an error. + */ + bat_entry =3D s->bat_bitmap[i]; + parallels_set_bat_entry(s, i, 0); + + ret =3D bdrv_co_pread(bs->file, host_off, s->cluster_size, buf, 0); + if (ret < 0) { + res->check_errors++; + goto out_repair_bat; + } + + guest_sector =3D (i * (int64_t)s->cluster_size) >> BDRV_SECTOR_BIT= S; + host_sector =3D allocate_clusters(bs, guest_sector, s->tracks, &n); + if (host_sector < 0) { + res->check_errors++; + goto out_repair_bat; + } + host_off =3D host_sector << BDRV_SECTOR_BITS; + + ret =3D bdrv_co_pwrite(bs->file, host_off, s->cluster_size, buf, 0= ); + if (ret < 0) { + res->check_errors++; + goto out_repair_bat; + } + + if (host_off + s->cluster_size > res->image_end_offset) { + res->image_end_offset =3D host_off + s->cluster_size; + } + + /* + * In the future allocate_cluster() will reuse holed offsets + * inside the image. Keep the used clusters bitmap content + * consistent for the new allocated clusters too. + * + * Note, clusters allocated outside the current image are not + * considered, and the bitmap size doesn't change. + */ + cluster_index =3D host_cluster_index(s, host_off); + if (cluster_index < bitmap_size) { + bitmap_set(bitmap, cluster_index, 1); + } + + fixed =3D true; + res->corruptions_fixed++; + + } + + if (fixed) { + /* + * When new clusters are allocated, the file size increases by + * 128 Mb. We need to truncate the file to the right size. Let + * the leak fix code make its job without res changing. + */ + ret =3D parallels_check_leak(bs, res, fix, false); + } + +out_free: + g_free(buf); + g_free(bitmap); + return ret; +/* + * We can get here only from places where index and old_offset have + * meaningful values. + */ +out_repair_bat: + s->bat_bitmap[i] =3D bat_entry; + goto out_free; +} + static void parallels_collect_statistics(BlockDriverState *bs, BdrvCheckResult *res, BdrvCheckMode fix) @@ -584,6 +723,11 @@ parallels_co_check(BlockDriverState *bs, BdrvCheckResu= lt *res, return ret; } =20 + ret =3D parallels_check_duplicate(bs, res, fix); + if (ret < 0) { + return ret; + } + parallels_collect_statistics(bs, res, fix); } =20 --=20 2.34.1 From nobody Thu May 16 11:21:42 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; dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1689677236; cv=none; d=zohomail.com; s=zohoarc; b=OUEghBzKpSZIKFWUweHa31cenYKwgWFX0TusGTBZIAKgXaXc7CR1yMxW4KJ3HoQhmSGPmbvMyqN5ElHyhlNaUaGsXXnZN7J3pgdLJIfqsV8lGTeVt+k4NoGgcIClvwThtp2tVjs/q4Hp3lu9cixcMO3xTz3r8YcwU0mKC4g5ROw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1689677236; 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=D1RskmucYx0jDWELW0pmuzc4yCYxf7SoIxQ51ylVmUA=; b=jRBXQmFGeE41O82nPfo+ytMTXH9iOFuYuOcgaFqWNZ1P0udAs9Weg/y1qBUtjeMO3zVFWVNezV1NvpNrnS/H2l2lwnti2/kPjPtiYmyy6ARNKwhvKxR/5nHaA3rYx/z/AO8T+POnnZj+X83vTSpJCjvjvdgVZL7SjQjEO51peeU= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1689677236842666.8794110535581; Tue, 18 Jul 2023 03:47:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLiCL-00021y-HQ; Tue, 18 Jul 2023 06:44:53 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLiCK-00021b-AZ; Tue, 18 Jul 2023 06:44:52 -0400 Received: from mail-db3eur04on0704.outbound.protection.outlook.com ([2a01:111:f400:fe0c::704] helo=EUR04-DB3-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 1qLiCI-0001yi-M8; Tue, 18 Jul 2023 06:44:52 -0400 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) by GVXPR08MB7894.eurprd08.prod.outlook.com (2603:10a6:150::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.31; Tue, 18 Jul 2023 10:44:43 +0000 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f]) by AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f%3]) with mapi id 15.20.6588.031; Tue, 18 Jul 2023 10:44:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZpACukj2booSeJg3ohyApqdDjqSwmzLkKIkpJbuFP+k4pdBMuO//ruQDwTpZ5i/7kCRSs1Q2c1NbnF9lOmIzWdUx/qk6zwzd1dFYb1wsihF6IpzFsX5ecWU0HeDAIhmBPBAaQY5eIRlrT/TYUs++tlw3SlzOt6QkeHVRCaRAxjsfXUZZmF73MF5OcQET5cZKTN02l8QGjmTjf5xtCH2EjhfWhKvoBiAyWjwZZp2dxVZNlfVfnSju+9nQ3G0/tJdoBOHcMO0Xd8gFQ62qrH/RPUjdUaNwyYdlSmw6nd1IsF8gPj8DF5P46dsaC6bGVMqVUqy62y7jneRIDr4Pa2BiXA== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=D1RskmucYx0jDWELW0pmuzc4yCYxf7SoIxQ51ylVmUA=; b=YXuhZkjxbA8eD7f9DlScIEmzU5lljSOyb9DCtMPGU4bke/tctycYBadcL2tvIx8j7aOyUT8oBvazyYxDYLibiK4t5ER/wZcYoNAIwmRB9bvDQ1dOAFarsGVbOQngeFut0e4UxgppEKmbpRO4X7mSx9ELNaILmD7S13gXwHoWNddPeuSYjzhkE5CX541XfrlC3uOyFJmFXMWKaqcFZXfYIqSPFQE4VRdr/k6MxCScD2nKJmHADFnOV1bDGAAqigygcVZv14a3aHy3nXSj74l5oHh5fiS92X6dmRYwE/3Qyy0RzFb5PfEW9ytzgCz5569tDu/uMesC1Se3GPBDUROP5A== 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=D1RskmucYx0jDWELW0pmuzc4yCYxf7SoIxQ51ylVmUA=; b=hMOlVFFwWW85E4bU6izplKlww3/X6doB4HDtIAgg4h+vP31XL/xUuC9fLUNTYJA0gxp+aEfohxXvUBwPcuK+1Uc6mW0M8mCdzVy4GYob07stB3RU9idRSki2U5YwuZeN2AAXRFRYXBkPw731Rl8tsuPExwhC4MtrRtLbjlYYDpzVccMm2+hAUdq7QS5lZWI99yULm5Q3n9Wxy1MPbrDhQ2Mc7lXV+aKxBDFWwx38auxTGYt+0m0RKj0HBx6bA5WxS1yZHbfmQb3XvWL0CQCW64dIX0Yy3xnDZQoeGhfkvJ7jsqKvBr9yJvjK9WEXrLrLpbAv5h7f7zV+w/gFM8x2+Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Alexander Ivanov To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, den@virtuozzo.com, stefanha@redhat.com, vsementsov@yandex-team.ru, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v8 07/10] parallels: Image repairing in parallels_open() Date: Tue, 18 Jul 2023 12:44:29 +0200 Message-Id: <20230718104432.1130469-8-alexander.ivanov@virtuozzo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> References: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1PR0202CA0001.eurprd02.prod.outlook.com (2603:10a6:803:14::14) To AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR08MB7095:EE_|GVXPR08MB7894:EE_ X-MS-Office365-Filtering-Correlation-Id: ae9e4011-f526-48f5-5667-08db877bfee7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mfN7wMUxTSTKGOnaeV30AsWwusnDHKl/+Lr19dDl69WYgbEbrh+nZYXwUIzEKRRyLrjy++fNOWN+UhAmDJEaqTl7MKfMGQ1iwp/36hOOiOQ/7yFEPSI1A1PxND9tq+7Uts+q4Eo8V8FnLoC+9xVkS+ay0ig21/8lC48eF4jqjZtrOS5KdBu0P5n8xZZdfFclb+h0T0MIBxzc3YQAciz5/7PUtVcE85ygG9nmR7DQHdTtvybtWZ8x5w0BIxzP1sbXG62TADwGfqMaJR6B16AhxxxhoQub8iedN47hmYohaL1KdpywZvdiR3hszU7TSENTAvaIpILxxMn8/tVp1k7kv3ORDXYpr4TVbyLqFK9QAvvHK/Pun/QQ4rDs7QUyouKBWbDDijK/2KbmIUmz/OXma1UVRtyd0H9jZ8KbUmi/fBY5KBEkxFlav/dhb3o22KVYbMEBIkRFgJTBQ0m9cXPHEf67i3egpMAyS9nmbJrFKTA9iVJdBO0hSZ/bPAoN0Z2pJUcQ8PevM0/xUNmZjOfJ/deGr00TuYp7gIB4AYpKMOc4tCKpAMjryXr8motgS9vyUcf1hRs/PBL7kj0OKJ1n+RsYgQhYieohbTRSA7BhYrHxAnbXixfZnGbNq1Eb3orN X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7095.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(376002)(136003)(366004)(39850400004)(346002)(396003)(451199021)(86362001)(2906002)(36756003)(44832011)(6512007)(2616005)(186003)(83380400001)(26005)(6506007)(1076003)(38100700002)(6486002)(52116002)(6666004)(38350700002)(66556008)(5660300002)(6916009)(478600001)(316002)(66476007)(66946007)(4326008)(41300700001)(8936002)(8676002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?HU4zOq7o4g7q2to8XYv/C/fgjxNIVOG9wTxGtHZiTGJS4JYYfPZu82ftcskN?= =?us-ascii?Q?surcQ5g/eFXCHzgT0iC5Sn+Z15dkT77/hIeYiGd+CC0GE7fZwV/eh1eRMMFv?= =?us-ascii?Q?qJoGp4bSXuceMbXUBLy+TsIM7jPY4FktDUQ4cQvO47efWY23P6DYIayYtqag?= =?us-ascii?Q?KpQlZ8gKx7G7FyGx3/XGXE4KOw+3Zbg03p9baxuNlIXIhz+HU8uPHfyR3GvU?= =?us-ascii?Q?j8na2Zsyk2LwPyLET/Q5UCL1VtsnRC4I4MH4gHIyDXMMRSk5BbrnJLgCHI7H?= =?us-ascii?Q?uPRgn2kcTKWZv2Un797JowNT8H5Gp21A9UJNEb5+SU67bmc7W54wJ85WNLEw?= =?us-ascii?Q?QLjf9KmVpMMytPT+3hesHXaQBP6XTCf367LYs+DkI8/Ucyew9tf1xVJjgDfj?= =?us-ascii?Q?8xwapBxTaiwKDsSziUcoTBq/u9Rc499m/O6q68YThaQL0tgRuZ58xQJVZPyp?= =?us-ascii?Q?s07yEP7n3lnPoDR0h2a56QG3VprQJgUGavthG0d0c3s+jWLNeK1bA/PXElZW?= =?us-ascii?Q?87kNx4VUneOaue1sqrAS/Bzv+1UOG3eCnyotW5NOhVLGD1xAWQhuthVk8N8O?= =?us-ascii?Q?yjV+2kV5RZVvv3zJ3p+mWeuccELJd3RileM/A6ydNibvokIw4/8awim7O4xI?= =?us-ascii?Q?nyIBiM+4oL9TjItz+aP+NCJutKlMfbgvwIahI07XaTqTA/FF9/8/hPjyg7JM?= =?us-ascii?Q?pFAynOn0WbH9vJv+yqmAVuJbe9oBI/qTapopZSX+xPG5K4PyIh0RkLZjWHnO?= =?us-ascii?Q?pXAnc83e+6BoMvdz5usm4fp69rcVMbmqKTExtV2xxadIbOoWrJLAa1zUO+OI?= =?us-ascii?Q?+XqraSe9umxEpT3Abypj6ROu+wuYrwQ/ZZg9WIuoi24ez8YBUPy/ksZ4qSQf?= =?us-ascii?Q?abhszoiJZWvDI4D4MvD42uKNzpA4WC0a0c+CpEUTOF7HkhzSzczk4vE2QZ8B?= =?us-ascii?Q?3B/NxnDEVh/aG7+4GdoyKWPlrTCtvqhSLQ4ITth0LRU7OMD+OorlH5h/RMPw?= =?us-ascii?Q?5xk1spk8jtv+xL/lGa/AS/Vj9SM/BS05qumXuyexSScYpdTXeChoOD2WLgYf?= =?us-ascii?Q?cluy527Sd7vtkUaI0o0SAdkOecB9epDoeuEW18I72u8j+ImpPFH9UKDW3iGy?= =?us-ascii?Q?tcSn3KNlbKdkr1SnODeKI+kFC52CoTqBqnkHUHy/UTwMXREj8dHjcKDJCbAn?= =?us-ascii?Q?sGFuVle26bkavYl2XSu+hSOe6uSbmEB0BzkABeN7r6mqbH1iOuXywiGZ9S/i?= =?us-ascii?Q?8WuH0hdH7foCplfMfEaaIMAQi8GxdXqcF/ru+dwPnntRLd7b2niMCeBiUqEA?= =?us-ascii?Q?O52Q8eezhZB+BpSZBtmaOD19GBxesT0Zs0GAmv0+m3keijYU0aLwUUZG6Jau?= =?us-ascii?Q?IlTS1u960CTHy9+9yrb0+jkHH+fmUcJjmidn8TYezuBVICpGOJjjyYK6CBkP?= =?us-ascii?Q?bw1EVqE0hdkNeVC1T4zBVCUfYITxjR0Sis2U+k3CrD+q6L2dEsXmG8fNrkA0?= =?us-ascii?Q?kMgr+LfldpjCpTom2LWJL24oSzxMB9wUDtf/2jcY6nDu79TC1jqqme76Hmll?= =?us-ascii?Q?OUo/v1h8FcV0lZ61h/Npu1xexg954ws4Aq/4u4sz0/dscU/On/FnxJ/D/hKl?= =?us-ascii?Q?P4BLTpuGkDVd30357b9UyIk=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: ae9e4011-f526-48f5-5667-08db877bfee7 X-MS-Exchange-CrossTenant-AuthSource: AS8PR08MB7095.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2023 10:44:43.1376 (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: fqe/Z3wxVqacHXDsfJ5kGtGyeupbrgM1Jf6ARrg24Cw6ZB/m4JCgu6EBjf09TT4Vo+f75yZES+/hMDl+puTqmsAZU1vDHJ8ZkIPBBWVIcv4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB7894 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=2a01:111:f400:fe0c::704; envelope-from=alexander.ivanov@virtuozzo.com; helo=EUR04-DB3-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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1689677238986100003 Content-Type: text/plain; charset="utf-8" Repair an image at opening if the image is unclean or out-of-image corruption was detected. Signed-off-by: Alexander Ivanov Reviewed-by: Denis V. Lunev --- block/parallels.c | 70 +++++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/block/parallels.c b/block/parallels.c index a78238eadd..5100c8f903 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -951,7 +951,7 @@ static int parallels_open(BlockDriverState *bs, QDict *= options, int flags, BDRVParallelsState *s =3D bs->opaque; ParallelsHeader ph; int ret, size, i; - int64_t file_nb_sectors; + int64_t file_nb_sectors, sector; QemuOpts *opts =3D NULL; Error *local_err =3D NULL; char *buf; @@ -1024,11 +1024,6 @@ static int parallels_open(BlockDriverState *bs, QDic= t *options, int flags, */ s->header_size =3D size; } - if (s->data_end > file_nb_sectors) { - error_setg(errp, "Invalid image: incorrect data_off field"); - ret =3D -EINVAL; - goto fail; - } =20 ret =3D bdrv_pread(bs->file, 0, s->header_size, s->header, 0); if (ret < 0) { @@ -1036,33 +1031,8 @@ static int parallels_open(BlockDriverState *bs, QDic= t *options, int flags, } s->bat_bitmap =3D (uint32_t *)(s->header + 1); =20 - for (i =3D 0; i < s->bat_size; i++) { - int64_t off =3D bat2sect(s, i); - if (off >=3D file_nb_sectors) { - if (flags & BDRV_O_CHECK) { - continue; - } - error_setg(errp, "parallels: Offset %" PRIi64 " in BAT[%d] ent= ry " - "is larger than file size (%" PRIi64 ")", - off << BDRV_SECTOR_BITS, i, - file_nb_sectors << BDRV_SECTOR_BITS); - ret =3D -EINVAL; - goto fail; - } - if (off >=3D s->data_end) { - s->data_end =3D off + s->tracks; - } - } - if (le32_to_cpu(ph.inuse) =3D=3D HEADER_INUSE_MAGIC) { - /* Image was not closed correctly. The check is mandatory */ s->header_unclean =3D true; - if ((flags & BDRV_O_RDWR) && !(flags & BDRV_O_CHECK)) { - error_setg(errp, "parallels: Image was not closed correctly; " - "cannot be opened read/write"); - ret =3D -EACCES; - goto fail; - } } =20 opts =3D qemu_opts_create(¶llels_runtime_opts, NULL, 0, errp); @@ -1123,10 +1093,40 @@ static int parallels_open(BlockDriverState *bs, QDi= ct *options, int flags, bdrv_get_device_or_node_name(bs)); ret =3D migrate_add_blocker(s->migration_blocker, errp); if (ret < 0) { - error_free(s->migration_blocker); + error_setg(errp, "Migration blocker error"); goto fail; } qemu_co_mutex_init(&s->lock); + + for (i =3D 0; i < s->bat_size; i++) { + sector =3D bat2sect(s, i); + if (sector + s->tracks > s->data_end) { + s->data_end =3D sector + s->tracks; + } + } + + /* + * We don't repair the image here if it's opened for checks. Also we d= on't + * want to change inactive images and can't change readonly images. + */ + if ((flags & (BDRV_O_CHECK | BDRV_O_INACTIVE)) || !(flags & BDRV_O_RDW= R)) { + return 0; + } + + /* + * Repair the image if it's dirty or + * out-of-image corruption was detected. + */ + if (s->data_end > file_nb_sectors || s->header_unclean) { + BdrvCheckResult res; + ret =3D bdrv_check(bs, &res, BDRV_FIX_ERRORS | BDRV_FIX_LEAKS); + if (ret < 0) { + error_setg_errno(errp, -ret, "Could not repair corrupted image= "); + migrate_del_blocker(s->migration_blocker); + goto fail; + } + } + return 0; =20 fail_format: @@ -1134,6 +1134,12 @@ fail_format: fail_options: ret =3D -EINVAL; fail: + /* + * "s" object was allocated by g_malloc0 so we can safely + * try to free its fields even they were not allocated. + */ + error_free(s->migration_blocker); + g_free(s->bat_dirty_bmap); qemu_vfree(s->header); return ret; } --=20 2.34.1 From nobody Thu May 16 11:21:42 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; dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1689677224; cv=none; d=zohomail.com; s=zohoarc; b=gLnxGiwI2NIPqdcrOhlWacxi5/ZTQUWNo7JiSP3npICMXcTdmjUgjm+BqRwoXuwzNT8f7TKZD/4EB6TcJ31FkUiFhcmaWkJt2f9uTzs+FTPpnvb1wIbXJBQ0B3okGPe8qz2G8XMYukSBo7uzse6uycwHxjLPVuGigSs6pN86fQQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1689677224; 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=dG16+u4BMTFpxqaFYEey2g3N4e6uYVt8Sgm2cD0F/1g=; b=He5eyqqm/tjYcwldG5QXts6yHoQsJYb8HlRczR5MDJMmXNW4bd1xrvIwUgd8WRo0TFsRzu4XfyZ+CJW+uwFR2A/SDbSJPHlBEJmXobSno+zaIcjUjhcMh+CI8Bl1h4DWZIyGHmwLXTeL/U37nRHwX59SgEpRxnQAL3a9G8fXDaM= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1689677224382569.084174855185; Tue, 18 Jul 2023 03:47:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLiCR-00027Z-Lv; Tue, 18 Jul 2023 06:44:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLiCQ-00024v-8u; Tue, 18 Jul 2023 06:44:58 -0400 Received: from mail-db3eur04on0703.outbound.protection.outlook.com ([2a01:111:f400:fe0c::703] helo=EUR04-DB3-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 1qLiCO-0001xm-Qc; Tue, 18 Jul 2023 06:44:58 -0400 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) by PAWPR08MB9784.eurprd08.prod.outlook.com (2603:10a6:102:2ea::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.32; Tue, 18 Jul 2023 10:44:43 +0000 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f]) by AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f%3]) with mapi id 15.20.6588.031; Tue, 18 Jul 2023 10:44:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MHpUKeDIIolj2fvlat4Ot++u5zQHlFVXeb9DzXqWHIUXfuLAHLoYI3nH1GcLm5GfhdL5ynhcRFKHk8nOgtQwEJ5onVv/t4o+ByocTwkD03eApAdmYcij20vGV8VJ5A/EvLGkEi/V6BdzcLhVyoA95Y1KufwUzrwtMhQVtQAGkHk/UcZKcs+I1tC7AAEOJ7RZZj0RmsPPgNySTeFa4hY3hP+7yTtYG4Z58eaucp6l3JlqfnPQPMo3ODjOlzy3Ugb/8eWSynfa26swYJWju5rRa8jqJhLoNS6uRBzFDn4XUjArgJqLxpdVOYseCc9k2r3lXA3cJaRT9K9ECbsmK3Hy0w== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dG16+u4BMTFpxqaFYEey2g3N4e6uYVt8Sgm2cD0F/1g=; b=Qgb9T9k0nf6lJqPD01IYJ34wMGqghgRnz/sZj07sZzaDknQTK5hDhoZiaHdf2KA+zcCTLxq6pja3bo8n1uQGbA6+AsoUsZ2j4VjA8K+eQlhYqjejgmxmXOycKyMOWRA4yq4+qQPpaZRjtz58A9MlUSUTvwiSBR57f7RC9BBxQe7dSkV0FK52zeMWR0+j38NcJdEk/m4fSEdveyRFYSBVXvVvRTLZX7dkBE7MclFdVMkcq3epg3nCv8bqjz3C3GVLcT0WN8tCshX6+gvW13U9ZgVMlue1CnFtZ/0t26/Tm9s0tDJKNPdjP/RACtbFKX9brxi+5vL7Eje2XgDl5y57Kg== 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=dG16+u4BMTFpxqaFYEey2g3N4e6uYVt8Sgm2cD0F/1g=; b=xNk3cVNg716waLY6oZA28mH57svRERRM9V2exqmfQCMbEwJaeDUGnZMXc8k6z39SL585bzyIYVTpWcuZRJkxq0pdjHKQwdC88rwQeY6oDpMN4VH0APG5eOgkj22Jj9QGQwwY/ACk7npo18g4NjN1LFuh8NughAbZVeYYOTZHl81B71eFwaE/UfeMnwa08omohl03iNqjM9JxHNpxYdswPXEcJnXZ7xmnIO745W38RdwAlihTqGpN783qNHOcL4H47ewyEtN6wMSzYQUcrMMx8KwWpiQp19ug9eGYMP4mAqPzNngy4npfNkjFIp91D//buDWQU8N/Z/gUTB+Rh0B72g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Alexander Ivanov To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, den@virtuozzo.com, stefanha@redhat.com, vsementsov@yandex-team.ru, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v8 08/10] parallels: Use bdrv_co_getlength() in parallels_check_outside_image() Date: Tue, 18 Jul 2023 12:44:30 +0200 Message-Id: <20230718104432.1130469-9-alexander.ivanov@virtuozzo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> References: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1PR0202CA0001.eurprd02.prod.outlook.com (2603:10a6:803:14::14) To AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR08MB7095:EE_|PAWPR08MB9784:EE_ X-MS-Office365-Filtering-Correlation-Id: 6f1a56e4-f7dd-4ae4-6289-08db877bff38 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uwC/3uAsY2ovZYyBICLCwU98yTYasKrJWI7lrXhIzzY8QKt7I2TDmV9EGOuXYZQsUOrw5QNj0hg2h+N2LrTShDIe3IHzmQDWZMo3AZddwSem6IbWSK5h440cMP/e2HEftQiWO/FTU+zmes6Mi2XI9eEEI9n47Js2Rt7fY5zaWlYVSjxUt+BSYm2pzaaLFGqFtBaERZrPHvLq89c96tXnbP2b80p/F43ZsyzmlgXecmxD2k8XDeQYc1nJf5MZnG9pHBJQJ4AXQjT3+MaAjQBq/njWZac8CE4C1m9k9SgL/ircBxq+SYjfic3u5h9NW4VBwFTBle0gPJCwNK9NQmtd/peTvrtngqfpf9clRN8gHCVYwG2KjZOouIkoDr36CnnIHpZ8xGMsH8bnV4o1jirZxuNcgQ/YUNHldKxVBgS4sX/GykGGuGblGigbrhOGWvY4wczvO4VfZ3qwH6PdQftYymICAzScfoWCkCiPnfKRfA0tNKJvsB5FZ/SzT45CLp4SmUJ3m+8xq5g6lOFlWO5hm148FBUlDGOC4D5any0xuqxYr7wX35kC6SXYNiiH0OGdqa7pizU9Tk8MOA8eOCchEfB2gJZeb5wgFKLxjHvBWFTbofagijRPCChNlGyh+ufb X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7095.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(396003)(39850400004)(136003)(346002)(376002)(366004)(451199021)(478600001)(52116002)(6486002)(6666004)(1076003)(83380400001)(2616005)(36756003)(86362001)(4744005)(2906002)(44832011)(186003)(26005)(6506007)(6512007)(38350700002)(38100700002)(66476007)(4326008)(66946007)(316002)(66556008)(6916009)(41300700001)(5660300002)(8676002)(8936002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?uUhQ9nXT5vIs55hldmoHyd+bsXLcv4yONsi1Cktn+zNn0IeCzBrdDSl5kYGN?= =?us-ascii?Q?rAW6UtVgb9z4RmhVWQgv1wKeaxIAqCMWxRlsIAu2tEwrGItVdQQ6ml61o9YT?= =?us-ascii?Q?0XFgy7M2QA0mb4pywx8csZS9S0jottkqL00sFflYNo9KxY7HUnu3adgS3U6g?= =?us-ascii?Q?+Z1MozDvGstFkU0biwGQZGOte9OALer/uU2bzn4dYlTHqSMw6kJGQjCzVQe6?= =?us-ascii?Q?WpMmLVL4QlqJodEDLCXnoiq+i2nndm0KxerSs45XZt3oLyHe0I/aTmFS6z4m?= =?us-ascii?Q?h0SIcCpRikvm6wWjanDIe8tJkdc0nHX1jjom+oULL0dBkRzIrQsjS4KcsbaU?= =?us-ascii?Q?xUQH3Zx5uuqV4up8GJGeaC4BZyum9zjLVqSiBozw7Ac2VeX8h/wWBt8r6BY1?= =?us-ascii?Q?rcoQzghpGNqoAqybYvJP9Y8pQZHI3POHaFQUbIBO/sq4T5kVAJUM8kvz46Ep?= =?us-ascii?Q?hP0EWq4FJ7Gvb8D98WClHc71QkAzrhrdUiMETMlTzD3dRke5iqn+4gCDZukI?= =?us-ascii?Q?gcLBNJw4MiMpDxjF35uz3kHYlbRy9DP1A38lCiaNypyFI4j2JWJyjAZhuxX3?= =?us-ascii?Q?6wqRQq6mrWxbbDqMhsVLWn84jm46j1Zu+wT+EDjhTFrro7moV1d62L/MgQNL?= =?us-ascii?Q?JMFd+5sRTdWhhxTGBj1X3u+LqKe1ZLMYmKrBH/1NCleFR/253fri+5K/CsX7?= =?us-ascii?Q?cS6bNlaSs/4dYKl8SHl9Ubrsd5a4bBCEcGK1IDyZFAUyLP8IGjP8TvEG9Ih8?= =?us-ascii?Q?hs7T73C/jR/ZbsKFK+ljxv73Aw0wVkON8XbJHrLXdZpg+Ppecn/z268SQCsD?= =?us-ascii?Q?D4X0BZeT/w/AJ/vEoMX10o+gJjc5b48DpeHyfCbdExMRw4lBifbtwJ7MMD0D?= =?us-ascii?Q?NcPexCGosOAhjkDN7pe+BKFtW1uooUPltIi+Cnfibd9AuOE55DY9R5JTt2px?= =?us-ascii?Q?dtbz5A7JT+8ZjmONbA2cVpjAUaHLUYAXWqJAPh8lW82DS/SrGnNvGK7W/PbM?= =?us-ascii?Q?WvjiZ4FruqfEisOSaTOBIybOE3cAVco/FtuqJIydbj4IuDrDZxQrLz3mbU2x?= =?us-ascii?Q?2dWOdaw9K97PMCoXwV/oh36oAW+hkUFMpUiZM5b6JYqZXDMik8bLwqV3NTxe?= =?us-ascii?Q?nr5DHhkDp3POveEftCGXnFr5hKcclrHqbwG6f2F3jdSsdi+QsOkidePhFK6I?= =?us-ascii?Q?3tHpgR882K22xYKe89xg0p3edRh5t0ltejekuTJr9m37nWL6SJvp0alVP1id?= =?us-ascii?Q?yqm20TADcx92Ga9+WA/LMKr8H0Noq4oHU44va09HSB3y1+3t+Rn7md+fmeuX?= =?us-ascii?Q?DoWlcRwZqwtEHQCPnCEqWeUDgZJT+DjKBzps0uPXDsMRsm2zZLS0gVVJigTv?= =?us-ascii?Q?3s5qJoKKDZwm2GMEYCH6DujgWiCDnXrxK3jhGDq6xLE7x2ZHsuEQvxGtSQiM?= =?us-ascii?Q?JMKUVO76MxL/hjw/cz5b5/eZjcCaR1tckfu3F+FN19Q70OSW/0TByb7cUBr0?= =?us-ascii?Q?jVs5gzpYudM0hr2OdQ2YCPXjktSdtlJwDg191/VQimkiMVa1Fjr4frPuCOUZ?= =?us-ascii?Q?9wRVQhHoCd/x3idBGlvO9bp7N1NOJbYNrLGcUfrzhcEi+4MNryFocsz/4JKm?= =?us-ascii?Q?j4sUD9f6ie8wjJko9UFEsdM=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6f1a56e4-f7dd-4ae4-6289-08db877bff38 X-MS-Exchange-CrossTenant-AuthSource: AS8PR08MB7095.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2023 10:44:43.7080 (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: TCa0ewEBC5LZZSzlNqmHVwBzQTedvY/aFjn5m0P7J8ecjO/EoX4WTPAXTGcG2ptg0TU5euf4ySS+iMUZ+sdaZx3FTkWe9kkWT4ymU8wy4WQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAWPR08MB9784 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=2a01:111:f400:fe0c::703; envelope-from=alexander.ivanov@virtuozzo.com; helo=EUR04-DB3-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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1689677224918100001 Content-Type: text/plain; charset="utf-8" bdrv_co_getlength() should be used in coroutine context. Replace bdrv_getlength() by bdrv_co_getlength() in parallels_check_outside_image(). Signed-off-by: Alexander Ivanov Reviewed-by: Denis V. Lunev --- block/parallels.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/parallels.c b/block/parallels.c index 5100c8f903..3414807089 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -500,7 +500,7 @@ parallels_check_leak(BlockDriverState *bs, BdrvCheckRes= ult *res, int64_t size; int ret; =20 - size =3D bdrv_getlength(bs->file->bs); + size =3D bdrv_co_getlength(bs->file->bs); if (size < 0) { res->check_errors++; return size; --=20 2.34.1 From nobody Thu May 16 11:21:42 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; dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1689677259; cv=none; d=zohomail.com; s=zohoarc; b=EuHGvF4rAXRgfS3kI95PSOnDUcWNsdokhdWmC41GSUFzaGOLJOILPTWB9422f/PJBv8Ts0y0fTG5HnYHqxGxadZFArgtQAF9/BZUI4hYo3f8tUqbCtXd2SGiuajYMHvO8frY8mVtBhLYcgNTEVp6ehfI2Wwb1egIwVbEAQFLCW0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1689677259; 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=uK0ARQSPIAnqN6nVWlZhSv85vZIbJ7/VvJTcEBVsdGc=; b=JByvXmjI2Q4VKMHXGSv4H060P5XBuD5JMMKB2k+dqcTqAcxZ2Gab7o1U+DQT5fXf9OeMsH5ico15AFQRaNkwcoSGCxzYV+frf/OLayWshnVC66vXrd5FXc92tX2Lh7foGV/8tMe4pDQEQ3fbQsVkzsh+hNe9iPOZMsV8p9mpBvE= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1689677259517924.1085432316673; Tue, 18 Jul 2023 03:47:39 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLiCN-00023S-QQ; Tue, 18 Jul 2023 06:44:55 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLiCM-00022j-GS; Tue, 18 Jul 2023 06:44:54 -0400 Received: from mail-db3eur04on0704.outbound.protection.outlook.com ([2a01:111:f400:fe0c::704] helo=EUR04-DB3-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 1qLiCK-0001yi-VW; Tue, 18 Jul 2023 06:44:54 -0400 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) by GVXPR08MB7894.eurprd08.prod.outlook.com (2603:10a6:150::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.31; Tue, 18 Jul 2023 10:44:44 +0000 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f]) by AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f%3]) with mapi id 15.20.6588.031; Tue, 18 Jul 2023 10:44:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UjD3GUCRZyvgkRaLfCRNIBm1cp7KqQsX25DwBrO6IukRentG6gBFWWR/w//1ORphml0mNDut3mrdKew9r+qzCQ2SHrllrASaYHLpYhV19ry/UjpaapJtPsmWDoMJFqt5ZM6myaI3n/Pw4+MKJICE+RlyiXgn3/jdpfmXvgG0xyog2BJzBXmsSUFvPu6S50oMFSqQKp8W4uKLrDZIlmqEVQD5Pm5p15iS/rVycFO4yvOkjjIr8mr0osVMUhwqDSPvjof8MNw2vL4DcrD3UuF/9H2qAN3QLzx6fXS2PYa2FV5YaHlTDlFQy3lUSac7dVlWOTg2XsX+IXdm4kdqJ3p/Gw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=uK0ARQSPIAnqN6nVWlZhSv85vZIbJ7/VvJTcEBVsdGc=; b=h6/S46CkMt3GQ7wpBXz3zwTcR2GhOdD5XWX+QIIteEm+r8X84vgvnoOow50QCP2TEjO0sGJvnIg3KVpGY+R/PxIt1fS4HPzvlryOHLoPSVXZy5qDqQZUtL7rurC9hls2+8xBd5dwkUPYBJvWX8tzdkp7sMQwEfFw//KIEN6I3c6mugYm1E5jrXClJPvcNEptiHQZntZesiMGbk3kRQFrdIIi1jXV6Ex+Z75ixQuGjCtbEzcD/fe99ja7z2mpjyJe3W7v/Ej+GIbMGkJkk0UwGeB9q0z64hqbD/cr4/FchBDi0blIy5RY6QD/GaXmt9zIjbMUuN3KXz0pRCz2RRlnFw== 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=uK0ARQSPIAnqN6nVWlZhSv85vZIbJ7/VvJTcEBVsdGc=; b=f3UCveLOPrGXHS1KS+jyr4GXdOgVIz0FRPW943PAumNj0Y3lBwSkwpzfqT6XBWRuSZ/XP9OdJW4bbxL5R0jnBrFZbOgRdSjHBrTlh+MYUNFrGctH/lkKsC18HmYYri2UG2nJjme924kK92NpvHXeRb+rE4BSvKU2rHIR/JNTFDRNFHfZXcEcqylVmsaXe2gqQvZXqG0aU8k8tAUzxmWYoKqfKFOpzBl2gGjtA5JYmtmA42QMUCJmnnQPtElWNOt3s/BeSM/sCw4Sq4wJ+tyG8XXV6PDOhb2tea780eeYC2rFNZLqLaiOFN5vRUE7f+Me5v3vDhNd65xAf+UcHxKJyg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Alexander Ivanov To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, den@virtuozzo.com, stefanha@redhat.com, vsementsov@yandex-team.ru, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v8 09/10] parallels: Add data_off check Date: Tue, 18 Jul 2023 12:44:31 +0200 Message-Id: <20230718104432.1130469-10-alexander.ivanov@virtuozzo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> References: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1PR0202CA0001.eurprd02.prod.outlook.com (2603:10a6:803:14::14) To AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR08MB7095:EE_|GVXPR08MB7894:EE_ X-MS-Office365-Filtering-Correlation-Id: 6e4443c8-cee1-418c-f7b0-08db877bff92 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: qBPCU3aT442MEH2p+ob5Phha6Jrl1zB/8OfpxvsnkJRUsyXYUrYTpwbfxf5UfuDtFadIcyp3DHO4+TO+69vvlJzi7PSZkMg9XeHREexjfjFsE5VxbSXOKI1AT2UFKfUeZGEUjrKOAw5yEdeYeCTbOZOSbk+n1YD+wKWcHgMKcZv3grizRlIOt8x5xj0a9ycpW91MmbE4t/Xw+huZ2idrwsUWJjWxb4BazTOe5BpAeqJvJq+l0DcHVWzPUCljeIuzusKvuAqjGcKwa4poSyz953hhtROQgXBlTI3wqObw2sPR4MtYQuTsa9xwwVKqt6UY2uOAlm5qjZ6KsC2fu6mbJndL4rwaKVeTgyXJGnjPXrMA1l0FJyK1Siz+qXFWYIM78YxzT1eIUA4kR9wuR7zmy7Pj2A2tFNwqez+RLmmkaa1Mu7KhWTnfJaPnkdAVHditN/f/bKtTk+x/0vphcTxxHIKTbSlFdwRkCEwpB8clbJkTnieIoHJ2vM/70GJs3l4HdvpepoCv3aTLWJtBCgbqssK61QbwytMaoxXRekY72ADja7guknapUhQtQIaEER8q97yJEIb1QEsIv/wCrOji++HeqJdVcUT01e5v9EsQ8q9J3JjyZhlgi2GbUZCh5J+c X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7095.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(376002)(136003)(366004)(39850400004)(346002)(396003)(451199021)(86362001)(2906002)(36756003)(44832011)(6512007)(2616005)(186003)(83380400001)(26005)(6506007)(1076003)(38100700002)(6486002)(52116002)(6666004)(38350700002)(66556008)(5660300002)(6916009)(478600001)(316002)(66476007)(66946007)(4326008)(41300700001)(8936002)(8676002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IIkiwBgEBksI+YQwcp94pkrH4DyN3lEsPhVmv6KB4MrJuD7l0itofXGClSaW?= =?us-ascii?Q?zFe7z9HPNK8mih8LAPrZ60Ezo3pJaph27f3dYQgr/HiNYHfWN2t6OWsOhOU7?= =?us-ascii?Q?uk1BsZk9dYa3ajjPbeAT918dteQq8VQaxqhiaR9O5BTV4yWa16HZn2xL9I9X?= =?us-ascii?Q?6c1SZmRkxJmSetASZZhOsY9NaSohnKlN1/0QogwSDmIjYoWEni5Dc5arFgs/?= =?us-ascii?Q?RdvOU5kCormhAK+kORrdrdfwyYpiaixP/KLtee/a5r+zzK/gnOYhpX9mRswV?= =?us-ascii?Q?KhQQLJete85A1v703D/yLyH71YZgoKOdsfgzMVA1xT3h1C5Am/km9+4tqqjw?= =?us-ascii?Q?Yex24WCw7NrVmB/zZckuEOja7b8ga3WysUdlg/3rLlr4+cIWGeaW4Szs6EGR?= =?us-ascii?Q?7D7rEsjrfjrrUrby/XnL4S8I3epzEBVTkzET1n1N5azOtWSESZaT4/TJHYsL?= =?us-ascii?Q?Qvtdxx+GI6gsq+XVhQhNlrFStXNh3T5XfHEHp7knaLu42Pw5wCZEQtZp+3A+?= =?us-ascii?Q?bzQl6c/Kv6uSvfimoD3NGFbs8DzaZ+9pGvOOqIhg2DdI0jbPsC2NracW5jMi?= =?us-ascii?Q?QFQQmumoa2hsAnlFFvnVNE7bC6hCalfoBhYBR4W1XJox+FcCrNDBVkotXCDs?= =?us-ascii?Q?3MdiHR4U4DnzgF2CBc6w4DcPjVypOifSuzzdkUXSkqtuB6HNCjVVt9GZOV/0?= =?us-ascii?Q?v5KjjS17ER85S/eaERAj8UMSXko816POLhhCqlWCwK9tjx9SUToQbOCRNA/j?= =?us-ascii?Q?ZI6AXFqW0F/0mEanb068t7IUYOekq1EDcxbyCBUhgsANKdUWZHXSNemTr6wn?= =?us-ascii?Q?NueuHcPTGIH555K/GSVMRaK8h+rDFhg9K4md5yuIWnRUTTPkjwuN3n95rn3h?= =?us-ascii?Q?zat/P41zzNkHJkf6U67FRSfUaRHf9qw/GrNduvH83uL6frtOJFLDqNiXY7Wi?= =?us-ascii?Q?XDGr9Hr4/rT2BSJ8mOuyaELAI2IvHmviicrjO4AGfypWOzKDq1+rt8LR4H5e?= =?us-ascii?Q?Xi3at3eCrBRY7LN0istn7cNH8QxOoAz+u19dKDQGcYxw04TaGXHIaBH8GbRE?= =?us-ascii?Q?ofHxJBHw86hRpbd2AyuS1d4ii30AH5CRjChS9chBizHYLQUqJa5AkOEZ0o34?= =?us-ascii?Q?ynrxwF9niyHE0cvjhJIQnRAi9YYzKGaGa0LY03A75OZVMacuzESoGYd4x3v8?= =?us-ascii?Q?3Xiec9OynltJIKtjMzo3u+x/2il8hAVU8YgqwhPyPcMBDlGGAFtdKds1OwgR?= =?us-ascii?Q?cl2CKtcmNVRLARe7BqmIYEEaePv4pf/qY1YRpzgwHeuNKcZRXRMecP9z4AR0?= =?us-ascii?Q?bpR+v6f3UbJgW1pt18Gx1SrjjUQFfyfCNqm+1icpE5QQWfFjKKC98h0LcelO?= =?us-ascii?Q?WRzuRcMKooIywOf/DeNaXpE83lTgnD2GPdh2Il1unNE/v1+WBkGVZnG9kHrV?= =?us-ascii?Q?y5vOxIMOqYa/Nra+qMS5C+LaKSOXLuQ/XlZ8h5kgRNbkcqTTAsfFg0LnFI32?= =?us-ascii?Q?yRZyZ8e25fZFcHQBF5EGn/UlvuAXaW1JP+DWkbvd6SSD7RlI2waW0d4FpInN?= =?us-ascii?Q?NIEhvP+JeuUDk8upX3vAd8DMNQHS3X3EZM2weCkF+GqyhoSO0BH1WdA5c6Ig?= =?us-ascii?Q?mM2xSnq3T5BwY6SAt6xSkmk=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e4443c8-cee1-418c-f7b0-08db877bff92 X-MS-Exchange-CrossTenant-AuthSource: AS8PR08MB7095.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2023 10:44:44.2528 (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: uqcflEiPGb7qRu5oiydUlyy7ZzI5U3/1CJDzv/RqU8Tq+LyzgBKO/GDYeueOQ427l9dkCyzHIu72skseBLZMilee0rr7hpbbvNRFnJKgRjA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB7894 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=2a01:111:f400:fe0c::704; envelope-from=alexander.ivanov@virtuozzo.com; helo=EUR04-DB3-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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1689677261078100006 Content-Type: text/plain; charset="utf-8" data_off field of the parallels image header can be corrupted. Check if this field greater than the header + BAT size and less than file size. Signed-off-by: Alexander Ivanov --- block/parallels.c | 80 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/block/parallels.c b/block/parallels.c index 3414807089..103acb7b40 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -450,6 +450,81 @@ static void parallels_check_unclean(BlockDriverState *= bs, } } =20 +/* + * Returns true if data_off is correct, otherwise false. In both cases + * correct_offset is set to the proper value. + */ +static bool parallels_test_data_off(BDRVParallelsState *s, + int64_t file_nb_sectors, + uint32_t *correct_offset) +{ + uint32_t data_off, min_off; + bool old_magic; + + /* + * There are two slightly different image formats: with "WithoutFreeSp= ace" + * or "WithouFreSpacExt" magic words. Call the first one as "old magic= ". + * In such images data_off field can be zero. In this case the offset = is + * calculated as the end of BAT table plus some padding to ensure sect= or + * size alignment. + */ + old_magic =3D !memcmp(s->header->magic, HEADER_MAGIC, 16); + + min_off =3D DIV_ROUND_UP(bat_entry_off(s->bat_size), BDRV_SECTOR_SIZE); + if (!old_magic) { + min_off =3D ROUND_UP(min_off, s->cluster_size / BDRV_SECTOR_SIZE); + } + + if (correct_offset) { + *correct_offset =3D min_off; + } + + data_off =3D le32_to_cpu(s->header->data_off); + if (data_off =3D=3D 0 && old_magic) { + return true; + } + + if (data_off < min_off || data_off > file_nb_sectors) { + return false; + } + + if (correct_offset) { + *correct_offset =3D data_off; + } + + return true; +} + +static int coroutine_fn GRAPH_RDLOCK +parallels_check_data_off(BlockDriverState *bs, BdrvCheckResult *res, + BdrvCheckMode fix) +{ + BDRVParallelsState *s =3D bs->opaque; + int64_t file_size; + uint32_t data_off; + + file_size =3D bdrv_co_nb_sectors(bs->file->bs); + if (file_size < 0) { + res->check_errors++; + return file_size; + } + + if (parallels_test_data_off(s, file_size, &data_off)) { + return 0; + } + + res->corruptions++; + if (fix & BDRV_FIX_ERRORS) { + s->header->data_off =3D cpu_to_le32(data_off); + res->corruptions_fixed++; + } + + fprintf(stderr, "%s data_off field has incorrect value\n", + fix & BDRV_FIX_ERRORS ? "Repairing" : "ERROR"); + + return 0; +} + static int coroutine_fn GRAPH_RDLOCK parallels_check_outside_image(BlockDriverState *bs, BdrvCheckResult *res, BdrvCheckMode fix) @@ -713,6 +788,11 @@ parallels_co_check(BlockDriverState *bs, BdrvCheckResu= lt *res, WITH_QEMU_LOCK_GUARD(&s->lock) { parallels_check_unclean(bs, res, fix); =20 + ret =3D parallels_check_data_off(bs, res, fix); + if (ret < 0) { + return ret; + } + ret =3D parallels_check_outside_image(bs, res, fix); if (ret < 0) { return ret; --=20 2.34.1 From nobody Thu May 16 11:21:42 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; dmarc=pass(p=quarantine dis=none) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; t=1689677154; cv=none; d=zohomail.com; s=zohoarc; b=AS084SpjEmSPsV/hwN08+e1rpvn0APEkrS+kCw3jp9EJE9c2o2ZFvvMpZOJZOXQsDfIg/qG9Kk0/FrXCiD4XQ0bQkxkGliIfEl4SVlyKzYfPHHG+gmlfGhxRwSLSBmxPP7EqPB8mokyslheCXV/OCCOnydsH75eKhns9O5HoQlU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1689677154; 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=7BPX9ZxvIk/vuOmfPWHFCN4M3fikoFLGEUDvVWdKPNU=; b=KCfwBdmEM1EVCvA2lzm90i5MayVREvwp5cbg58wkYsmaq5e6f8VVflpAu5WDuAS6W2BBG1AFT6X5SogwBrmCcrRLScrv8944ZASU1IC1tMO365YTKEzJlxwar4UTm7WLr33EorBm1NIyB0DYsT2H74z0PLhrImRxgnpHa2o2kUw= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1689677154594586.3804364909516; Tue, 18 Jul 2023 03:45:54 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qLiCS-000282-6D; Tue, 18 Jul 2023 06:45:00 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qLiCR-00027R-6W; Tue, 18 Jul 2023 06:44:59 -0400 Received: from mail-db3eur04on0704.outbound.protection.outlook.com ([2a01:111:f400:fe0c::704] helo=EUR04-DB3-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 1qLiCP-0001yi-KX; Tue, 18 Jul 2023 06:44:58 -0400 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) by GVXPR08MB7894.eurprd08.prod.outlook.com (2603:10a6:150::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.31; Tue, 18 Jul 2023 10:44:44 +0000 Received: from AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f]) by AS8PR08MB7095.eurprd08.prod.outlook.com ([fe80::f4dc:6db6:8d7b:111f%3]) with mapi id 15.20.6588.031; Tue, 18 Jul 2023 10:44:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QO4eXZP/ceO5vMWBCYOw/p7CN6YImqprl9HRAKBmv99cB8yjQexZIOxLLWny4S7NsmAcLUbOxHBErPO2lXGvtCY0a8pMH9WPP3yN5M6cXyELMvHd5/hQngsiuIJbChUccnhxoUFoKXheSrm0wY4W6QQZnTkM4wld03Ijlm6CjvQbt6Vc3VoPtj2HW99E/D6ruOAr0x9o1xchyd+7F1ym+gw2B15VQQQ/CebRNR2cm/WzWEl5yCMxcCCTQYbdcsiVwn3Hcge13NUg1sIOuq1/uhxVPNmrSFOIani6TJahTSWxFRh5iN+PtvhfIcjvlcGRlXh/ojQpMpmmpEYZ1oB9Fg== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7BPX9ZxvIk/vuOmfPWHFCN4M3fikoFLGEUDvVWdKPNU=; b=WzeH+YYnuq2Hzm+v5ULNDJ0sz5PbTR47e3T83r0+8yCx+ji2KpgNrdGr0Coi6MuEZMv38BjzjOtlDYzt0u8Aoz58DBtLDKHsd7TpqQUSyoRwuTyKd0ab1kX+ZpLftx1VR+msQWpcwLvZPDzIm3wlHySKLRgyYVb7kErxQDRuIj6JpSQBOA/t8pGZiZlZ1IzlHSFXttEqu9ZcPlz13LvAYf2KvToNhrno6SmYMc8L9Owyv09UMTg5+H1cMVvm0GUqUhzw8wijEObi1MMPZKwKv8FkElEp4raL86IRK6vVrtmNfSPzyB5puf+Gb6KBll7nwQLWMPdUfVLlfgd4kc5yMA== 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=7BPX9ZxvIk/vuOmfPWHFCN4M3fikoFLGEUDvVWdKPNU=; b=E4BjxyaKUuEbkZn9XO0SzfxuWDSSzVyYQP27gaRxxnLv6dqy7LKtWZ3hvI/xcXDTi5GqQaSdxswd8q9elAu8+zuNOp0x7BVV7zmR8XnSnlKOr7dmOTlUqcAxUz1jh7PtCaUXOMXtHsVqDD9tSpOoUrBrN4ipnG5DRoKEcrSMe7kwzL0wNOG/2PMvCTB8yjUW+9Vq5cjm+WoSlfzB9UrviVff+xx32nnVuOIJBynqHsh6/5sReFI/PjFOcy7ESrGrgMiqvrUwKbXyS2sTMoDb8Z3g6LHxLyMAhdoji7VMOaPEP5SdE5ssGPHIjFqRV0WzVSv//AQwgV3LMlnQkDT08g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; From: Alexander Ivanov To: qemu-devel@nongnu.org Cc: qemu-block@nongnu.org, den@virtuozzo.com, stefanha@redhat.com, vsementsov@yandex-team.ru, kwolf@redhat.com, hreitz@redhat.com Subject: [PATCH v8 10/10] parallels: Add data_off repairing to parallels_open() Date: Tue, 18 Jul 2023 12:44:32 +0200 Message-Id: <20230718104432.1130469-11-alexander.ivanov@virtuozzo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> References: <20230718104432.1130469-1-alexander.ivanov@virtuozzo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: VI1PR0202CA0001.eurprd02.prod.outlook.com (2603:10a6:803:14::14) To AS8PR08MB7095.eurprd08.prod.outlook.com (2603:10a6:20b:402::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR08MB7095:EE_|GVXPR08MB7894:EE_ X-MS-Office365-Filtering-Correlation-Id: 35053f14-2c2a-4664-03eb-08db877bffe4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: w2Xw+H87YH9gJX4wBgPGZdYahgMW/EHK9bLcdPpeGLiRiP5HHtMsH2rSmbEl12SoTdFbukLdx5y1TsQxwiqNfPi8/tpIIOywN/9oGIjvA/clh1bw5eYdoDr4WvqaPYjmiOc8zDUS/q9iFLelztFIgdemgzuJdJnhoiYhm5I2NNIHgWCccb3cefQDhUQ/y/86OBUkcUJIHPvF6+KFYB5deHfCFLA0gx+4IqIHy7TqqAwFI0sc4JjlKIbMhogkANmYIucryBMX/dxOaecouvxJ2eEIAycuEyX/9N+ZoiXde8M7hnoa1hDhgfOrTYyXvWj/H+cH+h568evFXctSfArf5INj6xpTDjhJw7m13JOrsv1lNci8v/TOhV1+X+X/bJ4xoxWY2QqxFTKzhmB6ODHlJfGHWFzJg6otOJfMgkravbXLd16d2cj7AnwvoegC/0eb/jHvmQQwK/CuNFec0PZNp1w7Xpe0UXoFxnGRk65rPApbSvJFo+EIJh3hYSPKEgAIT6lz7QEdi2EJxD+EQ0GMp9W237rcOTex/gR7rQ6BEhfZnx37XRJ20mYzdFgC4Gu1bWoODEfdkqXJR2XL1n4xO1AlhZ1JPubeTSEKNurjmVt4N/05rx17qOqTuHWqA2iZ X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7095.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(4636009)(376002)(136003)(366004)(39850400004)(346002)(396003)(451199021)(86362001)(2906002)(36756003)(44832011)(6512007)(2616005)(186003)(83380400001)(26005)(6506007)(1076003)(38100700002)(6486002)(52116002)(6666004)(38350700002)(66556008)(5660300002)(6916009)(478600001)(316002)(66476007)(66946007)(4326008)(41300700001)(8936002)(8676002); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?A1Dj/44r5YJBSrRduAudSLxZmtjSh7wL4vRucveXMwUThLvsMGJtyIMNudy4?= =?us-ascii?Q?senHuzyYjWyGdGh/XyMUvuxd4/emnek3I0QdahrOSto64sZabK+a0KHrsEoU?= =?us-ascii?Q?7hdbYKnEVzGzncVWp/qhk57WujyWCptRbAlD3XozXVyzS3ug7kIbFjL5awrp?= =?us-ascii?Q?fTt3Vd6GmebDsEm9HFJJSsuVwDHSiFlgkXZvodprkvTndPOWZPUa+GMWIvXD?= =?us-ascii?Q?9U+mLT4dCWDPeoCaezdNUY2m9yeOeXlMo3mj5k5v4EJXHaApYhH8TrUx1uV8?= =?us-ascii?Q?wmoTJ89z+wWUhwt8jneGvHDrnbS+ksavMoBwOI8a3cihfylkVMgIN+bfZC7v?= =?us-ascii?Q?poLpvYiS1Wsfu7d2dLWefqoHrZUtMh3XGlXNX22Nww3uI29yrMaNMznqBiLK?= =?us-ascii?Q?KDEsjzy+YxEprbWSpZcU2yQJqhSGLRXYEjEpNOnxt0q/WLgCtno+JUf84Iqq?= =?us-ascii?Q?gPJaDpMa3zzRcnD5emzdx6VW/N46tIFMCf234YFHr0VU7EjzTBIX06IvgC0/?= =?us-ascii?Q?bKXwdBcZpiSnqsG/FEQhSbw72NigLUfecQPI5fX0T6Ynx1mTW3/KReAaIVXg?= =?us-ascii?Q?gUC2uSoU2qz/5F7AOAssms4mHuDSTEBPjUXUDuzWsXWIlT2hNBQjh6e+PWc0?= =?us-ascii?Q?UT1wkj8iADrqw5y8IZq2o5zJrfyFt6nio7/OpW7V3EvPSVM55D4Nzp+wgO2u?= =?us-ascii?Q?AO+3QnskRyfOn1QmVzY9k4qrgRxt4UbO8C229rC/znr32Gt5regaOsAkTDzA?= =?us-ascii?Q?C1cWy7BF9ufqLNk5Vhgw9f8rJB5EEABKCwkPn0ygBY9H/hH1/hN4CW08rjNP?= =?us-ascii?Q?d1SFVTep4pFz6IEnKAaDon5zKa+N9vZ2ovspQL/zulbOU1M9nN+2t4zSdWxG?= =?us-ascii?Q?yRK6QO5wYya90m7t67Srwl2imCrwmh/mg2aW8ZIZxLLAmWB/56aYh3XjrojF?= =?us-ascii?Q?Vl0Y1R9Kq8xmENieNZDjoQI5J2Ayr7qyQM4Sa2fm3Ixjl0x0To9fY7N3PkS5?= =?us-ascii?Q?w4oWcF/EnW/X8Yky8ivsyLom6dNTrDc8RhjKM8p3Cv2/TDYaUt1ngbCey0Cx?= =?us-ascii?Q?INi22f/KVfquFbNZ/YIb7HdOUVJ0VcWdUBmHh0ZVFi20lMWiVH44ewc2+xVh?= =?us-ascii?Q?kjnVv58IhX2subYJCHxHujx5rpqtGwOfiEjHp4ZUYoitXAqieUoMSsBb4cLY?= =?us-ascii?Q?1xfZeHps1U1T/bSJAkWz2DALpfCfGXnS2M3NtpImWltfi5dWWcpA8xWFBOLO?= =?us-ascii?Q?5cWVX1p800WbQ353PWevucK1nDryWCSL0FhdWRDRg7/OuZBLRJqecLD+MGqE?= =?us-ascii?Q?NKtcW3caa/y9Zbha4H5+1yrS9G4kl38hZbwp2X5TeOUlXXBqIF5qgKqiPmTR?= =?us-ascii?Q?/bWvQz0/MN6gnY6shfgAMeVw1q0VpnipUaZXjUf9Iwf+ZKgX+cDdYyzV6mNu?= =?us-ascii?Q?QHg7Ko1s/rWZhqdkHjqd65+IcoIkXtxAVVLu5yIL48R5nVwsBkiyphOtnvK7?= =?us-ascii?Q?L9AcwK27+MdHWLzUYykYyGjDEDnSx7NvLTbiIYol5squitODPdvSKU4UzLY0?= =?us-ascii?Q?zT6qyg3qtgI6qvh8+gmKGzWUabz2Xgqe36rEU3jOycZG6LEtqSFycW36vlz5?= =?us-ascii?Q?a0rMRcH2NWDyC0t6SlYGQVQ=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 35053f14-2c2a-4664-03eb-08db877bffe4 X-MS-Exchange-CrossTenant-AuthSource: AS8PR08MB7095.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2023 10:44:44.7849 (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: oFK/ojl4G1FYZODI0/CbSqdelhytTSaR999q/KO9d6IvqwUq5AB73C+VMY9rZTVJ1yIpgnXN8hIHLisvL8rWdfrMsW6uiZprVAcMoYFFbt0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR08MB7894 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=2a01:111:f400:fe0c::704; envelope-from=alexander.ivanov@virtuozzo.com; helo=EUR04-DB3-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, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 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-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @virtuozzo.com) X-ZM-MESSAGEID: 1689677156743100003 Content-Type: text/plain; charset="utf-8" Place data_start/data_end calculation after reading the image header to s->header. Set s->data_start to the offset calculated in parallels_test_data_off(). Call bdrv_check() if data_off is incorrect. Signed-off-by: Alexander Ivanov --- block/parallels.c | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/block/parallels.c b/block/parallels.c index 103acb7b40..48c32d6821 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -1032,9 +1032,11 @@ static int parallels_open(BlockDriverState *bs, QDic= t *options, int flags, ParallelsHeader ph; int ret, size, i; int64_t file_nb_sectors, sector; + uint32_t data_start; QemuOpts *opts =3D NULL; Error *local_err =3D NULL; char *buf; + bool data_off_is_correct; =20 ret =3D bdrv_open_file_child(NULL, options, "file", bs, errp); if (ret < 0) { @@ -1092,10 +1094,20 @@ static int parallels_open(BlockDriverState *bs, QDi= ct *options, int flags, ret =3D -ENOMEM; goto fail; } - s->data_start =3D le32_to_cpu(ph.data_off); - if (s->data_start =3D=3D 0) { - s->data_start =3D DIV_ROUND_UP(size, BDRV_SECTOR_SIZE); + + ret =3D bdrv_pread(bs->file, 0, s->header_size, s->header, 0); + if (ret < 0) { + goto fail; } + s->bat_bitmap =3D (uint32_t *)(s->header + 1); + + if (le32_to_cpu(ph.inuse) =3D=3D HEADER_INUSE_MAGIC) { + s->header_unclean =3D true; + } + + data_off_is_correct =3D parallels_test_data_off(s, file_nb_sectors, + &data_start); + s->data_start =3D data_start; s->data_end =3D s->data_start; if (s->data_end < (s->header_size >> BDRV_SECTOR_BITS)) { /* @@ -1105,16 +1117,6 @@ static int parallels_open(BlockDriverState *bs, QDic= t *options, int flags, s->header_size =3D size; } =20 - ret =3D bdrv_pread(bs->file, 0, s->header_size, s->header, 0); - if (ret < 0) { - goto fail; - } - s->bat_bitmap =3D (uint32_t *)(s->header + 1); - - if (le32_to_cpu(ph.inuse) =3D=3D HEADER_INUSE_MAGIC) { - s->header_unclean =3D true; - } - opts =3D qemu_opts_create(¶llels_runtime_opts, NULL, 0, errp); if (!opts) { goto fail_options; @@ -1197,7 +1199,8 @@ static int parallels_open(BlockDriverState *bs, QDict= *options, int flags, * Repair the image if it's dirty or * out-of-image corruption was detected. */ - if (s->data_end > file_nb_sectors || s->header_unclean) { + if (s->data_end > file_nb_sectors || s->header_unclean + || !data_off_is_correct) { BdrvCheckResult res; ret =3D bdrv_check(bs, &res, BDRV_FIX_ERRORS | BDRV_FIX_LEAKS); if (ret < 0) { --=20 2.34.1