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 E47608017D for ; Fri, 6 Nov 2026 18:14:04 +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 6A6ICfCa020952; Fri, 6 Nov 2026 21:12:42 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A6ICfCa020952 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="t7UQWVFn" 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 6A6ICdYX020948 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Fri, 6 Nov 2026 21:12:39 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 6A6ICdYX020948 Received: by mail-yx1-f69.google.com with SMTP id 956f58d0204a3-67bec5d62ebso1454287d50.1 for ; Fri, 06 Nov 2026 10:12:39 -0800 (PST) X-Gm-Message-State: APuU4Z9//rIpqYvQH7NbTGe5kS9J5gVXkOl65In6dFEUuchtJ3+ypCYG n6NmRKXD6Av/g0amU9mW2Q20kQnc/yoCPW4sgF9FDuj2raRc5MpTvbtFhGAbUzbeKZ1R4Hxsztp m/Hg7NNJNG//ff0JY27MsruH/dsGUJ7TshTBl+LKOENDtCuvvi1FFgA== X-Gm-Gg: AYBFou2F83VZ83DSYFEN8SNMggVkL/YZz3K6abOY37EKH5VdNZTrKzj1OTuRYJXkQ4+ aNktZXdwKo9BxessHS0LwLzZToe1WAKB3yEodkjoRWgTu+fNg3x9T3IYItffW/i/PFleM7+n3nE GZGV2Rc7awKoHYNI1bsDjdo8is3Sb+HzJU//C460Gn11UExnY6RXWTBGbUm+G2sI0W21Ef3NHHT OT1F83aT3Nd0FN2zxmG8isS0kd1ZFASIZg5O6zA0Iy4VyqWwwsulu5/076iSteXnDJlFnOZE4M9 L16y1m2bWG1DuziFiALhTa77WGxj5eumeIIFpihDDuoGtzXgMphbzW3ZWoNvkm+elg0VQJUabYF OM9YDAzqn83ucFjKqzbI+P5CqU8dwrqtAIr0scOGNU2dftVADwm74/jMzVC3OOf4s3PuvUvCqSg vgTHg4QVY2I+/1gzaEOKILPnal X-Received: by 2002:a05:690e:4395:b0:67b:e531:90b3 with SMTP id 956f58d0204a3-67c141ccc82mr1353983d50.33.1793988758719; Fri, 06 Nov 2026 10:12:38 -0800 (PST) X-Received: by 2002:a05:690e:4395:b0:67b:e531:90b3 with SMTP id 956f58d0204a3-67c141ccc82mr1353970d50.33.1793988758046; Fri, 06 Nov 2026 10:12:38 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1793988758; cv=pass; d=google.com; s=arc-20260327; b=SBQoDIEFj+xdgFNSLQPdI8SIs8OoI+jxk2mPAdVw1RSvpD54W6lzzSv5muHZSKjDNR Qca8Wta8LoQsS/3RjWq29uw0/SrbP6F1/fO0o/CquTHENJGNu0MC3nuBRf59yo1RCbsg 5vO48/PjccuMrtPdXUn9zum/QxgCaiPNOGi+4Myt1ycWh18GTvHvyxHqkQWoqbDEyn5/ xoE/NACxSFw9IMzhvKBKe4HRdxry82Cm8ugBsy458u4BQkGEEftWduOs43KhOzUxYCGG kfl+Lj65kwIyxnLyeyiz769ATfAhl9Gga65U/wI9Jz7xgQgXYBo0Dl09kxRb8yFcNr9J NYsA== 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=aCC0kYmAjX6cIXxs4yzOVzQ/ajZ32xkN2Xl1SQEIxGY=; fh=ob783slKmd0p6nG7Els+iejdDB9gZo+GBSiYTqxMKTo=; b=BHINjI8sVmlabIQVbQCnLmCQJON45a6E+c/SAe+IUwlRhwRE4YVwGNoYawjmsSmlVa QdPOe5ybeMOQ4JJqmcAIPxRea6K8scgf6c5a7l+gqL0LUpWFq2YVWXPcAlJRtm9EUnNm D5G7K+g3zkm1m7EMkr+D5m8H+oidgbqSrCn3xy1S5jltp0DfaWqxIH1N1qx5VVhPsyz/ o8amb1FIXCiZ/VK1qYn7fzdxlIZcnJfrjwXOZxYLKD5Q7SOc/Qb9YPv6lkeuZ/pNbNWK gXp2r8Pm6aGPOo9w+RyTN5boAdpusIRnTNhGDLzR9iQ2Iy7pIh8SRA7uDggHEOJzYNyb Yr+A==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=t7UQWVFn; 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:c20f::7 as permitted sender) smtp.mailfrom=ptikhomirov@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from OSPPR02CU001.outbound.protection.outlook.com (mail-norwayeastazlp170130007.outbound.protection.outlook.com. [2a01:111:f403:c20f::7]) by mx.google.com with ESMTPS id 956f58d0204a3-67c1363c8edsi2466797d50.182.2026.11.06.10.12.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Nov 2026 10:12:37 -0800 (PST) Received-SPF: pass (google.com: domain of ptikhomirov@virtuozzo.com designates 2a01:111:f403:c20f::7 as permitted sender) client-ip=2a01:111:f403:c20f::7; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=selector2 header.b=t7UQWVFn; 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:c20f::7 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=EwD2NejvTX7Wt7mAo9jFAcpmXPAODX5+PK5IK4HQSjGG6xWDw8XGAAcOUfe3xo1XijkXbXPCUTlhwD+Ehas6ylNEuNRiz/rnoOhfM85HFA6BYfvgWyesu0BQGK4/7doeRcqoe/PqJ8NRHUoXDat4YFl9RMHOMqngqixdxC0wEOlSmqKa4eVdLN28QqhbO0252JxSQN2kxswP6yrvS5Upz83zJbw6zHskxNP17E2yWFJ25XvU5lbFMw/QGjgPROGS3pDyjzoHhtD6VCeIe55ejAhJmVSJfuLPwjkqIMCAu97sO9A/ayCvmf071veU72bHvz+RpjBOEJKoTsID/l8xgg== 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=aCC0kYmAjX6cIXxs4yzOVzQ/ajZ32xkN2Xl1SQEIxGY=; b=Wb+41oHyQ0pG6uZVXmdghh8TEg8Ua1Az6bMZuhlajQRHsJraHkws2qth/Y35oNc02xTm1GRv7lQj8sTvLb9HGzX8Sle4DSguSiSfuCds5k/dop4RO4sJUetNcvLeLEnkH76Szap0z3S16jCIKjReUwh/PcF7K+Jia5wafJy4o2tVNf0YWSvubwsJFk/N0XEiPVy7b2wsFKTkUE9SzGHfqt3+s9yNSfJgij1lb0XyrHBTasJBkUj1urC6QhlK2iREMRA9zhRZTx4UKKsQsi2+F3wEDNeCHTlLAxBISx3hV8aPgg3iIAoG9s5ct+E+6OmFK22NKUs/IhEHI1IcJ8B4NA== 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=aCC0kYmAjX6cIXxs4yzOVzQ/ajZ32xkN2Xl1SQEIxGY=; b=t7UQWVFnCDdkcuV0tXFL0gJO5F8C2v1N5IwrioEDfMKLef66vCOVq8Mr8Yp4ERsZGq0421bsUYX9vOinP5KJ2FwRPJCRqJBa+eHmYFn5DDtBQlfaghoeGXRpgU26M5Uka3qjGFCm2pqEcfwwEYFqsYa45rh7sxtrJPOVAFnD52+6LdTT+PEApmGduGp+szRzRWZ1gXJN0F6o5B49YZn+EAahJCqUQvMIFix4piclUWG7CL/rOQFXyNUlf7sRSbNwq8IQhjnyhHaTOcz62yDz1CsP4/w2uD2yimyItSRnh52EJj6wY72jUIU/wy4/XYQj8zUDh7kWx9lcOeNBLaTXCg== 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 DB4PR08MB9288.eurprd08.prod.outlook.com (2603:10a6:10:3f4::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.592.9; Fri, 6 Nov 2026 18:12:34 +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.0592.010; Fri, 6 Nov 2026 18:12:34 +0000 Message-ID: Date: Fri, 6 Nov 2026 19:12:34 +0100 User-Agent: Mozilla Thunderbird To: "Denis V. Lunev" , khorenko@virtuozzo.com References: <20261106151641.3980601-1-den@openvz.org> Content-Language: en-US From: Pavel Tikhomirov In-Reply-To: <20261106151641.3980601-1-den@openvz.org> X-ClientProxiedBy: BE1P281CA0330.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:87::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_|DB4PR08MB9288:EE_ X-MS-Office365-Filtering-Correlation-Id: a892732f-7f64-4fb9-15c4-08df3c31883f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|23010399003|376014|1800799024|366016|56012099006|5023799004|261021121427099003|261009223027099003|261026140227099003|261022075727099003|261022105027099003|261028144727099003|261026121527099003|261021123027099003|261102123227099003|10067099003|22082099003|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: oAVu7nL8qI67kvYdOY4ijiTHmofFLB4oQAwNN3wELIK1GZ8f12gGzP6BUPZRGUtvm8whA2HiLvztmJawbp/bTr6STiZB1fcCn4kVNQXQezkgkgbHbn3CKY+X1PHOpoodGUwXHAQ3NwKOkLOUzYx6ymqb9TcYjQBdJeV1iyrMmGBV1tsgRfWaP5ctpDRNdUZGM5opDwbwBTxm6MvL60l0R2u9GDa+BlHAja44Z1+tDx0q5r4WWQU63WTbeZUiLFk5tigwSsvGpfL6/0vQ4KABhBbfgcf25TfIYPEK35b+GyJIZR3RQ61xpE3kL1XAXBHodEBVfGXCsGVAj1iCC3xcNwDlV/aZqs0gAUKHyoe9KQe5L43a82blJZpDYue0SepInp/VbQHwyLNrSW8f7m8HlLkk8XuX+aqOvXNS86G8/EQnAzWGRqBkOYy/PLSczbSoFNpM0+LdS3oDM9nJrg677O3VXm/szBGwbZAeT6yOZRPpvzk7OGZ/UXvqca41luyoMSDxJ18iNeXMqG683BJe5shTb1Awo2ZY6RV321oPCIY87K2wUXfL1Lfnw8qZiUClonWJtD1JMrgYHRJ/A3B99HKfF0+y12qBqHhIMAG5/aMzijplntujQfsyC8yE19lR 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)(376014)(1800799024)(366016)(56012099006)(5023799004)(261021121427099003)(261009223027099003)(261026140227099003)(261022075727099003)(261022105027099003)(261028144727099003)(261026121527099003)(261021123027099003)(261102123227099003)(10067099003)(22082099003)(18002099003)(3023799007); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?SDg2NWZqTC9qT2RPQnFsek5xTEJnTEpnL3M1SmlCREVqbzRiMStkUTNPTVlq?= =?utf-8?B?THJxcGdNZ05STDJRZ2VNcWpGMVVkU25aSUN6aUsvNW9qSk1tRWVKRk1wdW0w?= =?utf-8?B?ZFNSSnVwTVJhelJGRTM3QVNCWDJoaEMzbXRKRXBWeXI0VXVObnZDY3VyelF3?= =?utf-8?B?Z25ibTV6MDR5bzArOXNLYXFSaitlcDF2b0EvMUFOaXJoTkhtaXVudjNpSEpV?= =?utf-8?B?MHpxcGpuT2J0Zi9LVzF2NVgrWHpWaDlrUXpXeFhXRjhSWjlBVER6Q2JJbkxC?= =?utf-8?B?WGpUV1NpOWhwVzFLWGlGcUxFUVNmU0FsUjFFeWJDbDNub1cvM3lubHhCNjln?= =?utf-8?B?M3RYMFViQzUwZi9iVXRjUlVWTFNBZ011RzZpT1JOZjE3K1RwRU54K0lyaWdD?= =?utf-8?B?di93eTdxaHduT1d3d0xEYjErRjRuYnVrLy8zN0pMSHIzNVdXeVhIMFRyWmM5?= =?utf-8?B?Yy9KblFmVFdUWDltZDdLREtHUkR3YkJ4YnVsSUFCMW5FR1dmaS9zT2pRM0lK?= =?utf-8?B?M3NXS1JUcTF0YnlpNjc1cUtNRUMvV2hqS0JubE1mNWx6ZCtjYkpaNExxOWwr?= =?utf-8?B?UHJuOEtXQU5xbEdmZzVwSnNab3IvMUtrZVBUOWxCd29vMXVvelE1VEk2Qlhx?= =?utf-8?B?cUNOR3hpRjBaaHFpYWRIV1d4SnhIMW1qVHU3cTI5dXFBSFNYMitHeW9rWDIv?= =?utf-8?B?UUpyc2JCNVFIc0hVWVpSSkFMWlZjQ0xuMHhFYUYvWFJhWlpEWGo3U3dwWTBz?= =?utf-8?B?b0h5WExhTVFuWVRnalNqemJnM281bm9HNE1LdVdueEx6WEtjeVBUT1FjV3Uv?= =?utf-8?B?MU5SaEsyL2hCalhBUDVtUVRFa2VtSXQybE5PMzlLMjFmblRRTGF5aERQWlo0?= =?utf-8?B?ckt1R2lVMDJDYkJWZzI3S1Z0VjNBOXcvakFCc09XdHB5ZFkxU3pFMW5ReVVj?= =?utf-8?B?ZlNpa2pSUkVDbHA1S00rcVJTTUl0Uyt0bFlaY1BMM1YwM2ZweHJrcEt3NHFC?= =?utf-8?B?ZlBoczlvbEs4SGxOQnBkSEZveS9KcVhhVWRoaVlWSWJCOUhkWk5YdHd2V29m?= =?utf-8?B?bWFJckVlNjZBSEkya3RETld3ejdOTllNUGFZRkhLSVRlWHIwalIzSXlPSUdm?= =?utf-8?B?U2MvSlY0R3dhR2h3MUJXZkplbytFNXRSc3BvQitQcTMybXFKMmJBTlVKVnZr?= =?utf-8?B?bjh4U3kyQ2lwTzcxNnkrR1VRcW1qZnlZbkhOUnZGL0RsM2NmRi9rbGNqa0h6?= =?utf-8?B?RUJnUzNvRVFRVEZDL2ZZQkt5alkyank2Q3pMVEFxNXA2OU01aUZ3SkViNXBZ?= =?utf-8?B?UmswSStxOFpiZTYzamZiY0w5djVYT3U3RUxKRE1rTXBFRVFHdTNjOCtYNFl6?= =?utf-8?B?MGFWcFkxRE5RZVY2bzJKaGpaSTVEM0x0eUdYWkQ0aDFFZUNXVG5hU3hucmdQ?= =?utf-8?B?WjAvY2hIR0RpOVM2cFNaYmx1NnI4TWdvbm9RWU5WNlE0ZE9SZ3dkbThteVVK?= =?utf-8?B?OHBrM2FvR04wakxtOU9DMTkwbmpsRWpZVTNJZzVwSzBKaFAyM3Y2Z244VDNR?= =?utf-8?B?UlU0REtXa2ZNV1FJdnRmMkk1a3o2OUpVaW01aVNmckNEVzE5VEhCZDVnZlRI?= =?utf-8?B?aUVsaDVneERkREczdlN6K2pGLzJML1BIVlZrNzRxL2JLS29UalRLMUhiN2tM?= =?utf-8?B?R255Lyt5a2dKSmFOeDZ2ZTlpZmZ2cm16WFR0UE1kV3Q4RWJMNDBRL3BOMExC?= =?utf-8?B?YlE0clRQb3FNTEdlZDdzb21vUlhINzNXMytEcTdYNGUxNE5QQjhWc3dNd00w?= =?utf-8?B?NE1KUDdJMzd5SDJiUVBTVTZVZmplN1Z5Tmp3NnVNeWhicGtUR3RWYUxYRnJ5?= =?utf-8?B?QUg1R1lvK2xjejVWT2t5WEdZVjZ0MmJZMWxENUFyZ1pnRk1XYlVFdlJVcEZM?= =?utf-8?B?QnJWS2hyazhaOWhvS3gwNTVqeHNzU3diYmRKT2FObzNSM2g3VFF2bVB5L2ZB?= =?utf-8?B?MXZqT3BJMDJNZnFGUVpVdGJGSk5tYmYrL0V2ajRiczQ3SjROcEc4TERDb1Va?= =?utf-8?B?R0pTdDJmVWM1S2t3djN2Z3JRM3h6ZnJUNzc2VzA0WkpIYk1PK1crZSs0Y2hL?= =?utf-8?B?eE8rZEVPVCtKSWlYaUxWOERTWkVIYVZacXRuS2xYbVExOTFhWklSVkJtektT?= =?utf-8?B?WkUwL0VzMkxaZTNwS1ZnelI4TFdVdzVXY2tSOTdWNnBWaFhtMi9VSmQ1VXl5?= =?utf-8?B?YTFmZ0JKOW5qVWlUVG1qK2QyZng4TXlqc3MzbW5XU3J3Rm0vT0pmV0h5em92?= =?utf-8?B?NytjdCtCNzFVbi9yR3AzVU5XUnRlSTcwN1l3bkNZdjZaZHk5emkxUT09?= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-Network-Message-Id: a892732f-7f64-4fb9-15c4-08df3c31883f X-MS-Exchange-CrossTenant-AuthSource: AM0PR08MB11804.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2026 18:12:34.7761 (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: WCHB7Lqq9Scbfnv5gZceTCrndLNFvvs4a3GL2tErbG6Xz9AR4q/ooDOPmEH3tV+FdIiuWk3kv9B6NXP3S5mt7TuVIduoM2z9rhofB130Os8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR08MB9288 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 Reviewed-by: Pavel Tikhomirov On 11/6/26 16:16, Denis V. Lunev wrote: > 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? > */ -- Best regards, Pavel Tikhomirov Senior Software Developer, Virtuozzo. _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel