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 1AF8C8045D for ; Wed, 28 Oct 2026 10:13:03 +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 69SABmZG018365; Wed, 28 Oct 2026 13:11:49 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69SABmZG018365 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="n4J0mbW8" Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69SABWF6018308 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Wed, 28 Oct 2026 13:11:33 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69SABWF6018308 Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2e9821ca96fso12108375ad.0 for ; Wed, 28 Oct 2026 03:11:33 -0700 (PDT) X-Gm-Message-State: AFq9FYKcoxrC/gu2I8Tt7OeWxZyGxpIxa2fjcXmsQBqoBZnaCnIII4Ym 5zLeKzTngPOhhgiJf391Fi6D4MPcpMhUaWBwlBTOI4I8qCP5lTF1YqdXfRKw5A/hRdaTftJKWG1 Zz1bGhMbYLooO+RH1Snbkn4fOqjvft68KOeNHz5kDG4b3EhQMfXWgzA== X-Gm-Gg: AYBFou3j0meo/P0Wa7ig/oS7xUE2Nf+bGZ52zb1TqSgf5qFQ2bZO9Wt+ExrHyWihg9G KijA+dnF78bo5f5/44hcjXSMv1dKiqGg8vaHDD7DsWwvvwIPrQx2w7sny9VaiBo+sZkX+zsBIEn C8yQ5wvL3AvPsku5xiN9YqNUCl1Xu8erWNgoNDTV8t5J5D0JcI4HHnWo7651yjym9YWWYLBnBCR gJP+lnwZZb6lMxc4FNL1aGmt+2G36ARjR0Aw9DFj3QXnxI9wLolqPBi5MUUeNKThRdTVWpBDvvV sOAqX1QG1uhFilKpBShJQh2abZtMABlCcM4Z1xq/6j4IRcwEJdZ82EndvL7vrOrpmOdUz2BBSbb 9ccVc2UDYvpjgnm1rMOUBg6CYUu9Q1KA2+zkYDJ/SbxTK6KpIez6gCCNStkWNmrqizksS3CQ7OE uzGJNADddWmuVXd6QmEXRIbhiU7Q== X-Received: by 2002:a17:90b:1a82:b0:3ac:c005:cf07 with SMTP id 98e67ed59e1d1-3ae5822fa3cmr1380726a91.42.1793182292071; Wed, 28 Oct 2026 03:11:32 -0700 (PDT) X-Received: by 2002:a17:90b:1a82:b0:3ac:c005:cf07 with SMTP id 98e67ed59e1d1-3ae5822fa3cmr1380708a91.42.1793182291325; Wed, 28 Oct 2026 03:11:31 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1793182291; cv=pass; d=google.com; s=arc-20260327; b=fjRXZ1Nr7WvYIfoR7kHm4GZF4MEayqmiXNhwbEpsCnNQt35EUy1oy1Bjrrh+sJWcl7 RTYIteIG4yG7Ef4RY6fcsLs+tlmBzj+VNzl0tb3esthohwq4dB2wpixz6hyWDnwEhXGb O25JWgpLjj8mY+dGkJcTorpk0gZcubokLd4yPsV3UzfbimPOBGJXsp+fgHrNcFvn+sS3 7dzy7/uxFPo9tCHyfaOcYSqIggHuRBifDB8wprUjBjjaN6qQOY+02q9aF6p0fv7Za6DD Lj9TdLWK8NNcb+rdEa0ajd6XraQJHohBVKnGZ7e82qguc2UJEm+PorFKfM1tRU+OH5q+ xgWg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:cc:to:content-transfer-encoding:message-id:date :subject:from:dkim-signature; bh=/v0bte7cZk5B4FsAQEmiiGVmbnqykzZBDgbZ2+trxMc=; fh=y3TfVeQA9QYtIzD5Inxiyys5ebBfyOgjQPZaP/+mSiI=; b=Sxxz01WO1iiSVjYrM6FP1Ep8Nu3h/JguC+u8M2/W+aLBkEU8Zx2cZXM9/G4xipPRAV HIel0PrVyFloWBQD2jjRX/a9U9nzfXuW9QTmT6ZlhGX1k7whtbWkLGZE6ixTLUrrjt3a ZizbcXONYczpNEMxYKYXtbtIigTFvG1OkmB6iV0HNxBMObW9ASqxMMONlGQs2sm5Lc0A dcqt6d7YT607G9Bf5w4x0xjNd3/hGA3NyJOOlbehZdYwcK0UHfs/IJQ4hnkPzxf2FT+m ShDWMmnUB4VZqGybCCr83M2R+sEmkZQlKWJmyAVQ7ipikfnwxUom3Ycyd6IxHJ0GiaW8 /82A==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=n4J0mbW8; 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 ptikhomirov@virtuozzo.com designates 2a01:111:f403:c200::3 as permitted sender) smtp.mailfrom=ptikhomirov@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from DU2PR03CU002.outbound.protection.outlook.com (mail-northeuropeazlp170110003.outbound.protection.outlook.com. [2a01:111:f403:c200::3]) by mx.google.com with ESMTPS id 41be03b00d2f7-cd8cccb147asi17092842a12.191.2026.10.28.03.11.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Oct 2026 03:11:31 -0700 (PDT) Received-SPF: pass (google.com: domain of ptikhomirov@virtuozzo.com designates 2a01:111:f403:c200::3 as permitted sender) client-ip=2a01:111:f403:c200::3; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=n4J0mbW8; 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 ptikhomirov@virtuozzo.com designates 2a01:111:f403:c200::3 as permitted sender) smtp.mailfrom=ptikhomirov@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=MJMChQdl/iIVcfvG4unZZqyXHUbY8nOE4CemfkhvCA1hxUNLjU0cTbRiNlRvInRoP21LuvXH0o3g2sNxlknIwi98qErN5KzLjOZRnvAq6cNVfimZa8RY38EbB2D/lmpZirV7ihlKMAErQK/FmLthvlozOK56ITiWowx1NWTUcg2RiEWp12SVGhtO/JSvjShzUn4sA/bbTgWJbuMNvQpsYd+cPvYXtAWniPLcwUsIUlAL0tjtFetzXe5zUYk/uCtoj3tEfA1T3b+Pp9rti0CixdYgK/OrpTqIYAYi9AiPeZIhs5UKUHM9jk64Ke5cDPJ/n1bYICYUgkYNK/KwLYPjhg== 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=/v0bte7cZk5B4FsAQEmiiGVmbnqykzZBDgbZ2+trxMc=; b=xCawZFNXfxu30GYq/U4eeVEIPACNuPhwMPdOHISDMOSNgXifXpUhIZXyI27QHWRtf7kfqV5NNQ1CUE3D8qzDLkcGtLE/mn8o5QEZ4K+LCGAbo9q9NWx/k8brbUFzf0gaLaeTr6NkGS1T5k/FxpVfkW70eIawQf9Lo3i6lbuMd4B+Bi8zRvNM7AnKaEB1uI/Vf+J56JE+A56Xjk2zOFXO5933HB2jI1SJ1ibf3q4R+TzB400eCtiVXuaGH50+6ot4locsdGUzzgs1xRPhuVXM2YCPcEbAlJ534rk/Ifjcjg2QSl32zwkmX3M9abYblf2OgrLs9kVl39P0nGa0T6ZE5Q== 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=/v0bte7cZk5B4FsAQEmiiGVmbnqykzZBDgbZ2+trxMc=; b=n4J0mbW8YYQAY+tzzXKtAQ0CVzjvEHq0ts8pS3VTPTDUFy9mvE/FAoZVchrzbkANMhlYt3SUO7Tg/5UyKISdI7H+aOoVYrAI/32YAOva5jkvyCKTDlDn1w3g78O03qRyM6hCxYFyxm2fwVz1XqS4F6rCHBbkHAYgyGs99GjBPaTY5mCjkixJbF2qtKgACZwo/gtcpV/tVSHp2RKehYajH6Rumck9/M4EvL0exQJkl59afqGlmikeL6+O1KtQ8OkfscopePcnH003X9GRHwBdTr4RJMkMH/zv5+ca9QJI8Oq4Y6ciXYMY5sSlNHfhViMKkNsMzv98q7rggN26JDLGnQ== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from AM0PR08MB11804.eurprd08.prod.outlook.com (2603:10a6:20b:747::14) by AMDPR08MB11410.eurprd08.prod.outlook.com (2603:10a6:20b:718::12) 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 10:11:26 +0000 Received: from AM0PR08MB11804.eurprd08.prod.outlook.com ([fe80::bf46:f137:f6d2:5b3a]) by AM0PR08MB11804.eurprd08.prod.outlook.com ([fe80::bf46:f137:f6d2:5b3a%7]) with mapi id 15.21.0569.007; Wed, 28 Oct 2026 10:11:26 +0000 From: Pavel Tikhomirov Date: Wed, 28 Oct 2026 11:11:21 +0100 Message-Id: <20261028-ptikhomirov-vstor-149268-cbt-account-at-rq-start-v7-0-5c48672191c2@virtuozzo.com> X-B4-Tracking: v=1; b=H4sIAAAAAAAC/6XOwW7DIAwG4FepOI8KEwKkp73HtAM4ZGFTQwcEb a3y7qPZZdJyasTBWAZ//40kF71L5HS4keiKTz5MtVFPB4Kjmd4c9X3tCWdcAgNJL9l/jOHsYyi 0pBwiBdFxqSnaTA1imKdaM42fNGUT673tOA6cATOG1LWX6Ab/tZIvZERP9RHI6+8gzfbdYb6D9 6ejvwPfa7gC64fHcxSg9dQgFloQDfTPxcc8h+s1HDGc1wiF/0G4egDhFUEpnJOgtGrYFtLsRRr KqAOLEozmndlExF5EVMSKvuNcikEasYW0e5G2Ilr3iKiEFdpuIXIvIisydFoxHFpU7h+yLMsPa qlylQgDAAA= X-Change-ID: 20261016-ptikhomirov-vstor-149268-cbt-account-at-rq-start-a592cf2010aa To: Konstantin Khorenko X-Mailer: b4 0.16.0 X-ClientProxiedBy: BE1P281CA0336.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:7d::15) To AM0PR08MB11804.eurprd08.prod.outlook.com (2603:10a6:20b:747::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR08MB11804:EE_|AMDPR08MB11410:EE_ X-MS-Office365-Filtering-Correlation-Id: 859ce636-cb4d-43e7-7aab-08df34dbd377 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|366016|23010399003|376014|10070799003|52116014|261026140227099003|261021123027099003|56012099006|261022105027099003|261021121427099003|261009223027099003|10067099003|18002099003|261026121527099003; X-Microsoft-Antispam-Message-Info: 54esgi9u7kWJ+BMsjurjqx9MCA9LeLDaZEpplbuzIn1Ha5rZDMfSzjYmgdIHWegbrHFnN1whbRYxg9e1jzILaWgpXlBD9wkJbEfnW69DlNcR9RLSDOmHfysZHosyMaxKQDUijgT0xV5Y8nSISReYvxwVGbZ8E2NBlFNX0cmn+dZ905fZN64gvlN/UVZKb/PbjWbeF9VEOoITZ/nfs4yAXIcNpmWKAN8e0MTPgaaSTGUAGf31adgz7xp1IaJUSJ5gcucj608CjOL4uBY8lt9LJKFAw9oQ8XZGF99tr491DhApcbj7XRK2HuqrZMK9VYxlwsq+PhzrQqlB9KhvEj3AY1y0RnsO/MWHaIe0Pi/EOnockpYtkEKglYlYaTKDNd7WNM+Sbl4xBKcLWNQBFR4jmvuRyCGRUmVtIZFEE9d8WZ6hyNL+QaA7EGVE6rfvVt7oMFFs9sx7cA/Jo1xQjTcKmfVsE5J/Vj6yShADPRqKAbrnrxzwJ//kiDYw7GSNQ0GfpYK3rhHTI6fIBBLJoyHxutjQG4HTBIF5s7DY3QICsApUFUq0Od6YI65pObToDy/Lw2vnteI3uTC3VCmd15O+sL7CxatoGQ9axFqNVbalocE/+clq5BSAMcFAd2N5bbjz X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR08MB11804.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(23010399003)(376014)(10070799003)(52116014)(261026140227099003)(261021123027099003)(56012099006)(261022105027099003)(261021121427099003)(261009223027099003)(10067099003)(18002099003)(261026121527099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bUVjWXNiR3NRTUFudCtheWkzMEV6S3EzUjllZjJ3cCs2Y2dyaTk4S3Y5WTA4?= =?utf-8?B?WFJ5SEFVbG9Bc1FuYUtKVlRmc082VTFlcG5nRXQrd0Z3WEFXN3pjMndLT0RZ?= =?utf-8?B?VnhONWtybE9CU0JqQm1jUUNISUZBMlJPMXN3WmRheXpaNDM2N0YvRW10Nndp?= =?utf-8?B?dCtRVHZicFJwM1hlbVZtWWdmZjhKUS9LUGsreUw2SkQxU2VoWGtPUVJmWDRR?= =?utf-8?B?RTNQcFBFNk90djU2QzBoN3pHQnlIYlQ0WW16WWhoZGh0dnVyUDhqdXhxeUlt?= =?utf-8?B?ZTV5SEh3NHp4RWNlbmdrMzd0clBhU1F5TXFWRGE3UDBueFAzb1ZpWjhFcnFM?= =?utf-8?B?V0J5K0NGODYyQzVQTHkvMktZWldvSHRiblZsL05TT09RSng4YmdBNlpmY1Iy?= =?utf-8?B?aDlrOU1Qc0Q4QzhNZmxwdEpXUTVqNHg2eDB1aDhJN3RSQTFjcHJtL1FNSHMx?= =?utf-8?B?NXZRZ3ZTdUgzRXNQWTFFNWdlNkJuOGhVRFRoMnBjM0pKOHJRbll5ZWkyVDhV?= =?utf-8?B?ci81bzJUdEs5b2xqWjFzQ0tsRGdTcUlWWVdlRWlwaFVEc0ZCbDVBYURzTEl2?= =?utf-8?B?Skt1cFoyVjJSdXN3R2JqNzJIM01sS0RkdnNuV01vT01LVDUzUXZUM0RMcXNw?= =?utf-8?B?aSs2ckMxdWtqOStFVGlUWjBTcnlhRE5WNkdpNFNaa0FXcVdqdFZNbm04S2Yr?= =?utf-8?B?VHZraHpTeHNRYUJJVHphSi9EbFoybWJ2SXBPZ0kxejVmT2FzQy9HMlB5T3or?= =?utf-8?B?SVE5dFhBbm5wajZZNkhFWWFPTDErSjdzKzA5di9IdktIZTd1OVlNQm1wZW1L?= =?utf-8?B?ajNBQk1qaFRyRVhDWkthZ0JRS1JJazdQaXBRTEJ4eE9pRzFnTERHQ0N6MVVK?= =?utf-8?B?TW5LQjhMUFlja2JiWk5PVmQ4bjJkRmU5UEV1bGFoZXNBamR2SWZiTzFRRVQ2?= =?utf-8?B?WDc4cFlGZVFMSGhiajBxU0FSbmplVUpZY1Z5bENjMG5Rd2pJa0RsN1BFRTNv?= =?utf-8?B?UjlwVlN3YlcrcVZxbzFYUGNNQWFma2lCd25pNU1Rd01rVU5UTXJSd3loRUd0?= =?utf-8?B?TkdOZm1Gc1ZtenNEcnpVUjFveGIydWU0QlI2NHp2NkJ2VEVWL051WkN5T1Er?= =?utf-8?B?MFVmYUtzczA1UXNYb1ZGQ2pkWWRMb3ZRK3czVGpaWEZrNGxJUTdId1Z1T1Ex?= =?utf-8?B?SHlGelZacUhKMjM1ZHo5b1NnWjVPTThyTm1Zb0Vad3RSZUpJU21IajdYRmMv?= =?utf-8?B?QUtRVzRsUFY3ZlZxWkJOaXdYeHVWbTFkcEZKSFFQSksycFpwWDV3RTl2MElB?= =?utf-8?B?eFNKZ2hNdnU4enpqLzZvZXJDemRxM1dGcXFZdmo3c3pBY0JFR1BYMFdnUTA1?= =?utf-8?B?cGNvZW8wcU5ueHRleHQyWkJYb0dLV3pnazdFTGl4cUdZYlpzeXJUL0lrM0hm?= =?utf-8?B?ZFhhRFk1NmJEWUVWUDdZRzR4cERSVFdINks1S2gyRis4M2Q1aEE0VE5GVmgy?= =?utf-8?B?ZXo1eWdEazcwdzVMNXIzVGpOTVAwUlFnQmJ4OXppQnFObHVmMmZQRTVSZVVa?= =?utf-8?B?Z0NlZnc2eHFMd2x0ejEvb0JUMXZ4bk00Sk1FYWhORVloK3lnbDBkb1oxdVRx?= =?utf-8?B?dWg1aC91WHd2TGpzd3FQU2NabnIrQnA5NDdqOWI1TGk4NzJGZWJWVGIyNGFW?= =?utf-8?B?cU9SSmRKSkRycWF6Q1FGdkl3MEFFVExEZkNNbzBTRlJVcGd3ckJxNmIxeXZG?= =?utf-8?B?WERGcEZRSXhmb01yWldlaXdDT3BrODh2VkRsU2xac2dHVFV6cUNOS2JZRlJM?= =?utf-8?B?TTUxdm9HeExnY2JNNy9rb0tmNUpJaCtMU0RNRkoxUjIzRmhVak16aE91cklY?= =?utf-8?B?b3A4Qy93elVzRWFPSnBzUnJNNWdqSVU1dURxaXFOa092Zm84NFpoR1pLM1J5?= =?utf-8?B?ZGVLaThQWWdOem80RDhKNEpSWWszeCtENVk4bEVaY2J2eHJYMjNaVU9HcHVa?= =?utf-8?B?dlFlcndPK1RtY3BlNmJsbXRYRTJoblh2bWJSNytUTUgxZGR0VHZQOVNDeDdW?= =?utf-8?B?TjJncEhIRlI0ZFFCK2hlMTRyaGdJNnNCams0anZSTUtGL1Q0eWJWSzBRcjlH?= =?utf-8?B?bW5FWlBVRWg4QmNCV1ZONzY5a3RlcldNVmNsTkFwbGNvNW80WW5FTmZOclB0?= =?utf-8?B?MEpuU3JsNldjdHJYbzljd3pVNEFXelRGWXFkemhiN3RkZEcyczJmbmtzV0VO?= =?utf-8?B?U1Vld3kwOUFOQ3VYTEI2UWFubUM4TTdJYWtUaVJ5cWtZaWoxdXF5T3lKc0hl?= =?utf-8?B?aWNoQ1pIYk55UjFIU2RxUldXZE1GSytqcC9iZ00xbGZoQWpsakdpNkZHdUlF?= =?utf-8?Q?HXdjtcTzGAlMM+xdMDFAjrpWSgAIicJZyW+4h+ZfaONGX?= X-MS-Exchange-AntiSpam-MessageData-1: 4+oPSEltZWx0RBrqXMaA99zf0T1SjpIUIsQ= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 859ce636-cb4d-43e7-7aab-08df34dbd377 X-MS-Exchange-CrossTenant-AuthSource: AM0PR08MB11804.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Oct 2026 10:11:26.1086 (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: nEUbokXOLvSY0nCHcP9bdyXrdQjALgHG+IguMSb/mtV54t7ne+mcrm6R/he3yZqwsXG3+YsUXq69NIAKPlvT/t1hUAb3vuxBJBJy2qLPXmw= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMDPR08MB11410 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 v7 0/8] block/blk-cbt: don't lose writes held across a dm suspend 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-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org Fix CBT missing writes that request-based dm holds across a suspend, which made incremental backups taken with ploop-backup silently lose data. Claude tested full and incremental ploop-backup under write load (a random writer, and fio with 4 jobs x iodepth 64): the incremental backup lost blocks without the fix, and was consistent in 30/30 and 10/10 runs with it. CBT start/stop and device resize under fio ran without warnings. With writes throttled by io.max on a loop device, CBT recorded 24 of 64 written blocks without the throttle patch, and all 64 with it. A RWF_NOWAIT write into a missing bitmap page now fails with EAGAIN instead of sleeping, and succeeds when retried without RWF_NOWAIT. https://virtuozzo.atlassian.net/browse/VSTOR-149268 Signed-off-by: Pavel Tikhomirov --- Changes in v7: - New patch: use list_for_each_entry_safe() in blk_cbt_update_size(), which read the next entry through a cbt it had just queued for release (sashiko review). - Take the SRCU read lock in blk_cbt_bio_queue() only after its early exits, so that reads and queues without a CBT don't pay for it. - Clarify the commit message of the unsigned shift patch and the comment of cbt_pages_present() (sashiko review). - Link to v6: http://lore.virtuozzo.com/20261027-ptikhomirov-vstor-149268-cbt-account-at-rq-start-v6-0-f9870cf5c7eb@virtuozzo.com Changes in v6: - New patch: load a map slot once with READ_ONCE() in CBT_PAGE(), as a racing CBT_PAGE_MISSED store could make it return (struct page *)0x1, and install a map page with smp_store_release(), so that a lockless reader never sees it before its zeroing (sashiko review). - Store CBT_PAGE_MISSED with cmpxchg() instead of under cbt->lock, since taking a spinlock_t in the flush IPI is not allowed: it may sleep on PREEMPT_RT (sashiko review). - Skip queueing a page allocation that is already queued, instead of taking cbt->lock for every write while the page is missing (sashiko review). - Link to v5: http://lore.virtuozzo.com/20261027-ptikhomirov-vstor-149268-cbt-account-at-rq-start-v5-0-88dccc74b48b@virtuozzo.com Changes in v5: - New patch: store CBT_PAGE_MISSED under cbt->lock, as the cache flush could overwrite a page installed meanwhile; the allocation queued at submission in v4 made this much more likely (sashiko review). - New patch: walk cbt_list under SRCU, so that a sleeping bitmap page allocation no longer drops the RCU lock in the middle of the walk, which let a concurrent CBT stop or resize free the next cbt under it, a use after free (the pre-existing problem noted in v4). - New patch: don't sleep in CBT for a REQ_NOWAIT write, fail it with BLK_STS_AGAIN if a bitmap page is missing (also noted in v4). - Link to v4: http://lore.virtuozzo.com/20261027-ptikhomirov-vstor-149268-cbt-account-at-rq-start-v4-0-b4d92264f6a4@virtuozzo.com Changes in v4: - Only queue the bitmap page allocation at submission instead of allocating there: the sleeping allocation dropped the RCU lock in the middle of the cbt_list walk, and could put an extent into the cache of a cbt that a resize had just replaced (sashiko review). - Link to v3: http://lore.virtuozzo.com/20261027-ptikhomirov-vstor-149268-cbt-account-at-rq-start-v3-0-e1bc61a829a0@virtuozzo.com Changes in v3: - New patch: account a write delayed by blk-throttle in CBT, as the throttle dispatch work skipped CBT (sashiko review). - New patch: shift the CBT block size as unsigned, and use the unsigned shift in the new cbt_set_present() too (sashiko review). - Link to v2: http://lore.virtuozzo.com/20261027-ptikhomirov-vstor-149268-cbt-account-at-rq-start-v2-1-c64ee6178730@virtuozzo.com Changes in v2: - No GFP_ATOMIC allocation at dispatch: bitmap pages are now allocated at bio submission, and the dispatch hook only sets bits in present pages. - A page missing at dispatch (a write submitted before BLKCBTSTART) is allocated with GFP_NOIO from the kblockd workqueue, and dm-rq returns BLK_STS_RESOURCE so that blk-mq dispatches the request again later, instead of setting CBT_ERROR when an atomic allocation fails. - Move the hook from dm_start_request() to dm_mq_queue_rq(), before the request is started, so that it can return BLK_STS_RESOURCE. - Link to v1: http://lore.virtuozzo.com/20261016-ptikhomirov-vstor-149268-cbt-account-at-rq-start-v1-1-1f20b151431d@virtuozzo.com --- Pavel Tikhomirov (8): block/blk-cbt: don't read a released cbt in blk_cbt_update_size() block/blk-cbt: shift the block size as unsigned block/blk-throttle: account a throttled write in CBT block/blk-cbt: read a map slot once, publish a map page with release block/blk-cbt: don't overwrite a map page with CBT_PAGE_MISSED block/blk-cbt: walk cbt_list under SRCU block/blk-cbt: don't sleep in CBT for a REQ_NOWAIT write block/blk-cbt: account a write request also when dm starts it block/blk-cbt.c | 308 ++++++++++++++++++++++++++++++++++++++++++------- block/blk-core.c | 5 +- block/blk-throttle.c | 5 +- drivers/md/dm-rq.c | 3 + include/linux/blkdev.h | 12 +- 5 files changed, 288 insertions(+), 45 deletions(-) --- base-commit: f5d1fdcfffe101fe2bafa7df09d95d2e811c5c5e change-id: 20261016-ptikhomirov-vstor-149268-cbt-account-at-rq-start-a592cf2010aa Best regards, -- Pavel Tikhomirov _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel