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 D5A798017D for ; Mon, 26 Oct 2026 12:36:49 +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 69QCZSjs010679; Mon, 26 Oct 2026 15:35:29 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69QCZSjs010679 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="B0zhCejh" Received: from mail-yw1-f200.google.com (mail-yw1-f200.google.com [209.85.128.200]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 69QCZPGp010675 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Mon, 26 Oct 2026 15:35:26 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 69QCZPGp010675 Received: by mail-yw1-f200.google.com with SMTP id 00721157ae682-8b17054a7f9so14756887b3.1 for ; Mon, 26 Oct 2026 05:35:26 -0700 (PDT) X-Gm-Message-State: AFq9FYIe7NzbsMFTlc8fz4WOvFTJaS+e8Ey8yUC9V0Q4B9Wnc0hOmHqF GLBv2fnP+nO7f5vVxMkO2wtMXlnVy6Jn8EkYRP/KkK6s7PYZkX17ZM37cXVG2uAuQFWQ9DSjdNH riNqRArLymjaDQtdM9L3hbaL8dYQyA8kD7H1CGF5iZB+uetY0wsCVrg== X-Gm-Gg: AYBFou0AxrAaUU1KKlAA/kD2IykH5YO3G5PMdbF7+6d5+sJjoUbJNnLzHmdgGcZn+C/ +4G2s/ISyIbWUc5LayDxSBEA56Etx/mYByQQix9bV0IpP6m0bjGYtN3JXkgJ0Kgwg24vVfTJv0V W9Ofx1N3n3zxuv5D9SCQyFIl1B8Awnc6jOt1yswuFHpZXzlpHyvPek9ja+Nl95diOg5TRbccgbo 0Cs84nxquDQ7r3bzcKI62IdyfAVmFKaOdPZNwALHubqkN7nTwkkbaCWWeq+pWJj8kH/7f/tN8cs 1RYU/rQbBywqG+X52eGZWqR/Qr9eisHsKICgT17YaoKs0/eqijrFzzjOSwswEKxaQPVHd4YdXp1 0WRFU5FEG+fsG3hAno74zgRo478nlFcoUa3hEwwkhUKKurAgY97Bm0fTQshiz6U0Ofdg2hO3H6o Xj0ZcTXh2b5K4hwewj73nyKrmTMZE0SvhxN8VS X-Received: by 2002:a05:690e:408f:b0:677:c87c:d2f with SMTP id 956f58d0204a3-67a45193680mr5748276d50.15.1793018124750; Mon, 26 Oct 2026 05:35:24 -0700 (PDT) X-Received: by 2002:a05:690e:408f:b0:677:c87c:d2f with SMTP id 956f58d0204a3-67a45193680mr5748263d50.15.1793018124135; Mon, 26 Oct 2026 05:35:24 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1793018124; cv=pass; d=google.com; s=arc-20260327; b=EXm54tDJDAh6+JIaZ1uwdc2h4K8aLg32H+KLa9/7a0fb3XnkB9w3tuzGfi491Mkhpk VmeMebTpM1sp50YLJzajc9Ktv1TAkAv5Hiylw5Jr6rtD+aqhdRB5xDl+hx8iJ03ON8IO 3Wd4Lct7ZoS9J8/QIBLcAaaU/mtJIYT8K7ULYjDNMnGAFmyZOOemC+mBKZONmibMMAHA D5jfSmYiLrBRx30VK7eDBOhkW/YsvQ/Ch8UwEC1PhukrEGATgj/5znMsfwVGqa2CQp1N CQ9CsqoPe3xxz2JYRQRXTEu//Dy1g4+DR3vePKHR4JsuUJKEM4RWPNCN8so6/ALDid0s TPlg== 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:content-language :references:cc:to:subject:from:user-agent:date:message-id :dkim-signature; bh=k8tFRAvdYGFBU/i6tUGrTZnftEK2Q6NgVmXddFwREoM=; fh=ay/JwXfEOyN1tgg2yevN0bzlSLnl8vD9iTwY3zx0C+w=; b=bNIeklvfPw8ngTutiKN+c6OE8LdZksJhJcqF3OWJC4bxbksK6Ow19lwbeki6WZTNHR 9qhGjyWHeEeZ0RI3Dw3812u3NppEoqTRxh222f1/OMGK1rRM+09sW2oSNHUDdY3F83Lp HP/2yYnU/19iRhg3F7wIkQqv6RA/nbwmFLAaulFowmp6gqAh2clD47ss2EfaH53eZNEj hK7JFomVXDIN5z3U9MuO+Z8hFSx/p2xnWc+MWHuX6IMaBvQeCwLKhCNV9gGvlv0WaHg0 xZ9CqKdZOzbWdfdj0jqy3dVJovsi7cZxsmZ/aoPXLOlPDAjm0m/XS4B4cpgu3CzWkwgG 5/AA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=B0zhCejh; 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 vladimir.riabchun@virtuozzo.com designates 2a01:111:f403:c200::1 as permitted sender) smtp.mailfrom=vladimir.riabchun@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-67a4614d3cdsi5020957d50.78.2026.10.26.05.35.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Oct 2026 05:35:24 -0700 (PDT) Received-SPF: pass (google.com: domain of vladimir.riabchun@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=B0zhCejh; 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 vladimir.riabchun@virtuozzo.com designates 2a01:111:f403:c200::1 as permitted sender) smtp.mailfrom=vladimir.riabchun@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=JGiw9WFU32oOp1PbydC/r3X38MItPlaUjjhXOapbgdfT4e7Tv11z8v1tIx8LxypRGz4EXMrSOAkEsoz8e53Atg9WRSliRm91kIom3PxVuVJUlTtxg3sWge/IRZ+ZQADaV1PgULvIB58EwDQUnl5IfmWq1FLZ96SE896udfCTaQmr/kn9lN1yiGcBMekhhVJTxTE8Li2sYohpiY7vShKaxDmvGhSKGQl9cqvdD8TaPbWCMNQ7RkjHRfytEVI22NzzQaoKTsR0LzWg8MGrM9eHrYy//FoiSt9X5EJe4rRMcfBZGqXNvkEWgMidRLIfeb+1qA65iebMEQs/NOLCl7wT5A== 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=k8tFRAvdYGFBU/i6tUGrTZnftEK2Q6NgVmXddFwREoM=; b=U48g3KWC3FfDhR2oIXHzYs/0H6zeSEpODN1J8fw9g5s+6xz4P+0UL7eW7mjy9LqWfoYoYvmQ4sOH/dFOp6PClBU6hRJG3Tarc1IAVJ157MXAzm1X/cMBvOKw4FukqpSFnbXcykCjWkgjDLIlu68wDlR76hAxvcSyfPtkDWY9TUNnI1SgKPiLsHt4D3BT6g/bZ1jFLvn7s733N+/XwsMk2Jj00rJZtt187G7nORsIY6yHiE3qpVjWrsTvlOSdU3m/1vwRejfM9evA09uwzNVZ5yZhcNkMnlGsDR2jhWNOdS3JgTn2Cu0SfT56inFYCoSnI4h0vjRM53mNMkYJLIe3oQ== 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=k8tFRAvdYGFBU/i6tUGrTZnftEK2Q6NgVmXddFwREoM=; b=B0zhCejh6OVDw/fEgDhRpESQ8UfAu8DLWDJgT5iZLQ6JK2qBgk7lz6jdKVTuRZ10ja4Ngnvfz0gzeskbKUnGn3iHSD70tQuNDuMY/tcHIkBfXLq4GSyLYIiYRVksX8c6Z5XimL5SOEYjHe2NcegAdbSZByO2vIzVgdimuTUh8DHT1qQ/T1N8gvGnZW5l/WYdxGSkhT+Rbjpehimf2LOdjxkraitYlWlxGCKivGCdyBBBP7KXzuHUh7pnf659mrVbjenTmGZeC1+1hbxjGINSENzI42aVZmYJDSWYPbBlQ0DrBdU9jOpia2Z5w+YZjCVX4G1HgfL5NgSDm3sJ97+RKA== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from MI7PR08MB201474.eurprd08.prod.outlook.com (2603:10a6:290:112::17) by GV2PR08MB8099.eurprd08.prod.outlook.com (2603:10a6:150:7d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.546.20; Mon, 26 Oct 2026 12:35:19 +0000 Received: from MI7PR08MB201474.eurprd08.prod.outlook.com ([fe80::f35b:af88:bd82:6dfa]) by MI7PR08MB201474.eurprd08.prod.outlook.com ([fe80::f35b:af88:bd82:6dfa%3]) with mapi id 15.21.0546.021; Mon, 26 Oct 2026 12:35:19 +0000 Message-ID: <386ca990-5d2c-4461-a097-6a3918099d9e@virtuozzo.com> Date: Mon, 26 Oct 2026 13:35:18 +0100 User-Agent: Mozilla Thunderbird From: Vladimir Riabchun To: vasileios.almpanis@virtuozzo.com, Konstantin Khorenko , ptikhomirov@virtuozzo.com References: <20261022-ovl-use-orig-ve-v1-0-da84c00c8065@virtuozzo.com> <20261022-ovl-use-orig-ve-v1-2-da84c00c8065@virtuozzo.com> <010701a1642a2e18-b1cfacb8-f312-4f55-8140-67444c28e1ed-000000@eu-central-1.amazonses.com> Content-Language: en-US In-Reply-To: <010701a1642a2e18-b1cfacb8-f312-4f55-8140-67444c28e1ed-000000@eu-central-1.amazonses.com> X-ClientProxiedBy: FR0P281CA0007.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:15::12) To MI7PR08MB201474.eurprd08.prod.outlook.com (2603:10a6:290:112::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MI7PR08MB201474:EE_|GV2PR08MB8099:EE_ X-MS-Office365-Filtering-Correlation-Id: 66f2b5eb-d4d3-482b-120b-08df335d98ac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|1800799024|376014|23010399003|5023799004|4143699003|56012099006|261021121427099003|261009223027099003|10067099003|261022115727099003|261022105027099003|261022075727099003|18002099003|22082099003|6133799003|3023799007; X-Microsoft-Antispam-Message-Info: HWjxiVC2v1mCmAyKIGPwNXykjrE9lxUnXg6FcmdFQXahFdygqhBx2I494ti95H2ntmPW3WoCWquDNgOUc581U//HjZQJYien+FUtrTcy7NtkWuwxAD4NLMgXm2TkatlBK/ZTsaLDD+cx0yFjHOXBBlsU3Vn+3LQsPqD822kS4jzqlng2x3dR8moaB2lDvg3+1hceMq/aHTqS1b5cv6zTL2tHab87exb6kW0C9O+EEeNXBCZK0T/pkXBm4rSaIpjogfycsWF2wlz2T7jg/xTe8oUAQTrJQ5BTaD2QkWEaqNS+symDCi+7PomirwlwpV3Pv2crg69LVT7VWoEWuMA0stv30sdR9qOuMcoUa93ZsleNnZgyaYRmGP/3P+a3a37a8YjTzAYU7CpBozy0rhN05isTAhsB+V8+PuMLmaL8yzCReojHeOuzCOnzG4nh3q4hDhY0kdkIUgbBxb3ELZcWQf0oAz5seDzlMD1ztMMRl9E5kLrwDzbW6OSrsRvqyWLonWzoNG1ezsPaSrOwSF4aB9N13Ui1n4WVGvvolPTpU0/rzllRIDfL7ZpyqZvgyK7UrpWXCbVviri/IUBKrak9D7Il5A6DeWPdl58txC2ZoGGkwR69P0fIzESHTJS4bhdt X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MI7PR08MB201474.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(23010399003)(5023799004)(4143699003)(56012099006)(261021121427099003)(261009223027099003)(10067099003)(261022115727099003)(261022105027099003)(261022075727099003)(18002099003)(22082099003)(6133799003)(3023799007); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cDNUWmtuVG9BMW53L2JGU0krejcyRFdwUE5PNTUweC9nc2hibC9KQjRGaE5r?= =?utf-8?B?YTdTdC8wck14Q1JvbDExTFhhaHpYUXY3NWZ6NTY4NnNja0Y2SnBVYTgrKzRi?= =?utf-8?B?UWFiY0JyazB0Nk1wRjRiYlZ1TkFUcy95SG1jZDg5R2hWcGF5eEtVQkVmVDRm?= =?utf-8?B?d1Nja0Y4eWR2MkNWaHpud3JNQ2J3b29EN2JTeTZyOERzaWt3cFFCZ28xTjBL?= =?utf-8?B?NkJvU29zZEluVVk4WjJ4TjR6TUJwY0hOc2xXL0xQQkpiOUtlV2tPQ1NuMGhQ?= =?utf-8?B?Y0RjQmdqVXRTM2JCTXNqZHE5MXRrRHIxeUFpc3BpNjJDZTduWjhNVlZFZU5E?= =?utf-8?B?eU9YRE9lUEc3aHJRRGxyZzdpQUNSUkxwVldZRWREZjZkaVlrYklGaVpzMlZM?= =?utf-8?B?Z3IwUVUyelZnYk94SFQ1aGtjS2hXeEcxVGdSUjRKVVpXY3pmQlFaNzBqRUdH?= =?utf-8?B?ZW4zakNmaHN3QitHcGR6Nkd6c1JIc05XbzE3WmhHUlg1SitJdmpBMlkvb2ND?= =?utf-8?B?V0EzK1FQR3dBbUtBYlAvVE9OQXBsK0Z5ZDVYb3ErSkxRb2N1QmNQeDlmZVFp?= =?utf-8?B?UWVmOUx3Z0hPb24xcXgrSWJlWUpxOFFSSHhyUi9ZVnNUL3lLS0ppOEd4NjlO?= =?utf-8?B?Q3QrOUttbGVlYktwK0VTV0JLK042OFVaZklJSE1OeGNRMXUydlE0ZjRKS0NO?= =?utf-8?B?ajJiblU3SkVaY0sxV2dPeXl3V3JJelMxZEo1YXNHdFZCK1QrRmQwTjRqYVhu?= =?utf-8?B?bWN6KzNMOW9Pc1ltbm1ZYjVpdDdjblBZY2hlNnRrZ2QvamtNN05raDBmM2xt?= =?utf-8?B?aHpZQTBaQ01wWEZDS2xDSjRnVC81Mkk1OVBEMDNML2tzeFBaSi9sK2loOGw1?= =?utf-8?B?QmlNc2IwTUt1bGt4UU8zdEQ5eFBPNVVieVVzcXVDUlNRVU51ZDU5c2wvME51?= =?utf-8?B?OVZ1a3BnRDNldWlKbmp6L1BuZGZ6a1AzNU9vU3ZpMmE2R0orQXgzVUY3Sk1k?= =?utf-8?B?ZUxnMm4wemZaS2xaR0JDc1B1bDl0QktyOVBROVdPRTEyNk9ocE9GZUdGTWo0?= =?utf-8?B?V2RIdCttUDJ1RjdYb0oyQTdFbjN0TTFyY1JRZnEwcUl6Z3NjNFNIWjlHYVVo?= =?utf-8?B?TFNrL2hyRmdBV3dRMyszZXEya0o1ejNmK2xxM05aYTBPQlI3MU1YbTI4REty?= =?utf-8?B?YnVHaWU4SE5Rd05NUW1wK0g3dWpIR1FNOHd5c2lRdFh2ODdMNmNsakcrUUg2?= =?utf-8?B?NFFPdHpwU3NkMkJENzZ2T1NremFQQkorWTZ2WHpQZk0vN252ZE9oQjVESmta?= =?utf-8?B?VHI1Qzl5a3lYRUhjRTJYanNldTZ5WEhCdll1ZEdpQkNJZ1Rnb05lTVNnN2V0?= =?utf-8?B?ZWN3eFYyU1MwR0J6YVZDVUl0d2ZDYXI1V2pIeU5aVGswR3RjQk9tYWh1bUwy?= =?utf-8?B?ZHo3bklISUZrQ1JDR2U4Y1FzUWpqbGtDakFvWExzRXNKakM5bnBSU3dlKzY2?= =?utf-8?B?bEZuckpIemI5Mytkb0xQRUltYXNQQmhBYzFZbndNRGdVdUpKN2ZRU1pDdm5B?= =?utf-8?B?OWsvcTQ3NE9WOFdKM20xdEk5eFZoMDdTWlV1VUNVSU1sbHRON0NRY2xiV0Q3?= =?utf-8?B?MHZzOTV5QW45R1hEV0ZlZ3NPNW5QVGpKVEdvaVpFeVVqVFNVTlAwNklZa3FV?= =?utf-8?B?allRVEJlRE9GZE9kcTl2QmJDZ2UyYll3SmlNWUhYdGIrUXcrWXpIcWU0THAw?= =?utf-8?B?NDVRWEd3SGZIZUUxOWZ4QVVVbGFnZ1Vyd2F5Qk9lTUZwWm1haTlQcTlzSlk1?= =?utf-8?B?aDQ3ckZPbmNRaUoycENZMEc0U1dNenJ6d1lhTkdhYWtibUdVT2k2WjlYejFv?= =?utf-8?B?SzUwMUZ6WEI3amlwNGFjTWZBZ0VyRjQ3QTFXYTBtT012bVk1bXd4UFNYQzZI?= =?utf-8?B?RFJtSFAwdkNwUWRMaktXMk9JYmgzMzRCK3M5S2hDU3M5S1Nrc2tBMU14ZmFt?= =?utf-8?B?ZTUyS21meUZuVWdSSWhDOHN4SDZMUXRSTXFXbGNpT2dhNXZJaWU3NTQxaDZQ?= =?utf-8?B?QkN6WTJUK3ZKOExHWmYwSTZDNnVjalhrZmpQTkdmaHp2M2NtaFpXN2pjK3JS?= =?utf-8?B?ZitQNmhjNjY2OFlxMkJ0d1k4WWwxVVJvYnpUWGZnQXVkQWRtTTdKWHMvNmlR?= =?utf-8?B?YVZDRWd4U3dUWURNSDduZ1BMZWdRd0NmVURFdGJlY08ycm1FMjhjQlpEVXNN?= =?utf-8?B?M2tlZjk1Q1dDdnZhY0VDcDNHc2RFUVNTWjZXSkhTL2lIc1cybFAyL1BsMWpC?= =?utf-8?B?TkMzZjlVa21Eb0FEekhHaVpieCtqTVJvRTV4d1NrMTVNRUdyNHZFTVRmRzd1?= =?utf-8?Q?cea6e3bub6RC5yhU=3D?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 66f2b5eb-d4d3-482b-120b-08df335d98ac X-MS-Exchange-CrossTenant-AuthSource: MI7PR08MB201474.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2026 12:35:19.6863 (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: PMH+Oj2P9LCJ49BIxzHXZ0mW/1XdXUUeWb/KLsUt2grYE8eCYN6X5qfg4MYCdOKpLgWPhNAnJyTcyCpoA5ApL2dgV3P98Tlh6EL+a/iV8gQ= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8099 X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH hci-8.1 2/4] ve: Introduce override_ve/revert_ve helpers 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 On 10/22/26 17:10, no-reply@sashiko.virtuozzo.com wrote: > Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider: > - [Low] ve: override_ve()/revert_ve() !CONFIG_VE stubs hidden inside CONFIG_X86 block > - [Low] ve: override_ve()/revert_ve() store task_ve without WRITE_ONCE() or task_lock > -- > > commit f94943d7cf0e7cf13a560e724d14ae8e02ad7271 > Author: Vladimir Riabchun > > ve: Introduce override_ve/revert_ve helpers > > This commit adds override_ve() and revert_ve() helpers to include/linux/ve.h. > They temporarily replace current->task_ve, in the same way that > override_creds() and revert_creds() handle credentials. Stubs for > CONFIG_VE=n are added as well. > > Link: https://virtuozzo.atlassian.net/browse/VSTOR-142405 > >> diff --git a/include/linux/ve.h b/include/linux/ve.h >> index 717567775f58..157326ef91b9 100644 >> --- a/include/linux/ve.h >> +++ b/include/linux/ve.h >> @@ -295,6 +295,19 @@ static inline struct vdso_image *ve_get_vdso_64(struct ve_struct *ve) >> return ve->vdso_64; >> } >> >> +static inline struct ve_struct *override_ve(struct ve_struct *new_ve) >> +{ >> + struct ve_struct *old_ve = current->task_ve; >> + >> + current->task_ve = new_ve; >> + return old_ve; >> +} >> + >> +static inline void revert_ve(struct ve_struct *orig_ve) >> +{ >> + current->task_ve = orig_ve; >> +} > > [Severity: Low] > Can these plain stores to current->task_ve race with remote readers? > > task_ve() reads the field with READ_ONCE(), and get_task_ve() reads it > under task_lock: > > include/linux/ve.h: > return READ_ONCE(task->task_ve); > ... > guard(task_lock)(task); > return get_ve(task_ve(task)); > > override_ve() and revert_ve() use neither WRITE_ONCE() nor task_lock, so > the lock gives get_ve() no exclusion against them. The existing writer > follows a different convention: > > kernel/ve/ve_namespace.c:switch_ve_namespace() { > scoped_guard(task_lock, p) { > old = p->ve_ns; > p->ve_ns = new; > p->task_ve = new ? new->ve : &ve0; > } > } > > A remote task can hit this window while the overlayfs task is between > ovl_override_creds() and ovl_revert_creds(). For example, /proc code > may call task_pid_ve_nr(tsk) or get_task_ve(tsk) on that task. The reader > can then see creator_ve instead of the task's real VE, while ve_ns still > refers to the original one. task_pid_ve_nr() could then transiently > return a wrong or zero pid. > > Should both helpers use WRITE_ONCE(), and should the store be done under > task_lock so that get_task_ve() cannot observe the transient value? Will add locking and WRITE_ONCE in v2. > >> + >> #else /* CONFIG_VE */ >> #include >> #include > > [ ... ] > >> @@ -403,6 +416,14 @@ static inline struct vdso_image *ve_get_vdso_64(struct vdso_image *ve) >> { >> return (struct vdso_image *)&vdso_image_64; >> } >> + >> +static inline struct ve_struct *override_ve(struct ve_struct *new_ve) >> +{ >> + return NULL; >> +} >> + >> +static inline void revert_ve(struct ve_struct *orig_ve) {} >> + >> #endif /* CONFIG_X86 */ >> >> #endif /* CONFIG_VE */ > > [Severity: Low] > Are these CONFIG_VE=n stubs placed correctly? They sit inside the > CONFIG_X86 block, before the closing line: Nope, wrong place. Will fix in v2. > > #endif /* CONFIG_X86 */ > > With CONFIG_VE=n and CONFIG_X86 unset (for example arm64 or UML), > override_ve() and revert_ve() are never defined. The CONFIG_VE=y versions > are defined unconditionally. > > Patch 4/4 of the series calls them from the generic file > fs/overlayfs/util.c, in ovl_override_creds() and ovl_revert_creds(): > > desc.ve = override_ve(ofs->creator_ve); > ... > revert_ve(old_creds->ve); > > Would that fail to build on those configurations with an implicit > declaration error? Neither patch 3 nor patch 4 touches include/linux/ve.h, > so the series does not fix this later. Could the stubs be moved after the > closing line of the CONFIG_X86 block? > -- Best regards, Riabchun Vladimir Linux Kernel Developer, Virtuozzo _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel