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 915CE811BB for ; Sat, 7 Nov 2026 19:34:01 +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 6A7JWfk9000733; Sat, 7 Nov 2026 22:32:41 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A7JWfk9000733 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="hC/v/mkw" Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 6A7JWbGh000728 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Sat, 7 Nov 2026 22:32:40 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A7JWbGh000728 Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-cdb8931aeeaso168022a12.1 for ; Sat, 07 Nov 2026 11:32:40 -0800 (PST) X-Gm-Message-State: APuU4Z/xf759tt6Of3f1Bx3m6RM+/N1xCXkS0HGgSDxSiKnrVsT+Zgt+ F7YBVJAd41vyllXdoXDSyZCG1k0jWyug9dB0hFcFK4SXkZMqzolo6h6E3sKjsD7w8qQec4PMSa/ KwRX3y75OjMuNtCJZ/+ONkz7AZevMn0MlFyrBdvIEuRLHsP0j4/wYJw== X-Gm-Gg: AYBFou26u1DoEmxZhYxa2iAGzawU4/S8v7fK6tlEbLHNKT7vGVNmeYwTUrEbpzFBofD XZUpRvrfxIvBS7KP2xSWE1Kt8fn4hCDcPd+XWQ8yETgtIIHGGrZ1mTyQFJFV5DYWG9pdWIufweX 9MMd46HGUHVEYYrSNIhcf6VRXdHPodjWfUFrv/I2SLiZQ/8FKnVrgB+ZlHMqLXUSQe5EmupxzgV NrQ33FXI/cIvszKOqb6CPEpLK62T/WUM6N4NB5qbbdleevn+aBMVhHV22tUUd5ehhMsQjYg1y8+ jBkuizkuPBlu05leEu036O+EdQC9ArVaLy25KfoGNT6pO9LQ/EQxJVG54uVot17dFQdnfu4NwAk tl7IFNDHFVrkY+/s3FhgC+49MoFZc6JNA733RTRB2FZCRNvcKXHND/P8vaAtWAvNZRDKppGb7zF 3Tob+DQt3rmt/rymKcWA== X-Received: by 2002:a05:6a21:7016:b0:3dd:a197:735b with SMTP id adf61e73a8af0-3ebb2a4d119mr7118583637.52.1794079957096; Sat, 07 Nov 2026 11:32:37 -0800 (PST) X-Received: by 2002:a05:6a21:7016:b0:3dd:a197:735b with SMTP id adf61e73a8af0-3ebb2a4d119mr7118562637.52.1794079956508; Sat, 07 Nov 2026 11:32:36 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1794079956; cv=pass; d=google.com; s=arc-20260327; b=UzZn0MfZP7+Kc+oTtnqwD0SepmIru77w1ppu3IX+zNif/fZdlO5GWqbBBs7uhJaOAT dN8Bydkv34p6dD4TdATa+U0jesOvhPhQ1KLGIYYIoaOdGdT9ReI3WxBy2jwoVy0zklMH OZah5oXc66dIXsKqgCrBdIcsEWoTiQAev4JKyAdK1szmke2wGLLtMTW3hQ0gKEIXQZy2 uT5pcIeqRUP9ekwuYWQ1+/2iMgvL6CHt5EdmX+GvfpyD6Zz6eOIF9L7IAGu4YxtN9Uf9 jJtkAbkgOGeSCvvVlg6RKb9OMC5G8aKZygcMYrY9z06zbkAC59MT4xWXHz5omxOIq/O/ zzfA== 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=KgHNG31eXIUPZmL3r3i0+KdYtd/hFg2/hvi+QUkar/w=; fh=HmlMrlJNjDte9b9aKBTQJessQGeC0okj4pol9tYfrVk=; b=Q+K3Y6xShH6kMd2WgzGlPeVdZ9r/wGqC3wer4jcDbk0ilWM9y8X+OK2fuLT+AyQcAW b1ZhhfikZqth+UpQmxKYRkDE72+x3nXnD8hO7FESbPojizASdcGCzsZHHn+4HZdA8y6i 8LctmIq/IBTlxt3IAV06dCC6aeY3P25Mmf3CHckqUoOJQmPs/3LPG8atcmy7lONS3kUb s1VBqz8fgPOTV2/AzLL29FzO+JX0RxxrswjxIs+R2s0959CmuCKv++ASoOaQkx0FFBhf 0kvjslZ8jq+Umff/LNoAOr/Q1qb93q5sYw7pZyjjCBPlEHFsbk8W1N4WGeJrjw/muNZb bYHg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b="hC/v/mkw"; 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 den@virtuozzo.com designates 2a01:111:f403:c200::1 as permitted sender) smtp.mailfrom=den@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 41be03b00d2f7-cdb706bea14si8236829a12.58.2026.11.07.11.32.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 07 Nov 2026 11:32:36 -0800 (PST) Received-SPF: pass (google.com: domain of den@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="hC/v/mkw"; 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 den@virtuozzo.com designates 2a01:111:f403:c200::1 as permitted sender) smtp.mailfrom=den@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=cJJUEPE2gYFlryMcpjQTkEvFkTTYvO18tE0+VZaIVSuYor6IZag5mkYOR5LOQ7zbwc6fYHoyvJGfN9Ep34HgIZEsqwX9ABasTPfp5HYG7FosWGjg5+DkXG9uB1nZUBvq2K9+JXaKB9C+/DEfktgiJtKEIHfmApXoVkAMvyffTDYGRIVG48I5WwbEq10VoW/bAXc91gtGtq1nCIO4LJkG7uO2N8WWr5O2Rn5S3n7GZ4KT4EkXdrg4gZfu1LY5C6oe38rAgO9DphXe8st8GbUquSFXJJrxGTLGyNC8YohVJFtcdRP3tzMdLwT7fsR2zCm4Mie+Va0Yt5NweZ0qa6WAFA== 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=KgHNG31eXIUPZmL3r3i0+KdYtd/hFg2/hvi+QUkar/w=; b=XyOm50JBEXBXXdR8bXkQEEwe/NJlWK/V+4R3sf0sGjyGHYaJw/JKO6/eBbGj4BmjOTLl63r34o8zOMHc7Dagm4e3B2bdpRNravFaAYrLPo0Y0EHJhOVpV0P9fOaGuU/VuoDWdm7q/xLOCl4T+y86jNpHUcDl9SZhrMSnErVhTOhg1MCcIfcDYdJJJMWEbPT5K1zGXGA+jEe6ekIdqp1b2bWUtN18KEpFN6nwz9yU/05aFxKYz5Uf6sJWIrorr9N4zPs7KAiSW0I7tftgYvcWj6pf7Itw5rnAIz7ivo5AvuIRxSgMv9oQeCoMeQ3mEwRCbtYjyZa5Gb1odXw6J/I2Yw== 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=KgHNG31eXIUPZmL3r3i0+KdYtd/hFg2/hvi+QUkar/w=; b=hC/v/mkwYp0K3lK/wtqFpgjMneLxqyjklJGpNGywXBevXSBYEA6/2+tLcw6M6gBmeP3cy8JkbxX7CHRKSvLluzilBwSOS8DVDRYq9GSwv9X1yp+a9MHbd154RzGHHXSGHpjoxYXVZP3CX99hbHyE5DceIT9sFdebpWBvDvn3vvozUUIe0W5pW7UEiFMie1bUXTuAVc4i6og3Vk+MvbLKZQw0V1ZRHE2WxBaOw3SmYhdp44F/BZdtpuHLIquuGCBpcCNhSFd0a55k0HxCN4YWlP79oSa2Re11itoX9khZg1iLGF3RGb5/g6YMBnfOUfQX5NnFWI2rqr00j+0mU6YNWg== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=virtuozzo.com; Received: from AM9PR08MB5892.eurprd08.prod.outlook.com (2603:10a6:20b:2dd::16) by AS4PR08MB7554.eurprd08.prod.outlook.com (2603:10a6:20b:4fc::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.592.11; Sat, 7 Nov 2026 19:32:33 +0000 Received: from AM9PR08MB5892.eurprd08.prod.outlook.com ([fe80::94bb:633f:1f55:4bbd]) by AM9PR08MB5892.eurprd08.prod.outlook.com ([fe80::94bb:633f:1f55:4bbd%5]) with mapi id 15.21.0592.010; Sat, 7 Nov 2026 19:32:33 +0000 Message-ID: <8ca8e5b5-e136-4a13-bee6-28a0bd25207d@virtuozzo.com> Date: Sat, 7 Nov 2026 20:32:31 +0100 User-Agent: Mozilla Thunderbird To: "Denis V. Lunev" , khorenko@virtuozzo.com References: <20261106151641.3980601-1-den@openvz.org> Content-Language: en-US From: "Denis V. Lunev" In-Reply-To: <20261106151641.3980601-1-den@openvz.org> X-ClientProxiedBy: VI1PR04CA0133.eurprd04.prod.outlook.com (2603:10a6:803:f0::31) To AM9PR08MB5892.eurprd08.prod.outlook.com (2603:10a6:20b:2dd::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR08MB5892:EE_|AS4PR08MB7554:EE_ X-MS-Office365-Filtering-Correlation-Id: 581b3d69-987b-42ed-8aee-08df3d05de91 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|10070799003|23010399003|376014|1800799024|366016|5023799004|261021121427099003|261022105027099003|261021123027099003|56012099006|261009223027099003|261022075727099003|261026140227099003|261026121527099003|261102123227099003|261028144727099003|10067099003|18002099003|22082099003|3023799007; X-Microsoft-Antispam-Message-Info: U7UFqI0mclEMJ1jqbRAIR01e9kMAzEPSQHS9uTURq0HjsjA6NK9FmHDYVfqWk/v6Rwrxslh97BvVWs9n/wTHXcj517EwFk5t7xfFcg+qNETOAD6VJlzFl2YwA3VfFFyHPFBcEH1XDOyE0ATMpN44qXCppUfet2GaiXD5LhZeBUgtn5DIeZ96sOl1VyfEtKNhv2KBA6f4kp25yTK6KT78ZKtNti7x/kN2lfGhHgII0byN/RuoBkCIA035GyHYuI3/uHUH4mWK2zesrbFZIzzWtXBEkwTuelOcNyLEInG3aLzz0FtxazlUmLVBlXi4Hgmn+lxoWQlwLPeqjzekq+qUWhOgiLZR9kY2cZ5jQIsIjLjZ/MpZ668lGT86GwQJ2VNbduiH3Hbh6T+mHhm3ap42aNsMYhg0DgXTtWAKkOcQGgUa3PysIeGMl6eIdiFBbIaoUsLOEVNWZ3nEUP2c4L/4H4aA7kKG0qGZWjjZD7dMHZjay7qjunJ+7lvWJdl8gw4hixNe6UCHGLJxlzU4hpcEpv8p83W+u30B8g4pD6V2RmVgHU6RKENQf+2hajNyAjXcPQ18mybFCYTdLoESqEengWdfjLWf2FMJSVglKg0cg6WKWqdp84QhynarqLJ4urnC X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR08MB5892.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(10070799003)(23010399003)(376014)(1800799024)(366016)(5023799004)(261021121427099003)(261022105027099003)(261021123027099003)(56012099006)(261009223027099003)(261022075727099003)(261026140227099003)(261026121527099003)(261102123227099003)(261028144727099003)(10067099003)(18002099003)(22082099003)(3023799007); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dEhxTnRlQ1dTTmc3Rlp4UzR4ZzEvdUNKamwvVnRJbTNmbjhuWUJUNzZtWFg0?= =?utf-8?B?UmtlZ002OFVQaGgwYWxodkk5ZVIvWTdrKzh1T0V0MVJrTmJHS29ETGNJeXdX?= =?utf-8?B?R2IyZ0ppZFByam5XbzIwc0ltYTRvZ3JnWW1OaXhPMS9wMWJNenFKbnpyK2hN?= =?utf-8?B?QWtMWW5vTVh2ZXBjeGFHcUNleGZXVlN4eGR5M2NXZUtlY0QrTHNBUUE5WEcy?= =?utf-8?B?NGVUQ1MvekdpeVhoYTRzdEFzeXdZZGNlVEtLNkNkaUVvaEN5MFh2WWFtYW1G?= =?utf-8?B?VzBUUWRKS2pnS3hmTUtJeGRrRGdaV2VzcnFMTHZ3WFdpUHZqKzR0aVlnYndi?= =?utf-8?B?T3huUlZnUEFES3M1OFZMaHFLVEdFTzhvZlp5YkxmNUFFUEVGOVRnRDFWQ0dO?= =?utf-8?B?enZucHFxOXoxZU1CUWhUakphSlJHVmhPY0ZWTXh1Mmh0NmMydTdTNXdlQjJ5?= =?utf-8?B?MTRYdExxQ1pGb3VhSlo1VkFLTFBCSFNGa3JjOTJFSE5tZ2w5SXpIQ01zZVNv?= =?utf-8?B?MTZqc0t0NGZoWitqZWJGNC9pSDBaK1ZReEt3L1NBNnVwNC9MRHorU0F5Mzhs?= =?utf-8?B?ZnlvNlNsQ0ZNbDlPaUFObk1QQ0hxMUhIM1h0dFdZZ29lbUpnOVBlWURiYjBK?= =?utf-8?B?MXVNZWdIeWg4amN1RVNWMUhpbHErZlhQb0RQbFd0Z21BMXI4dXB1cThyUkJE?= =?utf-8?B?RGRHTWNwZFpjR2U4bnVzc2djU1E4dDR3cy9odktoRHlhelJQSGNpb3V3S0Nx?= =?utf-8?B?djNPT3hLM2Q2dnpPNWlhUHdTcFZkQmZuUjlrOHlTYnZFNG1NTnd4TGQ2MHNT?= =?utf-8?B?RS82TDk0T1ZhZ1crUmpzQXdXSUdUOWlHZWRzS0ZqSXE4WHVsR0JRbWJYQUNM?= =?utf-8?B?SE5vc1J1WHNDd1RmWGg2djZURGUrRlM5OHcwNjZpYmZ1Vnd6akpoR3N5ekVM?= =?utf-8?B?MzRLbXRqWWhaVit1am5Oem4rVGlqOVk5azRyMStXdldFcHpGUjM3MGd6U2JX?= =?utf-8?B?bnlnY1Z6RnpWcTF0YjRKWGM2NlA3WHNBbTlTNEZJYi9hREpQOGJYVjIrbXhK?= =?utf-8?B?WDlTVmNMYVoyR0dSakFsWEZCYjJSM0k0T0ZOQnZvZnpXeEtkOEFZYXRzRC9Z?= =?utf-8?B?cnJOZGZTUm5KWU1DSy9XVVlGbnV0VU1yR2JXcVlFNEdGMjVjKzczRDVoME11?= =?utf-8?B?WEVWQTc5ak51UTBMbGdvSms5aTR1VFRWMTg1aTFWa05MSE9ETGxyL2U4azFQ?= =?utf-8?B?QmpaVE1TL1p2U0RuUmhOV2ZvS0srYXExS3c3WWRLZVdiQVdnc2g2cGtnZWZ6?= =?utf-8?B?TkJpY2RBdkpSQ2g5cnpmZGh6WnVTTE5iNG0vUnJLZnR5VVRyMWxudFlueUV5?= =?utf-8?B?VjJ1WnJJeGlhSndIYWpzZmdnTFo0RUVIV3ZlYWNsZUlaSmxIWXJldG5CQUF4?= =?utf-8?B?OFlGc0NQSUxGTTUzcGVQWjlVT1dBa3dwbXZlandmcU5MTzdtKzk1LzBnUTdm?= =?utf-8?B?Y09NbTR3eTdIQXpMMDFBN2UvT2NSTWcxczRocExhUUtrQ1puNkVrRHJoYUgz?= =?utf-8?B?UDZSNWpXVktpVEw5eVVUcHV1aHBwS1BJTlR5ZG4rMVcxR3hrWjVCQmtJWjdx?= =?utf-8?B?N0VoRVdETEJCdldId3ZLWmtyVEY2QUlUNTRjZndQTkwzWlRnb3V1VzZsMHIy?= =?utf-8?B?amVLblEzRDA4M09DUHg2N2N6d3cxRXpUWUJLeFRyTC9sT25ZUGR4Rjk3SWZT?= =?utf-8?B?ZlpSbCtSVjRsWE9ncEgrR1ZXRGhjRUFpSldoVWJMaXBYdjhPOUVhN2ZlUjRH?= =?utf-8?B?ZmtOd1hrdURHTTJYT0VaaCtta2xnNUNLUU5XaGNvV1A5UXpqb3hqOXR2dDJI?= =?utf-8?B?TktZRitLTGswdzNIeXdXSE0yMlR0cnc5aDFGZk1LRE5ybzdTS0NHNzZnMVlC?= =?utf-8?B?eXlmTit4MlZqQ0p4QWM2MVRWelBvUDhyQW9nZ3BUcks4R2pZd21hTHJkZHBr?= =?utf-8?B?MGV3d01qeDNTc2Y3d3lsSDVaWGhLS3RYelowOGMyeExERUJDZDRpUGtzUkRX?= =?utf-8?B?d0tmYVp3YUhBeitmSWQ5blJyY1BIa25jeEsrazRLOXIyTjg0US9GbEFzR3hp?= =?utf-8?B?b05wR3pBYUVqSWxwYUozd0w1ZjNYU3Nqemo3RlFPNkl4aFM4MUtVNFhTTVFM?= =?utf-8?B?bmVKckZidkZINUxtYlVsb1RQMzRGNXA4OWdFbjZnZlBBVmE2SmkzRHR4dkcy?= =?utf-8?B?QWZBbVpvd0tkSUVsV3RKTzF6aTFBekwvUGNSbTU3VXYxcExlaVNZZ0c1QmlU?= =?utf-8?B?MzlXaVp1WUxIMDdTV3pnK2xWVitzQ2VFdTNnUTBCcndjaURONWc4OFBUZGJ2?= =?utf-8?Q?pPsdZueLm6fpDSbe/YcEfJbYVqvruMFDIqFoVQKNe6nEu?= X-MS-Exchange-AntiSpam-MessageData-1: Vx2k6QJ/TSILRQ== X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 581b3d69-987b-42ed-8aee-08df3d05de91 X-MS-Exchange-CrossTenant-AuthSource: AM9PR08MB5892.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2026 19:32:33.0146 (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: sqE7M7Rj6F8Ii+fcBa1g1STFpH7dAs7UP5890DQWSPL4Fha+2es0gLhXiR5tLKVa1jmAoW2ha9P3FFulkGy9vg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS4PR08MB7554 X-OZ-Fwd: true Cc: devel@openvz.org Subject: Re: [Devel] [PATCH vz10] ovl: release the upperdir/workdir in-use locks before the umount sync 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 On 11/6/26 16:16, Denis V. Lunev wrote: > This email originated from an IP that might not be authorized by the domain it was sent from. > Do not click links or open attachments unless it is an email you expected to receive. > From: Denis V. Lunev > > The in-use locks on upperdir and workdir are released by ovl_free_fs() > from ->put_super(). generic_shutdown_super() calls sync_filesystem() > before that, and ovl_sync_fs() syncs the whole upper filesystem, so the > locks stay held across a journal commit and a cache flush of the upper > fs after the overlay is gone. With index=on a new overlay that uses the > same upperdir, or uses it as a lowerdir, fails to mount in that window: > > overlayfs: upperdir is in-use as upperdir/workdir of another mount, > mount with '-o index=off' to override exclusive upperdir protection. > > Userspace hits this when the last reference is not dropped by umount(2) > itself. Docker with the containerd snapshotter mounts a snapshot on a > thread with a private mount namespace for docker cp and for buildkit, > and the superblock dies when that thread exits, after the reply to the > client has gone out. The next request then gets EBUSY. The window grows > with the flush latency of the upper fs and is there even if nothing was > written through the overlay, as the mount itself dirties the upper. > > ->kill_sb() is called once s_active drops to zero, with no mount and no > open file left. Release the locks there, before generic_shutdown_super() > runs. What the dying superblock still does to the upper fs, the sync and > dropping its references to upper dentries and inodes, does not touch the > contents of upperdir or workdir. ovl_free_fs() still releases the locks > for a failed mount, so clear the *_locked flags to keep it from > unlocking a second time and dropping the lock of a newer mount. > > This takes the sync out of the window but does not close it: the final > mntput of a dying mount namespace runs from task_work, after the exiting > thread may have reported completion. Userspace that needs the > directories free should umount(2) before saying the job is done. > > https://virtuozzo.atlassian.net/browse/VSTOR-153253 > > Fixes: 2cac0c00a6cd ("ovl: get exclusive ownership on upper/work dirs") > Cc: Pavel Tikhomirov > Cc: Konstantin Khorenko > Feature: fix ms/overlayfs > Signed-off-by: Denis V. Lunev > --- > fs/overlayfs/overlayfs.h | 1 + > fs/overlayfs/params.c | 5 +---- > fs/overlayfs/super.c | 12 +++++++++++- > fs/overlayfs/util.c | 12 ++++++++++++ > 4 files changed, 25 insertions(+), 5 deletions(-) > > diff --git a/fs/overlayfs/overlayfs.h b/fs/overlayfs/overlayfs.h > index 8577c7884fb9..2331bd55302c 100644 > --- a/fs/overlayfs/overlayfs.h > +++ b/fs/overlayfs/overlayfs.h > @@ -528,6 +528,7 @@ int ovl_set_impure(struct dentry *dentry, struct dentry *upperdentry); > bool ovl_inuse_trylock(struct dentry *dentry); > void ovl_inuse_unlock(struct dentry *dentry); > bool ovl_is_inuse(struct dentry *dentry); > +void ovl_inuse_unlock_all(struct ovl_fs *ofs); > bool ovl_need_index(struct dentry *dentry); > int ovl_nlink_start(struct dentry *dentry); > void ovl_nlink_end(struct dentry *dentry); > diff --git a/fs/overlayfs/params.c b/fs/overlayfs/params.c > index 32c58fcfe52f..c102fb0ac481 100644 > --- a/fs/overlayfs/params.c > +++ b/fs/overlayfs/params.c > @@ -735,12 +735,9 @@ void ovl_free_fs(struct ovl_fs *ofs) > iput(ofs->workdir_trap); > dput(ofs->whiteout); > dput(ofs->workdir); > - if (ofs->workdir_locked) > - ovl_inuse_unlock(ofs->workbasedir); > + ovl_inuse_unlock_all(ofs); > dput(ofs->workbasedir); > path_put(&ofs->workbasepath); > - if (ofs->upperdir_locked) > - ovl_inuse_unlock(ovl_upper_mnt(ofs)->mnt_root); > path_put(&ofs->upperpath); > > /* Reuse ofs->config.lowerdirs as a vfsmount array before freeing it */ > diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c > index fb47711c8fb9..8153362caad1 100644 > --- a/fs/overlayfs/super.c > +++ b/fs/overlayfs/super.c > @@ -1502,13 +1502,23 @@ int ovl_fill_super(struct super_block *sb, struct fs_context *fc) > return err; > } > > +static void ovl_kill_sb(struct super_block *sb) > +{ > + struct ovl_fs *ofs = OVL_FS(sb); > + > + /* Nothing can modify them now, do not hold them across the sync */ > + if (ofs) > + ovl_inuse_unlock_all(ofs); > + kill_anon_super(sb); > +} > + > struct file_system_type ovl_fs_type = { > .owner = THIS_MODULE, > .name = "overlay", > .init_fs_context = ovl_init_fs_context, > .parameters = ovl_parameter_spec, > .fs_flags = FS_USERNS_MOUNT | FS_VIRTUALIZED, > - .kill_sb = kill_anon_super, > + .kill_sb = ovl_kill_sb, > }; > MODULE_ALIAS_FS("overlay"); > > diff --git a/fs/overlayfs/util.c b/fs/overlayfs/util.c > index f95090f0d29c..817563215001 100644 > --- a/fs/overlayfs/util.c > +++ b/fs/overlayfs/util.c > @@ -1051,6 +1051,18 @@ bool ovl_is_inuse(struct dentry *dentry) > return inuse; > } > > +void ovl_inuse_unlock_all(struct ovl_fs *ofs) > +{ > + if (ofs->workdir_locked) { > + ovl_inuse_unlock(ofs->workbasedir); > + ofs->workdir_locked = false; > + } > + if (ofs->upperdir_locked) { > + ovl_inuse_unlock(ovl_upper_mnt(ofs)->mnt_root); > + ofs->upperdir_locked = false; > + } > +} > + > /* > * Does this overlay dentry need to be indexed on copy up? > */ merged mainstream > diff --git a/fs/overlayfs/params.c b/fs/overlayfs/params.c > index 5a15e5478a6b..82e270711dbc 100644 > --- a/fs/overlayfs/params.c > +++ b/fs/overlayfs/params.c > @@ -849,11 +849,8 @@ void ovl_free_fs(struct ovl_fs *ofs) > iput(ofs->workdir_trap); > dput(ofs->whiteout); > dput(ofs->workdir); > - if (ofs->workdir_locked) > - ovl_inuse_unlock(ofs->workbasedir); > + ovl_inuse_unlock_all(ofs); I moved this up to the start of ovl_free_fs() to be consistent with order in ovl_kill_super. Thanks, Amir. _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel