From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id 02AA380024 for ; Fri, 28 Aug 2026 17:14:42 +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 67SHDRp6011676; Fri, 28 Aug 2026 20:13:28 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 67SHDRp6011676 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="Be4WPBQn" Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 67SHDOvh011672 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Fri, 28 Aug 2026 20:13:25 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 67SHDOvh011672 Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2cfa4e4684bso25991745ad.2 for ; Fri, 28 Aug 2026 10:13:25 -0700 (PDT) X-Forwarded-Encrypted: i=3; AKwUvBwlyM0Os+ZXOB37w97wJhm1Fkix1x/ah4FkH93d0n7Ixh+WM0CDrH4aU+OncrUFuOtEeqQGQA==@openvz.org X-Gm-Message-State: AFuF++k+WTQo36QGrvWmpmx0fWRnFvrOcIm1PDj7rUw7Tx/0niG/QS/+ QOV+tUInehv2/8z17dNjF24+mBhhPJ7dSU500OtGBAdfJ6Py5gI9+fMwLdKBYE1zTCXmbF0NaXT gKmqu0EBu2grWbtkqVwU6TjCl1b2EVQ5vHDyq661/S3nPpdVjOfP1AA== X-Gm-Gg: AR+sD11G80S4s84of+xG0alFXbUYTPRVXMpwo/WP4g4lBK3Cnmp+b4riLvC5WjO/qmw 9b46toiXIhSLCYCntFeLbUQEFXEk879/lsxSKu/mIN0drNaZRCH1jM8wa7HD2k1RoUSLci2xj6p rkmq/Yl5QTA4u4popyxtsS+xFh6kCZQPxlvf3cNAtI7Z92TX17hkxcp1g46FXEw7+6E6B+TuD32 ahSwfGl0ykJ6hun2x+NjPn4iPSfDLL4mOV+fwgRrF04IG4vNd0CueXcxiXq+oD8BD+YXHjRmRBr 5L/L3U8e5cp2yCvZhofySuqnOKZAG1+E2zjnHTZG/NSnTlcnkj+6hXprJrTWLh2lOvK1645N0px GImCQSeNB1G1apqvhrsA9GqO7gbYgPxha8SPIw5MnKZE/N9miMXgk7ZC38wuB3O1ljKjs9h1CAW yqbY5OsJUhI/kfTWumIn81 X-Received: by 2002:a17:903:2a8b:b0:2d7:1cee:3682 with SMTP id d9443c01a7336-2d74dc21e53mr164760225ad.5.1787937203574; Fri, 28 Aug 2026 10:13:23 -0700 (PDT) X-Received: by 2002:a17:903:2a8b:b0:2d7:1cee:3682 with SMTP id d9443c01a7336-2d74dc21e53mr164758515ad.5.1787937202284; Fri, 28 Aug 2026 10:13:22 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1787937202; cv=pass; d=google.com; s=arc-20260327; b=LAFzmJDNuoA1WTpFpZ5ap7bQ15xNgThfD3uRZSZ1bZLWPRwyh4wx39gHwvNbaaA0I4 NpYJ9PCBZR1Lk+aU6mGo0dc4NH/GC/Inc0VOQzSZDaKfGvW6jjL8PfnbTk4u/uGJiKxS bKJJ+lQz8C5SPm2opXsJkzODgNr0Q+l8oUhH26HpaCSnFU+5A/A6CPjht1MkVPWV0UFq 5hy60mSZVaaZjqSE7EfEdGoRjY0rHn1gKTSrHGiNo15EbfOIRsUtQE60rn+s6EB5ItW5 0eaKkf03dSoWYqA2AZio1W7ulMEakCsldXEiVltgKNeF5jWQjrnAPfaxYMcfHWKNa43D 8Viw== 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=V8Y9ENZ3cjELHv8lDcg6qk8N84FLAG/F0jSe/eJvW5Y=; fh=lXUfNKH/PRzkfZMGkEnxiWFJzcNAYwD6rYtTBxLTHUY=; b=nzXvC9XhdgGOnwB3dKVCdBiksIXtAxRXUBIBpp/fPiW4/zzjA0yzZ3SCXY9o6e7Rho lzDWGNs7psa03uRBS8uWEwcPCcNVImlS0S4p+HgSaV2wDeIjE3y5i6mQv8BlbWJbIrWT Im6LsrL5QjCLhQVLQBL84OLHFILovC9kQYke2CpH1VmortpAmZb0uW2xOy2o7jcusXhE V/7mVqrFuRhpjX6BAExbDr+n9Y1EyyvxToipYuYEA/BBhmt1TJpkG3McwV1lHqk9bG+g Mg/U4nqtyCTjiN4bB/O+xUrgv/cg2+OsVo6Ki8DTjkLokujUHwWdwq8jTDLuxAPTefMg 231A==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=Be4WPBQn; 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 khorenko@virtuozzo.com designates 2a01:111:f403:c201::6 as permitted sender) smtp.mailfrom=khorenko@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazlp170130006.outbound.protection.outlook.com. [2a01:111:f403:c201::6]) by mx.google.com with ESMTPS id d9443c01a7336-2d7743d2957si32424035ad.52.2026.08.28.10.13.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Aug 2026 10:13:22 -0700 (PDT) Received-SPF: pass (google.com: domain of khorenko@virtuozzo.com designates 2a01:111:f403:c201::6 as permitted sender) client-ip=2a01:111:f403:c201::6; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=Be4WPBQn; 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 khorenko@virtuozzo.com designates 2a01:111:f403:c201::6 as permitted sender) smtp.mailfrom=khorenko@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=Mt0go2yN/cyJ5MPVdQnnLCVMpMr21e9qeSGwXmcr2pMqHZroV6vyjHZhq+wGOkdEczMz5W6lOSXg7t/MBgIlv/HSaNQMNYePMCCiqSRWBOCZ16GarzlCDOYUQym/TWrKlIA0v/NJ1/t/AS5oxTXa5eeJ9grsgWo6WAu/bVFEpsCAOs34Lb5UdVk5AHMBtrdWjhtt7H3Q2heKf8COBsxZ+lnhhGlebsQsYpZf6rXcC888zeA2Z68Qv35AR6gMc7KF3C7HzbGwTwVNTILuLD4Mo90JTY5lcrwcc7yaH0wIi20sfjFibeucIpZkR1jWJhnQS5R/++Q6MhPxHloT7efehQ== 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=V8Y9ENZ3cjELHv8lDcg6qk8N84FLAG/F0jSe/eJvW5Y=; b=MDQLZjjspNlsa5y+XPqgAPpFBaRRBvsCvFM5RqaCWgKfHmpjA2wIormI0Z3TD2ctFKEtNZGc06K6Zbs6l+Y8QVIlsRs3KNUfq2SZ3jd/lB1XYoqkBeTT3IQUOKTtlAgxsWh6zX/4QHnpRXOQGeXD7XRiT9/8X/OlOtxHaHW3+3DJcqiaZWOn99JPj7OxkjZlY6nmo0v4eYUZmGaOZuOqpeOtVSAS7ePlZMkCfEp1BcP9j8WQu39Cbpx9Lt6hEDVRcqdrGGbt4BJHofwJajfSv+1+/dDfjV+J9hSVCBlapqKFx7ZV1JzI7eN7Gqhl5UhM++zKUmciZU8ErFgJQucJXg== 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=V8Y9ENZ3cjELHv8lDcg6qk8N84FLAG/F0jSe/eJvW5Y=; b=Be4WPBQn65odvRg0jFZFLiRTjKi+AHbtJETOrHgrk5EVm9sRHQwHZ3mKKjPvE2Id3VBVXojQY5D8JimrcHi+uR0ZAIpLSKAGLpPTJgLCYX4hRyxiwo2gs1RZiDR+/8VgtusvTBRqMMBW4Z1naHrfXPbkIUpUT7M+qBiz2PjqPkHxo89whTGffKBnJbqIagHF/A+EzzyCUmC58/bYWzF6AUvPdOyPvxoKZiWhk3NT2oXtwIUZj4f3e5f1YTcE5GibCxPKugdH4d6o7NpJVYmO9E+8ezGc7C672za6cJpid2XtOOegUj6mjUO+buwB912o3HN7TeHotyc7HU885uW8iQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from PA6PR08MB10708.eurprd08.prod.outlook.com (2603:10a6:102:3c7::20) by VE1PR08MB5645.eurprd08.prod.outlook.com (2603:10a6:800:1a6::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.382.9; Fri, 28 Aug 2026 17:13:18 +0000 Received: from PA6PR08MB10708.eurprd08.prod.outlook.com ([fe80::1999:c6db:dc55:494a]) by PA6PR08MB10708.eurprd08.prod.outlook.com ([fe80::1999:c6db:dc55:494a%4]) with mapi id 15.21.0382.007; Fri, 28 Aug 2026 17:13:17 +0000 Message-ID: <6480e7d4-d5d0-4133-bfa9-992cabb31d21@virtuozzo.com> Date: Fri, 28 Aug 2026 19:13:16 +0200 User-Agent: Mozilla Thunderbird To: Liu Kui , devel@openvz.org References: <20260827123712.84476-1-kui.liu@virtuozzo.com> Content-Language: en-US, ru, sr From: Konstantin Khorenko In-Reply-To: <20260827123712.84476-1-kui.liu@virtuozzo.com> X-ClientProxiedBy: FR4P281CA0396.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:cf::10) To PA6PR08MB10708.eurprd08.prod.outlook.com (2603:10a6:102:3c7::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PA6PR08MB10708:EE_|VE1PR08MB5645:EE_ X-MS-Office365-Filtering-Correlation-Id: 6942c448-62f3-45be-a9c3-08df0527a728 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|366016|23010399003|376014|1800799024|18002099003|22082099003|5023799004|56012099006|10067099003; X-Microsoft-Antispam-Message-Info: QEvR8PYBvHRncPX04eMfKKU8RKaJ3bb70HjLO4Uy17IrtblFVjiHNQK29eJFugxjaV6nPBlgqs8nsolAo7Rc0xMmkYHoQY98q22Hh0+pln8CkAalXU1nDFE8W1znnMobyVq9bLH5XqR2JhhtJkl+qU1VZ0d4TmF3E5e2sE+z3CYJ24z8G3ExxAs3wfe54LibkOYBSm2LWoqgWFAZJVV7oYTe2LomDmWb5fkR0g9g6HkgA/l51SN3fj+rOrJ3yUcy1TENBhDzb7dK6rqeaHoTflFDLNumS2LS2+mYGayHn+kHuycC+vvx5A7zL/Xax6dH1A1oODoJxAqphhfMGDCcNN0lv/Q/fxBPnS5Csz6fKf7wv8QJ/Jbfs1IN39U5lpzLFRePFDJLxS55Bo/GrsemCNiiaVYnpb/Mu3fkxgxz6S84swGdldlxcXqiMrxkQJpQVnK/qVZw4K3kOnWlxWqBZy/ifMBI/2cVwLf9NNPWDkcchKX8oAw2AcLWh4bI02A0dFTYN30tkP8jpK2w1eh15+2KFT2NQv8lsvmVeos8RaJsOOMBxegxuvRvoVrnPCMRJeBw+6nHIhe32rKY4qjHXJdioV+jPTtM3c+5HLQK6QvMP1jH9QinbFQdvbWu63/u+Ohu44ZCmGKGSPlLsIRGT+zjXlw7X8p4s823rXvTrRg= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PA6PR08MB10708.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(23010399003)(376014)(1800799024)(18002099003)(22082099003)(5023799004)(56012099006)(10067099003); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QnF5dWlKb0RIWUNKY3d0TXhadHFlZ3VGNHYzRWx4T2NWN1ltTU5sakoyMFFo?= =?utf-8?B?aVZ1OEMybGY2dnJXOXNqR01NSmFycW1uZER2N2pQZUtaeXlIS09LdDVvRXRI?= =?utf-8?B?aDRNbXRTblUwdG1OTndrZVVXMmYvK3lud2R6cFVFdjJ5cEpXR2g2NnRYS05x?= =?utf-8?B?eEh4NVBRLzhrbWhUeTBzWGpOaVpGQXBiTFNLWmd3L1RqSjZHN0RMREpJSUhX?= =?utf-8?B?Q1k2blc5WVdPdW84eTdwaHB4Y014MjFOOGxrM0xpdi9wVWNYdVY5RHZueTZn?= =?utf-8?B?K2F5TW5kTXhlQUt6eWRlVUNPNklUd2Q1TWxsNlJFbTFKdER2WWlTNUE2SFJr?= =?utf-8?B?YURDTGowLzFaeUVKckdwQzV2UEJrQjVqU1hNbndXdVIwOHVoWUJMNVFHZ1Zl?= =?utf-8?B?WGtJaDMwU1JlV1hiaXM2NXpYNDdoV25teGE1MGlneXVkbnFVUld0STVna0Yz?= =?utf-8?B?WkxyZWN4M1E1MFFuNnBOVFRaSVQ3NnQvU0hiaGVSWW4xNTBYcXpUdXVMMFUv?= =?utf-8?B?M2IyYmxTSTUrZGM3N2FtRXRCdnd4aWVvVkpmZ1NQZ3R5b1Exa0ZlL3RBeFFS?= =?utf-8?B?ekR5T3Y4bGJ1NUwxT2dKRkFlZi92RW1VYlVlNnpINkMwK1BUcnFRZ2NISFRl?= =?utf-8?B?ZGt6N3lneGJrQ1pBK2NCbEg3K2xnOFY5Ukc1WjBHeVFmenBZczVlcWJsYUor?= =?utf-8?B?UFU1cXRVbFZCTjliRzBNVkR1K0ZBYjNHOXRiaFdJMGhmSkFkQ2pJSlV2eE0y?= =?utf-8?B?c09yelU3aHRtSEJVRGhUd0gxS3ZSMVg3ZktjckVlTXJ0K0pNK2JqRnlpTUgz?= =?utf-8?B?MjZ2ejdUQjdNemQxZzFPRytTRXdIRzF0eUJ4cW5mU28xeG0raWVlNzF2T0tR?= =?utf-8?B?Y2VZdmFzZHBRS2ExdXhQeFk5NENkTWxOaFRQUjdReEJObVl4UWVxaHVEbThP?= =?utf-8?B?cWpQWll1bFIwU3RrOG9QNXRDQ2twMXg0eURGU25ibUJ1aDB3amxwYkdvay9U?= =?utf-8?B?R1BJOHNrQlJ2N1g5TFRXWUhtTGJhUkV0Y25OZlNLTnhIVkpNZXM1azFvUHd6?= =?utf-8?B?RjAxVjhlZTZDR2laaVc3T3Uwenh4QTBiNUhZUTJ1K0d6T3BXeDVxN2xTdVhv?= =?utf-8?B?Q3N6UDdDSStIN205ejRnNFhwcGZRS05ZWmZwazZqOU9PWGZtaEVYOHlGME1k?= =?utf-8?B?ZU12VERiZ1dDV1poMlRkRXB2a3Y3NXNqS2hRNWRRS0F6VjJOQXAwalQ3Rzdw?= =?utf-8?B?RHNtNlo2SXozSEtvY3lXdVk3Q0RpR0tsRFJmM0ZKcjdiSzh6K3dHRVNzalFr?= =?utf-8?B?WnJ3QXIwVFYvMXJxSThFVVBZNkZyZnA4M1BlMHVxVUk0cUtHbFU2SmxsVnpK?= =?utf-8?B?RXBJWDJLcTh4T3ZQQVFNL0M2V05jcTdpSmo4WEV1aHRnM2VsVlRjdUpLYmNp?= =?utf-8?B?cS9WTnFhZlF0T2hQNmVDUExrMEZZbm9EMWxkbTRoZ0xQZld5dHJjRlhJcWQ1?= =?utf-8?B?T1orTldtWW5BRGlsU0g5K2U3c2F4bFlpZjFIRHpra2lOZ2k3anVmVWV0cGM3?= =?utf-8?B?aDFwZjJMNisrN3VhUm0xSE1JbEpHcWFFYUh2ZnlMTWdGRjZXd2ZaZ1FKc0I2?= =?utf-8?B?ZXJSaVJrRTFnVWMzQWI1YkZ6bjBKQzVSWEYvYXhpeHo5NU90TERlclVFSENC?= =?utf-8?B?UGRBUzl5Y0FYWmRVRTRkaWJkY0dSYVVQaFM3UUkwNm5yT2pEWDNVa0QwYndm?= =?utf-8?B?ZjFxblFndno4Q2NqWHYrU0VwZ3lZZk1MN0R3ekVtWGFjQzhFK25xaWIvUmxn?= =?utf-8?B?SUlrSFEwWEo2NTZQNDFHbVg0V0t2cHhvOHRwM1prTGZQNTA2OEtyYmp0dUVC?= =?utf-8?B?cC9aQnRxZzAvMGRBMmRqRzNiZDFGWXZ3emhyOWEwNGNweDgxN3dsa2k0bVNw?= =?utf-8?B?ZDFWSHdLZi8wL05ITkpYNHlMSmI2bHRqSGVxVnAxWFFZS1VaajBMbUYxUzcv?= =?utf-8?B?Q0FQSXpoNTZMNGUzaTVFMUJXcUVUKzNSUHFZM2tKYUF0emlKWkR3VTRadUhJ?= =?utf-8?B?K3lXSVNYTitwWW95R2E4aHdGbmdJQkpBbWt2WkpBV2I3M2hYWTVMbGJnRXpv?= =?utf-8?B?YkJNdDk5WUZ6Ym1YODVzd2lreUVMTUQ4UmNiemNFMFF4VVNpRllqdk05dlVV?= =?utf-8?B?c2sydDRmSUFNVTlONFNRdFlXa2JHOVBlbzU3ODNNNjJJbW4zMU8rN1N4SCsr?= =?utf-8?B?dVJmK1VScTI3WnNINGd2dHArOUlXeWNra2crQmppQk1RbjY1a21VTDVvbk8x?= =?utf-8?B?NkRncEpHZmVhSUxhUWNIT3NoYklzblZ3QnlPa2svWW4xNmFPd0gzQT09?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6942c448-62f3-45be-a9c3-08df0527a728 X-MS-Exchange-CrossTenant-AuthSource: PA6PR08MB10708.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2026 17:13:17.8055 (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: +Gkw4OZb8h+wx1c08G7cOvNWTx6tkICGzpzIPtJ+4MY9IW3nzTKpcQmltbEVTJNNlgEiu1Cera6NSe+o0tjgDA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB5645 X-OZ-Fwd: true Cc: azaitsev@virtuozzo.com Subject: Re: [Devel] [PATCH VZ10] fs/fuse kio: track pending kRPC connect via state machine only 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 Liu, please explain what do i do with that patch? Should i revert ("fs/fuse kio: fix kRPC connect issues") and push this patch instead? Should we release it as an RK? If yes - for which kernels and where are the corresponding bugs? Currently i understand nothing, sorry. -- Best regards, Konstantin Khorenko, Virtuozzo Linux Kernel Team On 8/27/26 14:37, Liu Kui wrote: > Rework the previous fix ("fs/fuse kio: fix kRPC connect issues") to not > require the new struct pcs_krpc member "connect_req", so the fix can be > shipped as a livepatch. > > Both things connect_req was tracking are already derivable from the > existing state machine once PCS_KRPC_STATE_CONNECT is made to mean > exactly "a connect req is in flight": > > - krpc_connect_done() settles a failed connect back to UNCONN instead > of leaving the state in CONNECT forever; > > - pcs_krpc_abort() no longer resets CONNECT to UNCONN: the req is > still in flight, and only its completion settles the state; > > - pcs_krpc_connect() proceeds only from UNCONN or ABORTED, refusing > new connects (-EPERM) while a req is in flight - at most one connect > req exists at a time, same as with the connect_req check; > > - pcs_krpc_poll() reports EPOLLERR on UNCONN: poll bails out earlier > unless ctx->gen == krpc->gen, and the current session can only be in > UNCONN if its connect failed or was aborted, which is what the > (CONNECT && !connect_req) test used to detect. > > gen only advances in pcs_krpc_connect(), which is blocked during > CONNECT, so within that state the in-flight req always carries the > current gen and krpc_connect_done()'s existing staleness check is > sufficient. > > Related to: > https://virtuozzo.atlassian.net/browse/VSTOR-135626 > > Signed-off-by: Liu Kui > --- > fs/fuse/kio/pcs/pcs_krpc.c | 39 ++++++++++++++++++++++++++++---------- > fs/fuse/kio/pcs/pcs_krpc.h | 2 -- > 2 files changed, 29 insertions(+), 12 deletions(-) > > diff --git a/fs/fuse/kio/pcs/pcs_krpc.c b/fs/fuse/kio/pcs/pcs_krpc.c > index b55c093c13d0..bcfbfc6d9304 100644 > --- a/fs/fuse/kio/pcs/pcs_krpc.c > +++ b/fs/fuse/kio/pcs/pcs_krpc.c > @@ -738,8 +738,12 @@ static int pcs_krpc_abort(struct pcs_krpc *krpc) > spin_lock(&krpc->lock); > > if (krpc->state != PCS_KRPC_STATE_CONNECTED) { > - if (krpc->state == PCS_KRPC_STATE_CONNECT) > - krpc->state = PCS_KRPC_STATE_UNCONN; > + /* > + * A pending connect stays in CONNECT state: its connect req > + * is still in flight and krpc_connect_done() will settle the > + * state to UNCONN when it completes. Until then new connects > + * are refused, so at most one connect req exists at a time. > + */ > spin_unlock(&krpc->lock); > return 0; > } > @@ -907,8 +911,13 @@ static __poll_t pcs_krpc_poll(struct file *file, poll_table *wait) > > spin_lock(&krpc->lock); > > + /* > + * ctx->gen == krpc->gen (checked above) means this is the current > + * session, so UNCONN here can only mean its connect attempt has > + * failed (see krpc_connect_done()) or the session was aborted. > + */ > if (krpc->state == PCS_KRPC_STATE_ABORTED || > - (krpc->state == PCS_KRPC_STATE_CONNECT && !krpc->connect_req)) { > + krpc->state == PCS_KRPC_STATE_UNCONN) { > pollflags |= EPOLLERR; > } else if (krpc->state == PCS_KRPC_STATE_CONNECTED) { > pollflags |= EPOLLOUT; > @@ -999,7 +1008,6 @@ int pcs_krpc_create(struct pcs_krpc_set *krpcs, PCS_NODE_ID_T *id, > krpc->gen = 0; > krpc->state = PCS_KRPC_STATE_UNCONN; > krpc->cs = NULL; > - krpc->connect_req = NULL; > > krpc->rpc = pcs_rpc_clnt_create(&cc_from_krpcset(krpcs)->eng, id, addr, cs_flags); > if (!krpc->rpc) { > @@ -1051,8 +1059,6 @@ static void krpc_connect_done(struct pcs_msg *msg) > } > > spin_lock(&krpc->lock); > - if (krpc->connect_req == req) > - krpc->connect_req = NULL; > /* from a stale session, do nothing */ > if (req->gen != krpc->gen || krpc->state != PCS_KRPC_STATE_CONNECT) { > spin_unlock(&krpc->lock); > @@ -1062,6 +1068,14 @@ static void krpc_connect_done(struct pcs_msg *msg) > if (!pcs_if_error(&msg->error)) { > krpc->state = PCS_KRPC_STATE_CONNECTED; > pollflags = EPOLLOUT; > + } else { > + /* > + * Connect failed: settle back to UNCONN so that a new connect > + * is allowed again, and report the failure to poll(). Since > + * gen is unchanged, the current session's poll sees UNCONN > + * and returns EPOLLERR. > + */ > + krpc->state = PCS_KRPC_STATE_UNCONN; > } > spin_unlock(&krpc->lock); > > @@ -1119,9 +1133,15 @@ int pcs_krpc_connect(struct pcs_krpc_set *krpcs, PCS_NODE_ID_T *id) > } > > spin_lock(&krpc->lock); > - if (krpc->state == PCS_KRPC_STATE_CONNECTED || > - krpc->state == PCS_KRPC_STATE_DESTROYED || > - krpc->connect_req) { > + /* > + * A connect is allowed only when there is neither an established > + * session nor a connect req in flight (CONNECT state, see > + * krpc_connect_done()). This limits connect reqs to one at a time: > + * if userspace gave up on a connect and retries, the new connect > + * fails immediately until the old req completes. > + */ > + if (krpc->state != PCS_KRPC_STATE_UNCONN && > + krpc->state != PCS_KRPC_STATE_ABORTED) { > spin_unlock(&krpc->lock); > err = -EPERM; > /* fput() drops ctx and its krpc reference via pcs_krpc_release() */ > @@ -1133,7 +1153,6 @@ int pcs_krpc_connect(struct pcs_krpc_set *krpcs, PCS_NODE_ID_T *id) > connect_req->gen = krpc->gen; > connect_req->krpc = pcs_krpc_get(krpc); > krpc->state = PCS_KRPC_STATE_CONNECT; > - krpc->connect_req = connect_req; > spin_unlock(&krpc->lock); > > /* publish the fd only after the connect is committed */ > diff --git a/fs/fuse/kio/pcs/pcs_krpc.h b/fs/fuse/kio/pcs/pcs_krpc.h > index 3db9e9712019..6a090ef66185 100644 > --- a/fs/fuse/kio/pcs/pcs_krpc.h > +++ b/fs/fuse/kio/pcs/pcs_krpc.h > @@ -82,8 +82,6 @@ struct pcs_krpc { > /** Wait queue head for poll */ > wait_queue_head_t poll_wait; > struct pcs_cs *cs; > - > - struct krpc_connect_req *connect_req; > }; > > struct pcs_krpc_context { _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel