From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (mail.openvz.org [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id A152A8045D for ; Thu, 22 Oct 2026 13:16:48 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69MDFY2t008732; Thu, 22 Oct 2026 16:15:34 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69MDFY2t008732 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="YsHUzEa2" Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69MDFUoJ008728 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Thu, 22 Oct 2026 16:15:31 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69MDFUoJ008728 Received: by mail-pf1-f200.google.com with SMTP id d2e1a72fcca58-8a086ed8980so684086b3a.1 for ; Thu, 22 Oct 2026 06:15:31 -0700 (PDT) X-Gm-Message-State: AFq9FYL6mO7fL7WtAZHNwan5+OqyXKyiqefD5SgEnl81INjlm2E+aJik tigjpYGErU15qDhB5nLin4ge5YwSO0EzLo/usIerlnVOkR4k9a8aNnKhdHMjFkFvd9o9W2ygMGF +pun76WesgHTwmAZ2dPPvJfPA1q4h6nvcDGxLJo7AbTxSN5DKM8IU0g== X-Gm-Gg: AYBFou05DcRZ6e93mGZ0zAG+uOk0a4QDQtRh92GXAmwE6Sb9C7A0DFwj7TaE3oeCdgH Gkvc1R4BYuHlwlRtZrdOW9ym/SI3oddZb2nCLPmip/KmzDziBs/uukolGKT4MVRoHYcJZDBqO9r hSUijt3vDAazu1iG9/KmVD17ITACGLpVA0P2G3iC9GBwqSywSYDJiYIKOfZsbB1QNZduU09DO9k fyBSPYwKKDN7pFheV3CbRMmic5tvlmLsr1eftM5J8FmO1uCghGsnUp6kgUIuYXxfEJvL7lzfRpK DKCnNj0yCf4gQVUsF+SJItdlP5jX9iMRaItoQSRkyApWNUB7aSLXerPc8aDZrNZl7r5ZnoPsQnP aQQF4FV+xYtFvUUKPIv2DV36iUiEgJX436TUcRdhulugKQ3J+hqzymItp8eqUl3hb/UH96F7JZe hRZfyH9/++G5uuvk/sIHJf0351228sK8s= X-Received: by 2002:a05:6a00:1d26:b0:8a0:5f42:a482 with SMTP id d2e1a72fcca58-8a0a04e4a26mr1502228b3a.43.1792674929980; Thu, 22 Oct 2026 06:15:29 -0700 (PDT) X-Received: by 2002:a05:6a00:1d26:b0:8a0:5f42:a482 with SMTP id d2e1a72fcca58-8a0a04e4a26mr1502194b3a.43.1792674929343; Thu, 22 Oct 2026 06:15:29 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1792674929; cv=pass; d=google.com; s=arc-20260327; b=n7WZ37/ApiDUrGqwRrOPi0EvXftgeb5amFXpF1L5mQbhSdb4aVlmKbCuQYv86A2Baq QGr1Poc5ufPxW6Zt2+fkYjYqUqpRHr0RIR6UgiEyPkLYRxBgr3Hsb5R4nR+oMkhtmmj5 7P5NrTRbGPOcLX7Rrm/TRsu9zIxyJaOAcRdfKel+avrM7nKYeAIsH7eQzh/6bzjAh3Vp WmIBu1ba0aGuZ9CF7UmICcWwT9LjNCOwdgjI6Iu4Z1k9Wp0vKgjBVGsRCsGM48EUTk9l fChqaG4gyIaseueIzvE/ldnAVgbnEMwmAIFTyg2L8OXtjz64wNqb694Q/9C6xLwpBjZg 4ShQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:content-transfer-encoding:in-reply-to:from :content-language:references:cc:to:subject:user-agent:date :message-id:dkim-signature; bh=kdTTfmjlUuyNJhlM/0a0KSUdAI7Eqq5nOCFcqgVqXBM=; fh=IlzoM7xapMIT9vjIu8V1YxnmOSGAT8hvLuDm+hjUGIo=; b=FaoX6KFA/ahTfkcKLXjC/CmOlACpD5iYDzGjoQ2h27RIU9h6mR/jFwc+VhyWfjx8Lz ivhh2YNeIAA5L2bWerL6rTKWJvcVfeUGr9gYH8h+jl+mwsW2XIMwnGnsstoSOi3HvfaG 84O7INB2U5bLKl/k3ergfVoIfZkVfankvoU1SfUFn7iwTU/dvwg+5I2gICxlbvo0RHfG Dtj5AH1A1uvsfNo7RvzVxoFtLdlnXEJkpzioudTewwK3yAcnp9pTWka4EpaDZoGO1X7c t+mqFecTUqzqXbRDLIfxKIKkxFUf24IGi7k1VxiMWSHprBnxtb8579+hBTXp8U6gEA61 GX8g==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=YsHUzEa2; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of alexander.ivanov@virtuozzo.com designates 2a01:111:f403:c20f::7 as permitted sender) smtp.mailfrom=alexander.ivanov@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20f::7]) by mx.google.com with ESMTPS id d2e1a72fcca58-8a08927b07bsi8697982b3a.0.2026.10.22.06.15.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Oct 2026 06:15:29 -0700 (PDT) Received-SPF: pass (google.com: domain of alexander.ivanov@virtuozzo.com designates 2a01:111:f403:c20f::7 as permitted sender) client-ip=2a01:111:f403:c20f::7; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=YsHUzEa2; arc=pass (i=1 spf=pass spfdomain=virtuozzo.com dkim=pass dkdomain=virtuozzo.com dmarc=pass fromdomain=virtuozzo.com); spf=pass (google.com: domain of alexander.ivanov@virtuozzo.com designates 2a01:111:f403:c20f::7 as permitted sender) smtp.mailfrom=alexander.ivanov@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NP9dI6wmMxid7szZXit952YxWudXIb8N/yO4MUOrMsL8qywD81fDZxEddWSXb3+SfPVlNDn1xPE4qrRwf+cmZr7J2ioiF+jF71WmkErNyG60muKJ6saMqs8l7a0bF9mt14aryYSsHxehwdaS1sAucxFHWi7aGkQn11gzFMVh5NwlmO4PXuax/vEBH5Bo3VzyyUcIMN0BpUqJ0EgyfyZrPU2fGZXQH4a2IWHZQrcJT7/7u95qVuY8R9GxxPNTpYMu0XDOb3rc0rYg8hr/B28JKFzPN0QC0iHbiLXxI4oupsXYzuWjR0gzOgAquUZoieTP4DJouFbWzMliMbvWjIR51Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=kdTTfmjlUuyNJhlM/0a0KSUdAI7Eqq5nOCFcqgVqXBM=; b=onHrX3kWrAoiKYeGxvpBENx+tHmhRCFYYFfcxLCHyAoEk5FWqB8nFRI9tZPfiIfL4H3Q7cm7VIViNqxoSTpPmWnS1IEAlF6vY3gTTI/3HDDbr44HLToMwUEi3y7DBauaAvUq3jPIUiprMLj/P2KqZOSoHv70y9rjoc/f0GLBEtKY7iyO7ifs7Bg+FcxO9KZM1duYlT9q1EN3ENcPWsMOps3yN2G4ZmIh0uZZslc3a5KEzbuAbyhwlz9hihGSsvJ8GuPCjI21FkkQquVflHbVMcSt6qGt5HU8ngP8msCYrIhxHk5gpxhUjAgZ3yxz6Z013SuuoGAz8PtcO3GG/Ps8JQ== 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=kdTTfmjlUuyNJhlM/0a0KSUdAI7Eqq5nOCFcqgVqXBM=; b=YsHUzEa2OnkgnijRvP29xPbtsTS5wMNNyPWx6ErWwi0WfJtNZ4f4RdHLqwh/VygONcQadL7uMbbXZ9quON2FKPTToE/9CJDhVy2I3VxTpwCjvyOZwbfZwnYmlBLk8gEmt3L05Z3q/CnvJooF6TDD3K7xTsx3RLl44gq2EqdH+oVxC6M+X2aigZNfTvBtxXW6cTJ+fouwbXMmRIOdvooixj8IoIdOalEPaH3K3g76LuAqZLYPSPgj0POoPDH5xT/COCIar7S1tHox6ueWiqkU+IdSQyH3ZmMtKhs399klIuPOsd/DN9PtSGhvDlaxUPyoDkxqXBy6w8HxvX/35tfd0g== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from VI0PR08MB10743.eurprd08.prod.outlook.com (2603:10a6:800:205::19) by DB5PR08MB10021.eurprd08.prod.outlook.com (2603:10a6:10:48e::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.15; Thu, 22 Oct 2026 13:15:25 +0000 Received: from VI0PR08MB10743.eurprd08.prod.outlook.com ([fe80::7a7c:d078:f125:f16a]) by VI0PR08MB10743.eurprd08.prod.outlook.com ([fe80::7a7c:d078:f125:f16a%6]) with mapi id 15.21.0546.012; Thu, 22 Oct 2026 13:15:25 +0000 Message-ID: <6df7b1ef-d7a4-47ab-915b-6a3105b0a3c5@virtuozzo.com> Date: Thu, 22 Oct 2026 15:15:23 +0200 User-Agent: Mozilla Thunderbird To: no-reply@sashiko.virtuozzo.com, andrey.zhadchenko@virtuozzo.com References: <20261022121706.1890593-1-alexander.ivanov@virtuozzo.com> <20261022121706.1890593-6-alexander.ivanov@virtuozzo.com> <010701a16392c2e0-655ce826-ac3f-4483-9e4d-3addcf673c40-000000@eu-central-1.amazonses.com> Content-Language: en-US From: Alexander Ivanov In-Reply-To: <010701a16392c2e0-655ce826-ac3f-4483-9e4d-3addcf673c40-000000@eu-central-1.amazonses.com> X-ClientProxiedBy: ZR2P278CA0003.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:50::6) To VI0PR08MB10743.eurprd08.prod.outlook.com (2603:10a6:800:205::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VI0PR08MB10743:EE_|DB5PR08MB10021:EE_ X-MS-Office365-Filtering-Correlation-Id: ab5ba1a8-31ec-445a-1142-08df303e8846 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|23010399003|366016|376014|261021121427099003|22082099003|18002099003|10067099003|4143699003|261009223027099003|56012099006; X-Microsoft-Antispam-Message-Info: fLgZ8jk+pOSz1+//911CrRJKmBDnNBXjOLmUu2eyqKrgH7nYa2rqMWXoi0VrX1S3eHVZB+/WFrVXmhCVZKMDZEJdpzbzECewppWIdLMiHxurAkjqP+EvEJ0jBef1uye9u07f2wKyaxGdYHdmDJXlhdlmIcY5C5YBjhxjj32XeloGKRpU2Y+LS8Sf4JYPDWvzyx9F2gTe4Qye50Bd5sCzKhTkrzY6B8wMkykWVEt6OSdLAWz1XhS1PHDHu5fEiOTnnE8I+PDTD+84xOuL/3FeLTHD6B7+zRhiVnA7T5YY7qgriQWv3XN/5An6d/57mgYZhZaPdRk/xt7bJ/fTeu1OTjt5e6g1qtR2+akRrmfcPROMgcyorxCVVuNvhgkzjyrAXcWIyskXrEBFTKUgZ+fJEwRjy7heVy/u3sE6ivOdUD1ZoWxd6jtwk7dvY5qPjRi6TGe1qQIjQsqbmhep6rzhMXLXGr4VISOUK/AdnV8BDb4jOmUuEI6+1xG60/i67/VGj8FmHd7IMH9JguYqFyF54JnTHtZ7p2VXgIwDIdd9TKWqs2XKhALHMEPayTzDJD1BClWbnFT3B4/B4pnYbJJoESxRLGSm874CkiGV9lOFM7ldlJwv6oQ8OVDIKnqQBYtK1uxULJAfxvRi6PiV17UPSJT24S8SE5AGArBnTIj+vFI= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI0PR08MB10743.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(23010399003)(366016)(376014)(261021121427099003)(22082099003)(18002099003)(10067099003)(4143699003)(261009223027099003)(56012099006); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Rk5HRUptOURsUWovQ1pBMkUyMzJaSDlKOGRqT0pZQVN3d3BMU0NhTFRXMTg5?= =?utf-8?B?ZTB5Y3lnVlQ2ZnhwZWtRVVVTZk0zUDFNZzYrTWhUSTcvY1ZkVUxOeVpjcCtx?= =?utf-8?B?blZZSmttNU1pTys4YTFsWGowZ2pZMEtZRjVjRUVFQzUzSWRxa2VhQUl1SW1Q?= =?utf-8?B?YWtuamgwM0FEKys4UXhsRko1b0Z3aFJITWRTZGlLQTBPMTlTMlNLU2dob3hQ?= =?utf-8?B?TThMK0RQRTQzTUZ5dW4wblg4YVV1d0tFb1pFK1orM0xWYUdsKzdIZlZJa241?= =?utf-8?B?M09UeHdCUGZ5V0J2bHB5cGJ6YlFGcUxJRndYTjRUdXFQUHRwTCtocDVMQjVT?= =?utf-8?B?bVlVamp1dlBzeVFhYStaUC9WUzVUV2lHbVQvR1hhTU5qVnBuc2ZHNUZ0Ly9Y?= =?utf-8?B?MFNPemdsQktEeDFJeGEwb0ZWNDhOYlh2Q0pCSVRIY3hORXMrOHVtSEo0Wk42?= =?utf-8?B?WHg5M1RsMG5NbnpZL1hDMWM3ZHZXTHNwb3p6b0haUzlCQWQvQ295SEhXL3JX?= =?utf-8?B?Vk04cUtBUjlUNzJySjEzTm1oMWY4TXBVMVZwNHprOVJXL1ZzQ09USnlRMFFY?= =?utf-8?B?SFhkbmE3elFyaVBjeXJxVXl3KzI0NWxTMGRzY3d5LzRucS9zZmZ0cUFHN01o?= =?utf-8?B?U1FOOElkcnpub3dDa0hKMWNjaFNjRC9oV2RRQ1EyaHVtaGdERXVtSmZSRFlk?= =?utf-8?B?dUhiZUh5ZFpLYm5BMFFYK3pwVEV3VHViTFladnF1RmZCT29xVWhuYlZ2c0s0?= =?utf-8?B?Q3prSjV4ZHY4dUhrMmNjMFhXMzJvSXpaTk1GOGI2S1ZSaTRWTkNiVmFHc3FB?= =?utf-8?B?TEYvS0t5MG1EUmt4Ry9aVEtvWk8wT0RsN3pRbnhqYVJzQnF0TVBXU25tMTVt?= =?utf-8?B?ay90U201SlJUMzU5S04wbUNVa3dCTzZTS1haci91OGxhd2FrTzIwcDljSDVE?= =?utf-8?B?NDRpOWVNN1YzTnlXT0hMM1c2N2pFaE5rUUlWdy9Ea2hYZEJUdHRVeDVsNjZZ?= =?utf-8?B?Q2w2TFVoUHdDWFVRazJueVdVVEFPSDFxV0dNWklMY2h5ZXBBdUlmVFhhZHZk?= =?utf-8?B?MkxqWFkzM0lrTHdrK1FsenhMVExvUUw3enlwaUQ0M2preTZnMGdGdFE0R3V6?= =?utf-8?B?WXdpR1A3OTU3ZkM2UnBYUE93amp3bEZVZSt0NEpDbUp0em5neUdIMGtnMXV2?= =?utf-8?B?dWN2bDdOa1lnSGNEaDJlblByM0V1enUrT1NoazhiVU9sdTdDVldjQU5ZTStU?= =?utf-8?B?MXRxVUhpMFVRYUdUcEI4d0VFaEwzdEw5eGpvVXQ0dUk4K0Y2Y0xlNjI4eHh4?= =?utf-8?B?bm1WT2JIY1FIMU81WTliU3BWdXpvTVRmYkNXNEx6dnV6c3dMWTllOFBrK2Rt?= =?utf-8?B?a1cvYTdLa2xlVGh2VWZtdUtPd2NvSnNQYThWTW9RZjVYbmU1aTZjYlp3SG9B?= =?utf-8?B?VTE4L2dnNEVUaHBrZVM3bnVlRkhUQVZEZExYSEtBYVZlc2p1SkMxYWRMZ2Vx?= =?utf-8?B?WTVpTjlkY1R6SVhuR1ZVMk9mYWRxMVNxbmJLazdNc1JDcHVXWktISklKSXYx?= =?utf-8?B?bjh2MTluZTMzSzB4Tk5zRDdEaDEzVUZOQWdRRzhNTWl2VmNDM0tSZllFeEdJ?= =?utf-8?B?KzZXYldqMnlQWWliTjdHRTExNDdNWHVRNzRVZC82eTZhWmJWandTc2tIaWNj?= =?utf-8?B?dDBWSkZ5Y2tqSnVsNitZaEVGNEREaENpbnFBNm9vc2czZ0Q2SGpiZVpBS3VC?= =?utf-8?B?SndqQnJieGdTQXZ6U2ZEQTcySHNBNG5GSEtOVXNiRVRwMHFQeUZBRC9hVm9z?= =?utf-8?B?Njd6dHdHZk1aWlJYb2tQd1JvbmtuOWFaMEJUSHJvd0FuKzZpQ0J3OC9BK2dx?= =?utf-8?B?d1BDd2lOdDhoUS9RZXhqemJHYmFqV2E3LzQreXo1QjNTYnJyQ2ZZY3o4WXNw?= =?utf-8?B?NGRqb0pRYVpUVHpDdHFQVlRRQmhrWnBnWlIvcU8wOE1OcHplRnpBM29UUmll?= =?utf-8?B?NkxnMFc4S1RGbUVRbnMybXdOVDUvZStpUWRyclhwVzJ4dEpYOXZscDFwNGpO?= =?utf-8?B?R3lDSjlkanJ6TFBaeDV5YUZWWGtuNGwxWHAvdG4xdzRPaXEyMmdBRTBtZGVR?= =?utf-8?B?RC9PU2pvbHI5RTRTN2hXVUlFc1VkbjJnSUpVdkt6YlZBQVBEN2F5dU1DR3Rw?= =?utf-8?B?cjJ6cjd1MVdJK1RIUUUxZGp3dWJodkY0eEREQU5FaXNjUXdCcFI2TllnZ09L?= =?utf-8?B?RHU3YVY5V1ViSnc0UXRtQk1sSXQwdnJrUG51SUFMeEF3Ny80cUU3cy9BamFO?= =?utf-8?B?YVZPaFJScDNmZGRGdXBjUmJJaFNqd3Nkb1A1aXpJZWoxdFFaNzdaMi93WE1L?= =?utf-8?Q?faA5PDPZL1app2qk=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: ab5ba1a8-31ec-445a-1142-08df303e8846 X-MS-Exchange-CrossTenant-AuthSource: VI0PR08MB10743.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Oct 2026 13:15:24.3518 (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: B++hU/M7OwDi9AQYWq4NO0dhFRxjvf9oTGKFFj1mc1V6qQrEW9LQ08IEaaYs6x2KFtmbFAiSyjVw81079htFzZ16DLR6v9KxImuA7K+vY58= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB5PR08MB10021 X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1 v6 5/6] dm-qcow2: keep the dirty bit of an image opened dirty X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org >> @@ -676,7 +676,8 @@ int qcow2_set_image_file_features(struct qcow2 *qcow2, bool dirty) >> if (kernel_sets_dirty_bit) { >> if (dirty) >> raw_hdr->incompatible_features |= dirty_mask; >> - else >> + else if (!(qcow2->hdr.incompatible_features & >> + INCOMPATIBLE_FEATURES_DIRTY_BIT)) >> raw_hdr->incompatible_features &= ~dirty_mask; >> } > [Severity: Low] > Can qcow2->hdr.incompatible_features tell the driver's own dirty bit apart > from one left by a crash? The header is re-parsed from disk on every > preresume: > > qcow2_preresume() > qcow2_free_md_pages_all(tgt); > ... > qcow2_parse_metadata(ti, tgt); > ... > qcow2_set_image_file_features(tgt->top, true); > > If the kernel's bit is already on disk at parse time, the parsed header > reports it as dirty-at-open, and every later call with dirty=false skips > the clear. > > One way this happens is a failed clear in postsuspend: > > qcow2_postsuspend() > ret = qcow2_set_image_file_features(qcow2, false); > if (ret) > QC_ERR(ti, "Can't set features"); > > If the qcow2_rw_page_sync() write fails, the error is only logged and the > bit stays on disk. The next qcow2_preresume() then reads it back as dirty > at open, and the driver never clears it afterwards. A retried preresume > without an intervening postsuspend could do the same. > > The new "Skip shrinking to used end of dirty image" branch in > qcow2_truncate_preallocations() from patch 6 tests the same parsed-header > bit. A falsely dirty image would also lose its tail truncation. > > The commit message does not mention this behaviour. Could it be described, > or could the driver track separately whether the bit was set at open? If the clear fails, the image stays dirty and gets checked before the next open. That's safe, so I'll leave it. > [Severity: Low] > Does the new condition also leave a clean lower image marked dirty after a > cancelled backward merge? In dm-qcow2-cmd.c, qcow2_merge_backward_work() > calls: > > ret = qcow2_set_image_file_features(lower, true); > > This sets the bit on lower's raw header page and on disk only. lower->hdr > is not updated. > > If a cancel arrives while the merge is in the WAIT_COMPLETION state, > qcow2_merge_backward_cancel() does only this: > > } else if (tgt->backward_merge.state == BACKWARD_MERGE_WAIT_COMPLETION) { > set_backward_merge_in_process(tgt, *tgt->backward_merge.pqcow2, false); > tgt->backward_merge.state = BACKWARD_MERGE_STOPPED; > > It never clears lower's on-disk dirty bit. On the next resume, > qcow2_preresume() re-parses every image in the chain, so > lower->hdr.incompatible_features now contains the kernel's own bit. > > A later merge_backward start can then go one of two ways: > > - If it fails, the clear in qcow2_merge_backward_work() is skipped: > ret2 = qcow2_set_image_file_features(lower, false); > > - If it completes, lower becomes the top image. The clear in > qcow2_postsuspend() is skipped for the same reason: > ret = qcow2_set_image_file_features(qcow2, false); > > Before this patch the second case cleared the bit. With this patch the > image stays marked dirty on disk even though the kernel set the bit. The > stale on-disk bit after cancel already existed, but it used to be cleared > at the next postsuspend and is now permanent. > > Userspace may then run an unnecessary check, or refuse to open the image. > The exposure needs kernel_sets_dirty_bit=1, a cancel in WAIT_COMPLETION, and > a later merge or suspend cycle. > > Could the cancel path clear the bit, or could the driver record the open-time > dirty state separately from the re-parsed header? Will fix. _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel