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 010A280474 for ; Wed, 28 Oct 2026 12:00:46 +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 69SBxY7u019806; Wed, 28 Oct 2026 14:59:34 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69SBxY7u019806 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="KRcMdH+Y" Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69SBxUB3019802 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Wed, 28 Oct 2026 14:59:31 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69SBxUB3019802 Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-8a03834d8ffso1285904b3a.3 for ; Wed, 28 Oct 2026 04:59:31 -0700 (PDT) X-Forwarded-Encrypted: i=3; AKwUvBysRJzUQDI6Mp+FlMGT8JHgvK/Lj2WiRBSRIXa7j/Y74Ap+xIUjlHQiRIV//xdQGj9qIeRCNw==@openvz.org X-Gm-Message-State: AFq9FYKAuz2eO1J6KJQIxD0MLsxJAXy3U0uervwu4WQyBqI1Y8pFsfVk zrMDIkUNsh27n3PxPvpdZxCyWSzvrnupPkss/sAJ6xIQ/7MKQk9R7VpGl64FiSfNGmTSRp2mEK3 JIVZHGk+XgnfrEAt81CKpW5shJB6qPjjkwaXRy5wzCEZVs3FdMvI6eA== X-Gm-Gg: AYBFou3kxqCYzfrbRFKnYocxDW7kK7S94m1OMnoY6yabOeCAYA0UIM12vC0+8CoDUfd OOuYvx52dW+wPhhacme1NfWlxCOjpen22QvX9rbfAbph0iCp8QCw7IMT2e0QCLxi82iMt71m064 HaYNPtuT+o7U3ounUvPMIO68B+E13Qv4UfVFfkAPNw7jvWmt6CqUD5adsxI9U2pKuTg4i4J8CQW 3ComuKvdb+RUjFySn9mbYKGe3I/XEjjtFF63yfti0tT8KZAyW3742wcjEXtMGx08CWW6fUUorkY crhNki1XajkzQG6zWPxj1XqHEl2t30xyVD1YbpyX5wjYGoA+ucTAZqz5wWvUkW+HiI3U7snmskz 2zPmhwPecl2nIksIL9WM+e0IOc5iiJkrSh4qmWRuYocaiMQCFFOQ1oO6+Hz7qWsHBmS5900A1z/ TAlUWSwjGyhGU3T5917xKQH+scHtlhlHuc X-Received: by 2002:a05:6a00:a16:b0:899:55e9:8806 with SMTP id d2e1a72fcca58-8a6e74d8549mr1861032b3a.22.1793188770260; Wed, 28 Oct 2026 04:59:30 -0700 (PDT) X-Received: by 2002:a05:6a00:a16:b0:899:55e9:8806 with SMTP id d2e1a72fcca58-8a6e74d8549mr1861001b3a.22.1793188769494; Wed, 28 Oct 2026 04:59:29 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1793188769; cv=pass; d=google.com; s=arc-20260327; b=fcaWxvRbp2i2Rr88qOxvxqAjri4kfEFY0Q5uWTXWDq5wB6VYMZsgsJODvHrMZE7hmL 7c+lNolAVKYhQvlFwh9xa09laHW0NPNfUjXpiZZhBtbq34J9T43x0+EKut0FiwJoBRYm edjXRwXwfYeeAy9DCU6Ja75no1ezQct4oIBkrKl46vVciXfHFtESwdFsEC7au8n0yRQL tOsMx1Zy1X5CQXCU/rKGS7dq3eMaBiG2Th+AkH/16Te89q5SwORVfq1FohhrYvxvjmBS lpnUoypFidXXYu9O854qsq0NlAv9spog3blGbF58nktJABcsZBJr8+Ol7v60OYaJJP5L hSXg== 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=2OvEaxpvBWV4VZ6MoHmeRlDSOogftzuJIm+bGNG2sH0=; fh=asFCiatKj0KqxTdDrZobB2QMH0d8EY07vfO3ArLWY04=; b=PTXONKlq+pYGITIswTiPdi/xzh2C4W1JRYyYaP3byvGcKT5XWnzA+wdtp9LfATm/JL NTzNFOBO/Q9ZUzz+DWPk5zlqfbPPbpogIbMBx2NFWJzP35+csP0lF7E1V5mjAbRCUvW1 oQ0BjYNTHDTOkHnaCRHdZeMDi44anyq3/sHKUF95IuVL5x+5LcpTgiXCvVIAD565Wd6H OebfrmLPHHp718+tyrwYmFg5YsxzO1T5JtCZ10+cp8j2Gh5jhOzlikEiekYF2wMcf8JJ F9V2W+vF1AKphC/pl24Te6Pxv4WpPIGtOEO1V2hHeGBkjj1sMi18UTzpZzvC6G8C2+RG loaA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=KRcMdH+Y; 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 andrey.zhadchenko@virtuozzo.com designates 2a01:111:f403:c200::5 as permitted sender) smtp.mailfrom=andrey.zhadchenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazlp170120005.outbound.protection.outlook.com. [2a01:111:f403:c200::5]) by mx.google.com with ESMTPS id d2e1a72fcca58-8a6a39754ddsi5219249b3a.58.2026.10.28.04.59.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Oct 2026 04:59:29 -0700 (PDT) Received-SPF: pass (google.com: domain of andrey.zhadchenko@virtuozzo.com designates 2a01:111:f403:c200::5 as permitted sender) client-ip=2a01:111:f403:c200::5; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=KRcMdH+Y; 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 andrey.zhadchenko@virtuozzo.com designates 2a01:111:f403:c200::5 as permitted sender) smtp.mailfrom=andrey.zhadchenko@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=k0OijA1YDs91s4SO+y+4c4DNk9vq/vVitNWC8tlxRGkySYZdftcs4YhNuCQfi832w+ksjT/C5TkBn8GyXJ2haRq9rGOZm/XEWganGT13RATKFQkH/mh5hOJ1oUPdkX2TblPDvqbYwHSwZbubzteuF14/EB1VoJTjMzc0xgjfatxYUZ+qTznyYDkJOPhMvLvn24ouNUmb5DL/fnFvlLtM4ZMCzVf+mtCzCuhGTxX3I+3KyIa8fbH5a37HkMDAEoIEYg4qGo0FNruBHJECszZeNtr9TiHW870MHCpYkPAnjDC0KUzrrHOhlbCHiHWs1Cn45p4KvRcbba7vpgivLczNOg== 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=2OvEaxpvBWV4VZ6MoHmeRlDSOogftzuJIm+bGNG2sH0=; b=yf5cGtEmDHSVI0RiFxGL7B5KwWXPZPl5Dzh5XYytvhGVf8mS1pFKBfPz9yMFmc7lEb2LUrNea55acVeP0X0jUgTVJCoUHV/eBxOsf/n27Ws4gbDhyXVJwTLDlkjAyvSOVWQN+cwrE0ZqZ73bwosg6/MY3TrBpUrf5KRcJbqgGSHKX4O1OO86BoTShy8XSzxIJJwmfxR1M/dlqkBl8PWoZUbr7UrPvJdQ5w+sDLK5rskaAUNbcIiAZ/sQmhHIAC4kwCc4KxVEF/d4sTxNT0bec3pIQKh5L6JZgVfaihfhSvGkimhVcystAsDTq0MFOHCU4nSRRXgnRW8DL58HALjpow== 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=2OvEaxpvBWV4VZ6MoHmeRlDSOogftzuJIm+bGNG2sH0=; b=KRcMdH+YlbOvF3vfXuOSA9EOQfSafzFLEnmiFrrZjkR2UiCHRwlHawFCDosz62nbf7aphYrVE99wmh745oEomdrmhJ/I80fptjh4UZBzFKNVVPYuwhhGgput2Odu9EgwewrfZYyrIBN+mfCBWmvxIVyRSHVNaWQfGjHlZcFVPwtyuNnZskYjP2m57oQ/jYzIcjq0KUVV+DQfIav9IDmGzKsd7H0Y8VSvmmCAECeYOKMpMf2GZPcWMYoEnve2y63uZNyDZ881v+KYm770NL9nIvei3LIOADll9gDQKOAv6cMdBIMTjC1C5nkH5bCBbbYtq5C10keG4yw/ik+FXOmxcA== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from PA4PR08MB6061.eurprd08.prod.outlook.com (2603:10a6:102:e9::13) by GV1PR08MB8106.eurprd08.prod.outlook.com (2603:10a6:150:95::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.22; Wed, 28 Oct 2026 11:59:26 +0000 Received: from PA4PR08MB6061.eurprd08.prod.outlook.com ([fe80::c3bf:e107:b1d2:6a00]) by PA4PR08MB6061.eurprd08.prod.outlook.com ([fe80::c3bf:e107:b1d2:6a00%3]) with mapi id 15.21.0569.007; Wed, 28 Oct 2026 11:59:25 +0000 Message-ID: Date: Wed, 28 Oct 2026 12:59:24 +0100 User-Agent: Mozilla Thunderbird To: Alexander Ivanov References: <20261026144223.2787145-1-alexander.ivanov@virtuozzo.com> <20261026144223.2787145-6-alexander.ivanov@virtuozzo.com> Content-Language: en-US From: Andrey Zhadchenko In-Reply-To: <20261026144223.2787145-6-alexander.ivanov@virtuozzo.com> X-ClientProxiedBy: FR2P281CA0046.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:92::20) To PA4PR08MB6061.eurprd08.prod.outlook.com (2603:10a6:102:e9::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA4PR08MB6061:EE_|GV1PR08MB8106:EE_ X-MS-Office365-Filtering-Correlation-Id: c5630c3e-7e12-4ebb-f6ce-08df34eae981 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|23010399003|376014|366016|1800799024|22082099003|18002099003|3023799007|4143699003|56012099006|261009223027099003|261026121527099003|261026140227099003|261021123027099003|261022075727099003|261022105027099003|261022115727099003|261021121427099003|10067099003|261009221227099003; X-Microsoft-Antispam-Message-Info: rKydeRtBKM9JyUnudrMdKAka1u/SwCj5+qSUpI7K3QmopW+GgYDAYtRtsys5aYKEM91d0j6faoCH08V+vgJ4eV6f6/TEL0JMXkYPCoLDRoeRT4fG2MEWAFAxFWKlZYGBVxPxz42fTzC8wO6Fk5ElZEs5hD41W39NSKNLyEOSJx8qoAozlD0wMbV2E7UiZ84gYxnfA/EB8RndYFVUwkhSyo6oCnW2vpsTzoy2C+0xAmp5Xk5qNz1JPDjLqvwFo09Davc0ygmEsfb3mxj3jWY1R1ptPb4WG3fvoODX+PYguESHoM09XwcqLOaWAOvqD9F1MWKmRioP5qQ497LeqyjDZeANkMWmZ2h4ex4WIKIkTpA2/9tCjpBbJAcgTubO7Q7dky9/muWgSwbgM9k/u5OERHFpcHQ4Dg9wvdI3Lyv6Yu+w5NwCA9JstLUbd6uJ92bj1hWVNgXT/wVjNpeCdDfAfNNuVCtcJxWBRiLNJzjczALSLcoemrM7WqXUk0xQQivqC8mPHkGC1i4HJq9fgti5TFHcazRr4wOLNFCkXCMVSMQLQNARM8aolBJMXXn4WITRRNoBEuD8x70DwaQsexEaaezRjtb2Wl977mCtrC6oVB7BmOlXWXdaQkzC45B2dQbe X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA4PR08MB6061.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(23010399003)(376014)(366016)(1800799024)(22082099003)(18002099003)(3023799007)(4143699003)(56012099006)(261009223027099003)(261026121527099003)(261026140227099003)(261021123027099003)(261022075727099003)(261022105027099003)(261022115727099003)(261021121427099003)(10067099003)(261009221227099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NHJuV2NCWEU1ZFlIa2hFamY4ditBMjc2Ujd6dTE2WVVoMUtDeVA2OEVPWGpP?= =?utf-8?B?Q3RiL2FCN3JxZHV4M1FQSE5IWERmby9oWUUrZDdzNUtIK2xuRCtkalI1K1VJ?= =?utf-8?B?MDYvR3JycUVIbHZCZUppNjVYZHNTK2NBUFN0ZFRWcWN2L0xZYXBsQXJkd0I2?= =?utf-8?B?T3VBajBJbmlGYlFJWEhMSFoxQ05UMmErSzRJME5Yc2xvTEFEYmtWc0hTUUU0?= =?utf-8?B?V0lyTExiSC8wZ0FWRW80K2hkT0ZVLzBqRjhaNGlVR1ZTZmpJbjd0YlN6UGdT?= =?utf-8?B?TDFvdWpNTm5LTHdyb1NJMGR0T053cmZmZlNxQjd6aFhPdFpSWW1LMnZPNSt2?= =?utf-8?B?Vm8rVUZrVWJnMkYzTE5QQnNJdkJraVlnMHdzUm9qcUdKZDFSYlE2RldnbkdJ?= =?utf-8?B?R24vWTlHWFl1N1hBbFFFNWp5cDhaM0ZVSVptTHlOcTdOV0VhaW40L01LVHNw?= =?utf-8?B?aHNodmdIMFNwcGZyYkpUOUNDdWdrYUpTaGlLRjAwOXVHZFRZbENmSlJTL2RO?= =?utf-8?B?U1AzVlFrc0tkYkJLMWJ3NWpxTG4wdXAzV2dOTmJtcFhNblZrYUZvaTd5RkhF?= =?utf-8?B?NU9VQ3ZubURzVC9aV2szeVh3dmJaWWdiZ0h2NVpGM2RaUEkvbXFwUVRvNExY?= =?utf-8?B?RE5qdEdKQU5qV2RTTWJsL3JSMFBaRW9WUlBXYTd2bVExb2pSUVo5YWlzY1Zo?= =?utf-8?B?SVdMQWlRbW5PNVI1a3YwQzlWR3ZBM0JHU1NrZ1M3ZThzWEx0M2RTcDNMNjFr?= =?utf-8?B?SHUzWk5DMXNyZTZZd0lLT0Rld3ZPNTNxSG40YVRvQnlSTlN4TlBVVnNNM1V3?= =?utf-8?B?aHIzclVVYXA0cTkxMjAxZmFMei9sMXprRDZKdXVKQTNZTE8vSlRpSmVSQnd6?= =?utf-8?B?YkpBeGtJT25Xc1pEMkhuZFEwWWZWNVg5TW5NUnFuYXVadklabkVvZzVkdW9n?= =?utf-8?B?aHNRdm1vOU5Fbno3Y0p0NnFhYlJya01BZytlVHdqdC9XS3BlZWVpYTV4TmFz?= =?utf-8?B?U3NKOG10QXhFQ1Y2ZWpWU1NpRlBvTGttSWFQdWpkcjU1b0d4Vi9EUmxnMER2?= =?utf-8?B?Z25DTlNxSXcrc2swOTRkSlpOOGdSb0xJK2MySVJZNVp4ajAxWW1zM3M5KzBl?= =?utf-8?B?cDZIVm5zcENjUHQyc1FCSE12NlBRdU5hS2R4bmZYT1d0MEFQS0dlTHorTUY3?= =?utf-8?B?NGwweWxNZWxOZXpFQnVMMVpQN2hrc0pqVFcwNmE1RlZ2ZWpHYlk3SG5SR0hq?= =?utf-8?B?R2FwYkhyVEtLbllHZG9vaVh2NFhaOWpWaVphSWI0VHVYZTlLekxvVnRlOXZ6?= =?utf-8?B?cTVpWnhhc2ZZcTJOYk1uUG5rSDQ3NzBRb1pieGtRMG9kcXNFeUtTdFBGcmY1?= =?utf-8?B?MEJVOGZKTVFLR2tKSXA5RHRySUFRK1luVGxJbThveDV4NGgvU3ZlSmhma05B?= =?utf-8?B?S2FQeFN3dnFDMjZFd0x6M2twRGRWc1paeGpwczZHQU92T3dpU01DdHZMeS93?= =?utf-8?B?L09wOVpBdTdQbG5JZDlONm1FUnk5QXd5eStOUndrM1lKUW9QSTJ4Snk5ZldX?= =?utf-8?B?V1ByTDQvVThTOXcyc1RMTVpJOWc2aG9VekxKSzVpdWR0dHRnMFMxaVlXa0VM?= =?utf-8?B?T1ZNZ3JGWWttMzc2SVRQSzRKa0dscUlPWXBGS3BaL2EvSkNFdzVZQ1hiUU5x?= =?utf-8?B?L0hDL0h5V05kVUFvNWp2Vzc1U1c2UXhpRHJWMUtOUDg3Mlo4MXcweWJHZ0N4?= =?utf-8?B?QjJWdllyQkt6Zkx5cGZQQTdUME5xaU1pTUxkMzl0YjNOWFVaZk5hSXN6MEJn?= =?utf-8?B?aDRHWHZhS0M0dU1CaCtmNFJ5cThkOGtuT0M0c2hzbGQ3MU4xR1d5VlFCY2pE?= =?utf-8?B?b0wvUEMvMjgyT3VYd2l5ZTVtdnhkRTNSdjczMHVueEJIdktLc3pQKzhUSXla?= =?utf-8?B?NTRDeUQ5VlhhaTlxc2o0NTQzU2JKYldwWituSEE0TUo3SHBsaml5VkZ3YWR5?= =?utf-8?B?SEFIOFNBdzVBNVZFbWNIN0hyNURoYzNGTGYvblV5MWhHK0pyUXdnTGRKN00z?= =?utf-8?B?YWREWHVick0rSW51QVB5WkxNRDN4d3pCWWQwVU1jWEx6dTBoM2lENzV3eVdi?= =?utf-8?B?cU80Q05QaFlpbnBXR1Y5WldodjFLUXZHRzh5MDZJUXZJOGJOSmE1MmFVODFw?= =?utf-8?B?dEp3dy9Ncyt4QTZoTlYwVUIrVTI1MEM2ODZuMFZjSzRZcFd2TkxodjJzeERs?= =?utf-8?B?WEk4UHlMVjBiVmlPU2ZtWWl4anJOd3JGeTlWaE44SENBZ3NUTThRcVBBWkZJ?= =?utf-8?B?ZHdXVWNPT1ZleTVJZ1Q1TkdZTGlBb2FLdm5qZGFSY0o3K1IyRHBwYVZoR1BH?= =?utf-8?Q?9tcd5N2CdF3XW+U0=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: c5630c3e-7e12-4ebb-f6ce-08df34eae981 X-MS-Exchange-CrossTenant-AuthSource: PA4PR08MB6061.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Oct 2026 11:59:25.6222 (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: 0qjmr/Vi2i+g0HI/yBhUI5svCEdMlTLaiuIlghmryt8ooVcARDqOTmK5oEwki5dOYvBkJ1/0hTpC/cj/WJSPSO3Phy8y4Oy7ptXuAGanJFY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV1PR08MB8106 X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1 v8 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 1. Get rid of useless comments (which is all comments in this patch) 2. kernel_dirty_bit should be kernel_dirty_bit_set because without set it makes no sense. 3. Commit message should be reworded to include the following very important information: - kernel_sets_dirty_bit is a module parameter - we do not set it in Virtuozzo - ploop sets this from userspace itself (so this is rather a hardening patch) On 10/26/26 15:42, Alexander Ivanov wrote: > With kernel_sets_dirty_bit, postsuspend clears the dirty bit > unconditionally. An image that is dirty at open, e.g. after a crash, > has unrepaired refcounts, which may be below real usage, yet it is > marked clean on disk after the first suspend. A userspace check before > the next open then has no reason to repair it. > > Clear the bit only if the image was clean before the kernel set it. > The parsed header can't tell this: it is reread on every preresume and > may carry the kernel's own bit, e.g. on the lower image of a backward > merge cancelled by suspend in waiting_completion or of a merge with > depth > 0. So track two flags per image: kernel_dirty_bit is set only > while the last header write was a successful set and the reread header > still has the bit, opened_dirty is set when the header has the bit and > kernel_dirty_bit is not set. Clearing the bit of an image opened dirty > is left to userspace check. > > After a failed write the bit found on disk is taken as opened dirty, > which costs an extra check, rather than as the kernel's, which could > clear a bit set by userspace while the device was suspended. > > This only preserves the on-disk marker. The driver still accepts a > dirty image read-write and allocates from its refcounts, so > find_unused_cluster() may hand out clusters that L2 still references > until the image is checked. Completely irrelevant paragraph > > https://virtuozzo.atlassian.net/browse/VSTOR-148171 > Feature: dm-qcow2: block device over QCOW2 files driver > Signed-off-by: Alexander Ivanov > --- > drivers/md/dm-qcow2-target.c | 15 +++++++++++++-- > drivers/md/dm-qcow2.h | 2 ++ > 2 files changed, 15 insertions(+), 2 deletions(-) > > diff --git a/drivers/md/dm-qcow2-target.c b/drivers/md/dm-qcow2-target.c > index b667adb5472a..2d69e39a3530 100644 > --- a/drivers/md/dm-qcow2-target.c > +++ b/drivers/md/dm-qcow2-target.c > @@ -659,6 +659,7 @@ int qcow2_set_image_file_features(struct qcow2 *qcow2, bool dirty) > struct QCowHeader *raw_hdr; > struct md_page *md; > bool is_ro; > + int ret; > > if (qcow2->hdr.version == 2) > return 0; > @@ -676,12 +677,15 @@ 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->opened_dirty) > raw_hdr->incompatible_features &= ~dirty_mask; > } > kunmap(md->page); > > - return qcow2_rw_page_sync(WRITE, qcow2, md->id, md->page); > + ret = qcow2_rw_page_sync(WRITE, qcow2, md->id, md->page); > + if (kernel_sets_dirty_bit) > + qcow2->kernel_dirty_bit = dirty && !ret; > + return ret; > } > ALLOW_ERROR_INJECTION(qcow2_set_image_file_features, ERRNO); > > @@ -903,6 +907,13 @@ static int qcow2_parse_header(struct dm_target *ti, struct qcow2 *qcow2, > goto out; > > qcow2_calc_cached_parameters(qcow2, hdr); > + /* The header is reread on resume and may carry our own dirty bit */ > + if (!(hdr->incompatible_features & INCOMPATIBLE_FEATURES_DIRTY_BIT)) { > + qcow2->opened_dirty = false; > + qcow2->kernel_dirty_bit = false; > + } else if (!qcow2->kernel_dirty_bit) { > + qcow2->opened_dirty = true; > + } > ret = -EOPNOTSUPP; > if (qcow2->clu_size < PAGE_SIZE || > (qcow2->ext_l2 && qcow2->clu_size < PAGE_SIZE * 32)) > diff --git a/drivers/md/dm-qcow2.h b/drivers/md/dm-qcow2.h > index 69d3ae6fca8a..a2d951ee5541 100644 > --- a/drivers/md/dm-qcow2.h > +++ b/drivers/md/dm-qcow2.h > @@ -257,6 +257,8 @@ struct qcow2 { > u32 refblock_bits; > u32 refblock_entries; > bool ext_l2; > + bool opened_dirty; /* Dirty bit was set before we set it */> + bool kernel_dirty_bit; /* We set the dirty bit on disk */ > > bool pause_submitting_qios; /* This is used only on top qcow2 image */ > bool backward_merge_in_process; _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel