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 B88E28017D for ; Wed, 28 Oct 2026 10:13:10 +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 69SABw9A018384; Wed, 28 Oct 2026 13:11:59 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69SABw9A018384 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="bF5miU0j" Received: from mail-yx1-f69.google.com (mail-yx1-f69.google.com [74.125.224.69]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69SABYQG018321 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Wed, 28 Oct 2026 13:11:35 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69SABYQG018321 Received: by mail-yx1-f69.google.com with SMTP id 956f58d0204a3-67694007c9cso1477538d50.3 for ; Wed, 28 Oct 2026 03:11:35 -0700 (PDT) X-Gm-Message-State: AFq9FYIKNkCPi7ou1NYVfOwiJideE/+iX3IIjaxU5jDnmMQzN2mfTxkt H5nozOGgVMHIC5dxw0FE+VldnTGxferFGZ6ROlKy7X1tYEp9cMmqKoGJ/3Ru08s/SbrO/TAnUDZ Dkb15mf+gHENcNE6xXSMjMvQiGnyoWuKDkBEmZimBQ23sggOj3RnkSg== X-Gm-Gg: AYBFou1Az1U5AjR88Kh9t8CTElvgu6Zm21QP0sx2HvYvIJ7vu1SbbDNOJZvedlqxelA v/VZJnfFp4R4lKJ5KLT8027zjgAmCsLmD/nF1a4t7WZXulbuLQHimxTNyHhWgK41RpA6szuUjid wBmZ7nmLHNQCYuYSFBgJtsNy1RAF9rjtMihc4Sh9V68X47gmz5TnTYElHURuJ6UsZ8wjutmh8ty EIy9ouKLpV/00nt5OclomvQGdR+lknRHBGgiRqdEWIDYr3od2tA+rmGdL2ozoQwnQ51HZKCF4nN d+2XmRBZciPkj5pZSzszfgx26+6P1nMlu92GUM5R1BX9fBsgCKuBWQb2fLrt95HhE3ZqcCzOLHl Li1BRqcWwYu6AHEj+14yG4mpLBo4LmnYkDTjX/Ga08k9BjzbEEOK8x6h99UUKxvpGThYAChjPFo gOjjWHtPYw2kLQrV6K65AWB+8YnlpI X-Received: by 2002:a05:690e:1697:b0:674:6809:6f15 with SMTP id 956f58d0204a3-67a7b80da72mr2215982d50.0.1793182294150; Wed, 28 Oct 2026 03:11:34 -0700 (PDT) X-Received: by 2002:a05:690e:1697:b0:674:6809:6f15 with SMTP id 956f58d0204a3-67a7b80da72mr2215965d50.0.1793182293622; Wed, 28 Oct 2026 03:11:33 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1793182293; cv=pass; d=google.com; s=arc-20260327; b=qwsuAq2XAls16r/xUAwKseY/L36jrafzDByydX6abRiRZdguvSOlrK2Sq31IRO8bAC AzRy5rXXVC3l1ph8kL9xLviRUKDJlrsGur62NdS1yWeGupyQJpB+lRwcTM2u2cYnowsK 7G7dMnSYBtw8AlcsSRt2UaMp/C270985ZG6RUH4NSYxG/osWPf7kv2/7aK4cniMcWnbB r64RSr74udiUKCcppd/RXhtmMPQvE94Hdiem6wdXpFiEHKPLA+38CJh/eqRnU3NPYkUw e34ucREZioXrVnNIy3f/GXt7sxpSZzBuPAj6B8C4jq+0sESskoMG5WU+Gjt5yg6f2VLG kB7w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=mime-version:cc:to:in-reply-to:references:message-id :content-transfer-encoding:subject:date:from:dkim-signature; bh=NgnazlzeGRQCcIbNolGQPxv3jFHig91xRTW4ZqeIUlc=; fh=y3TfVeQA9QYtIzD5Inxiyys5ebBfyOgjQPZaP/+mSiI=; b=JRSymSdr7SnNPss+dK8imGGQ+gUKTMdD9g8cJuj50Apq40a/MFkA7K0WAbRt3KJFyw og+86/3yhsdBYngm3bgyDrKfXxZhfd6zSBTOZFqutirc2Lze+8EomhsVm6xcUpkLegFI wpsoNO54taEs/MFdpcH/i7weYBoCFe8kACKvM51XJiyz8ViZZSBInSDG135LeShuOnq4 2aKS8FlihrMESljua2d9CgzI+VysARD1gSzz/yJhgCScCa041jrqYezmNQ99YWwKp3BZ NeWgtGi6lqHf7wIdVgchahJhD4FLX1IOlFpTUc4rc4NqD4gI3jBnO7Zy9t91k49aICvv IoZA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=bF5miU0j; 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::1 as permitted sender) smtp.mailfrom=ptikhomirov@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazlp170100001.outbound.protection.outlook.com. [2a01:111:f403:c200::1]) by mx.google.com with ESMTPS id 956f58d0204a3-67a7a146ecdsi2182507d50.241.2026.10.28.03.11.33 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 28 Oct 2026 03:11:33 -0700 (PDT) Received-SPF: pass (google.com: domain of ptikhomirov@virtuozzo.com designates 2a01:111:f403:c200::1 as permitted sender) client-ip=2a01:111:f403:c200::1; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=bF5miU0j; 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::1 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=P29jQBta/U0iCklkm3YB+J4qX0z79Kp2kLlBlE9rn1ZpBULIqtCNnnSSpnwS4x3V3fw5NwBdrSdXgJvvN1AjVLo8l1fs5Quqrra6AN2JFvSVntDfqYj4zEMH9X0N4DR995wFXhYGm3PphxtmjNyIGQlqPd+4yQUMX85kNu74dEDYZj430t4Wyq7YL5V5zr2N+aQbs8BVMCEYSi5VQosHxtWcQY2iZUpCF8m1/RmoAB6qPTKC3zTg4gGjyKrGFpqSf41CZFjit6RH2zxDCrjXlMOZ0+xcPuwC84Gst0BcbmA5H0Hjtv4dSpfLHe+7ZA2BfIn9mN2izgiFrrjGZriAxQ== 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=NgnazlzeGRQCcIbNolGQPxv3jFHig91xRTW4ZqeIUlc=; b=WKl9zkxWFj6lTt2kgXtplaBmyuDIks9T/wQpnWH8rLomvzn02SNAtrwzo969K5MEY69sDJ+tOmQvnOsgIEN7mUP/aaZ3FpSRKKuUwob4vLUjpbhMsSPj3fi6j7PTLXcQalC2knbjPgGpWEiffuY+j0nm1yQ/7c3dEbVtmpYDX9/otv1yqXr8h6oVOTHzFk/QJT/cHLxGlX4kXb8oYTHRBcwQYyprBOmHUTUQe2fLXzyKFUXO9g+k369oyqKWT+qGW8l+lewK8Fnmh5sWGtww/Hz/YWJTbw+6F58TXg8lCDrKVPwmKM2nC1EbXGqnxwAyvaaClEZYmrTk0mPGSF33zg== 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=NgnazlzeGRQCcIbNolGQPxv3jFHig91xRTW4ZqeIUlc=; b=bF5miU0jlBRYKgT9xoR3e3BQqNSuFDei7OZJpOW1Hm3e/u/Q/rUWdTJAzYWxKb7wn/b+uX0slgKxDCrOqXDoDV635IjLBN1nhANcUGVYhwpa74uYBgRisKC3YYjP2zdTngMMusaApp0w+SOorgKpClNdbMh+MbTfjp42YnFRiQrM6V2PzXYijYHXgzHHZ96/K19CMO4guzGF8vTgZ8m7ryhm61Jp9GQiwDEZi90giARlbVFrUSt54Cz3pdyoO15RgbQRwpdDiiEJiacuUUgnv601YkWgy5+uI6zcFeGaFP5aNkH4OkDWS7DsI7xQNJPd9D9NGatRPrkbJeiPShNF8g== 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 AS8PR08MB8802.eurprd08.prod.outlook.com (2603:10a6:20b:5bc::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.569.8; Wed, 28 Oct 2026 10:11:27 +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:27 +0000 From: Pavel Tikhomirov Date: Wed, 28 Oct 2026 11:11:25 +0100 Message-Id: <20261028-ptikhomirov-vstor-149268-cbt-account-at-rq-start-v7-4-5c48672191c2@virtuozzo.com> References: <20261028-ptikhomirov-vstor-149268-cbt-account-at-rq-start-v7-0-5c48672191c2@virtuozzo.com> In-Reply-To: <20261028-ptikhomirov-vstor-149268-cbt-account-at-rq-start-v7-0-5c48672191c2@virtuozzo.com> 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_|AS8PR08MB8802:EE_ X-MS-Office365-Filtering-Correlation-Id: 418127c5-9c92-4ed4-0e93-08df34dbd433 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|23010399003|366016|376014|52116014|10070799003|1800799024|18002099003|22082099003|56012099006|261026121527099003|261026140227099003|10067099003|261021121427099003|261021123027099003|261009223027099003|261022105027099003; X-Microsoft-Antispam-Message-Info: eDiyyDOyK2A57paW0rgNPIz/+dICLUgt98nVLsI4LpdhZToo6FsknsgKuNLUzFYLfgjku6o2yu1Fl10C9b/B7qqDsaekuV3Mzz6m8lMATF5wfLlkVfu38SgjtIA+gHF3dsV+CwafYsYqkI6fuhKzUUWXr5WnXCEqWHy3LtIIPLhPTdQxa5Y8lHgrZSECWhlFyTMj5uT29nraw7v5ManQAclzQ4oh+iTIRVjSDop8glg4RlUyCNicggRz8DDz+LAxUL+vFXOMyua7fFegr4Xn4RFNKVIOeIR6qGADI6ggMeWWgBcPRwg3qlCL5o6nLCUJxelp/9nMFrYz7cioFJKjZXEMCFLkAfDwIWMEk0IgjQCe888S135YR8KgikrPZ636YvGWp3aJVBJ6nEnb9mM3Wk2JQlW4SMxk91tYHoiM8bz7hB05xThiAnT8ZFqh2Dbu3J3HEA1FTK3yLMaIGYDYO3dfoFITJ6N+jR/6SZf7VXaA4Vu0zWvG9bLCLTqZei2CDGE/IpZt1N4658RiBMI1giSRLY0Cq82QRhtjgFaSFnLtVv9lXffDgfU4m4ieSHCUNOpeIsAtGDABybHbIs7r2GEXENoCbWpZJS5Qw3WAjxGa3iIz3O4/+PlFhu7lKygq 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)(23010399003)(366016)(376014)(52116014)(10070799003)(1800799024)(18002099003)(22082099003)(56012099006)(261026121527099003)(261026140227099003)(10067099003)(261021121427099003)(261021123027099003)(261009223027099003)(261022105027099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QUdZSTQyQnpOdDNmTVY2cWNBSldYeWhDRWM3Mk9EM1ZkUzkzZ2Rsc0hpOE5m?= =?utf-8?B?Z1RnNWpIbnhBS2IrNmdFOTJCaXNCVzd1aGMrTzJuc3lKbk50RFlnaUtsMGtG?= =?utf-8?B?U0xhSXJqMzNOLzQ2cHBVM3BGSXkvRjA2NXhqODdkMWVsN3FqVnljUG15a2tH?= =?utf-8?B?bkMzUGF6VkFlTzJZTllOWlRsUDVsQkR2emZxc3FBU05NVnIxRHZ1Yi9URGU4?= =?utf-8?B?ek1QQnFqTXJVSmtJNlZTTGIzWU5LeUMxdnh3czhnbnNmbG4xU0pTSW8xZlN5?= =?utf-8?B?Tm1WamFVa2d3T0pWSzJTWENGam1yS0YrS2pzcURCVzRUZTZhQlpVM3cvR3Rl?= =?utf-8?B?aFkzZm5aWm1OeXVMcGFEU1lnWHVaM2RndW1RVnZUd3FLOHBoRmxBWXNPZ3Zq?= =?utf-8?B?bEgyckRsNVkvOUx3VDJDS3BrZzRkaDRpZXIvZEFmdmdlcG1XMHg4ZThpeldG?= =?utf-8?B?YzBYRVBmd1RqOGgrdThlRlo3d1l6bUxlWVJHMlBwSjdqY1J2QjJMbnNzTExp?= =?utf-8?B?WEFkUlFvSXhHN09RWEYzY2RKUkpVSFdYK3BZSk9mY1JlczB3dXl2TmdLUlJK?= =?utf-8?B?ZzBJZk9Eei9BaElmTkxCNTR5ODV3N09CM3hSZW83c05SK0h1ekVkOCt4c1JE?= =?utf-8?B?QnBoUWdqVkxtbWQyQjhGUGhUSDRmdFBwTEdJS0pTTyt2bWErZXE0SzJrQ1Bx?= =?utf-8?B?Ykp5ZnM2dEszditFR1VSb3RuSTFFRHM2Q3pLSng1bEVKRk9JdkxNbUVscW5B?= =?utf-8?B?QXhKQU5GYVJGalZOWVEzd3hDdGFqUG1xRDBGVTdXNWliOERmVFMvY29YakhS?= =?utf-8?B?cTNPZlFXRklEblZJNHEyTDZsTEZXTmZubjVDRy9yVnFDclRaUVl2akxoYWFw?= =?utf-8?B?cWF1TllPeG54MWt0alh5RTBsc2dyc3M0RlB4VzUxRVNJL1U4VlJ0bVd3b3Jl?= =?utf-8?B?MzhIUlFzU050emhoNFQ2cHJEWnJITlk5Q3hnSk9KakpxMUhrbnJaaGdmTnhk?= =?utf-8?B?ZUVFbEl4WkllQkltTHUvWCtjYXJTZW4wZ0l0bndrb24zRVNuUk1VMFYyRHdn?= =?utf-8?B?bFlieDZVV0RUVWJmQkRzSHBTV2hjQ0lCQVZDSlJSekV5aWVLd0FMWHdGZjVU?= =?utf-8?B?M0VISUFhalp2ZXpCVnZxREM3TzF5OHlWOVE2bmYxRVRDdU9TcXBBWVhMU3d1?= =?utf-8?B?cUgwdWdMY1JLZXNJQXpxTkhhQ2tnT21Fd2ViSFpvYUNSWkhDZjNKWGg2dkNF?= =?utf-8?B?UDhIMndFTmg3M3REaVlxK2lqdDFsNjR0SGE1ZndKWW9yZjV3eWFDUFZhcXY1?= =?utf-8?B?eUhac0lmWGNNSFJLTGRyMEtzK3BFeUp6a3hrU1pLN0RsNjI5NUZkdVhTejYr?= =?utf-8?B?dEhkUGhKTW5LK3puekN5TjFyOVh4RUlETXhId0w1UVJlVG16R1BUK3NsU05o?= =?utf-8?B?MmMrd2hodXN0Z2xIYXp1ZFJ0RmQwbXFEWmVFWk0rWDk2V0VqUVcyb1ZQeVl3?= =?utf-8?B?U0ZBYnZsc3F0RlBrV0FlM1d0N0k2Y0xSUnNqdTRiSEY4MWJ3ZVpHcGtVU0Nw?= =?utf-8?B?WXRRZlN0N2ZySmJyMHA4OXBEUWNGMWNDYzZGK25tblN6TkNUM2YxSzRZRUlt?= =?utf-8?B?dXlBSm9SM293aFBoWkoxYUgwODlpZnNOUHZGKzIxMmVQR3hKZ3FIMzhIOXQ3?= =?utf-8?B?RWg1RndRdGpSN0l0dGNtbFZTcTlEVDZlMUZhQ201SmduVHIrcGhsS2kxRUxE?= =?utf-8?B?SE9WTkJLT3h0RFZ5eTRwMnUxcVkxTDA5UEFzSTk4R3hjdmhKa2dBODFHWGVo?= =?utf-8?B?M283c1VNRmkyQlh6SjVuTW1NYTV0RjFrYmRzVmhHcmo4bm1jSDMrS3VvVDky?= =?utf-8?B?VmNxVlp0YkZZaUVKa09heml5SlFlQmNaR3Ezd3d0UEFBNnFaV0FEb2VLQ1VX?= =?utf-8?B?ZGtISEpYNlRWOEIzTVhXVmoycHBxT2VOYjRPZ2xHRktpWVpuYWxRb1BiYW5D?= =?utf-8?B?bFJieU9mQjlsMTdLYXlFR2FSU2hKdE5lSCtTM040emNlYXFPbTk0S210bUhy?= =?utf-8?B?Ny84RVJ0cEdOS2E1azBBYUNEOVJPU29EMTY3Y3REMEJ5WFczd2QvS2pGVzRV?= =?utf-8?B?dVhZY1c4YWlkWklpM2NwYmcrbU5qemt5Q3RwdmFBK3VET1BackNPYTVtVUtj?= =?utf-8?B?anlqb0E5UDg0V1RFNk9GNG1GOHNaR2tnY0xDYXdYOEJsbHQyZGlWYWFya2hV?= =?utf-8?B?ZW5sWXNnSjJMcE1ZdjcyWkxPZHQxRUNNdWo5WWhlK2lkcklmT1YzSTF1WEJN?= =?utf-8?B?bXRjZ0VFTnByMkZ1Z3p4UmRkZEdRaEFLb25HOUxVVUNvR1BNUUl2SGhMVlp1?= =?utf-8?Q?Xa91CNXN4qbzNlYQU3QWEiugVlUh2upWQK5uUqdcfdB7r?= X-MS-Exchange-AntiSpam-MessageData-1: lte88TZOqFvuHiBeSs0kugWFVjPqe3v+2Y0= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 418127c5-9c92-4ed4-0e93-08df34dbd433 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:27.3162 (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: vvsE0fTJooHwPDVRgmg69FSqSfSS6AwAZMjbtILPU0BfLd2bMvLZgLsqbjvNVvrCqqZpBXAh+/OsJnWM4Dw3rKYKlowZ7Xa2C73FnVF2PRo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8802 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 v7 4/8] block/blk-cbt: read a map slot once, publish a map page with release 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 CBT_PAGE() loads a map slot twice. A lockless reader racing with the cache flush, which marks an empty slot CBT_PAGE_MISSED, can get NULL from the first load and the marker from the second, and then use (struct page *)0x1 as a page. A page is also installed with a plain store under cbt->lock, but readers don't take that lock: on a weakly ordered CPU a reader may see the pointer before the page's zeroing, and the late zeroing can then clear a bit the reader has just set. Load the slot once with READ_ONCE(), whose address dependency orders the reader's accesses to the page, and install a page with smp_store_release(). https://virtuozzo.atlassian.net/browse/VSTOR-149268 Feature: cbt: changed block tracking (for backup) Signed-off-by: Pavel Tikhomirov --- block/blk-cbt.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/block/blk-cbt.c b/block/blk-cbt.c index 850a78da1dc24..970a69ea8d58a 100644 --- a/block/blk-cbt.c +++ b/block/blk-cbt.c @@ -27,8 +27,11 @@ #define BITS_PER_PAGE (1UL << (PAGE_SHIFT + 3)) #define CBT_PAGE_MISSED (struct page *)(0x1) -#define CBT_PAGE(cbt, idx) (cbt->map[idx] == CBT_PAGE_MISSED ? \ - NULL : cbt->map[idx]) +/* Load the slot once: the cache flush may mark it missing meanwhile */ +#define CBT_PAGE(cbt, idx) ({ \ + struct page *__page = READ_ONCE((cbt)->map[idx]); \ + __page == CBT_PAGE_MISSED ? NULL : __page; \ +}) static __cacheline_aligned_in_smp DEFINE_MUTEX(cbt_mutex); @@ -148,10 +151,12 @@ static int cbt_page_alloc(struct cbt_info **cbt_pp, unsigned long idx, return -ENOMEM; } - if (likely(CBT_PAGE(cbt, idx) == NULL)) - cbt->map[idx] = page; - else + if (likely(CBT_PAGE(cbt, idx) == NULL)) { + /* Release: lockless readers use the page once they see it */ + smp_store_release(&cbt->map[idx], page); + } else { __free_page(page); + } page = NULL; spin_unlock_irq(&cbt->lock); -- 2.55.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel