Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753113AbcLNAn2 (ORCPT ); Tue, 13 Dec 2016 19:43:28 -0500 Received: from mail-db5eur01on0104.outbound.protection.outlook.com ([104.47.2.104]:55328 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752650AbcLNAnZ (ORCPT ); Tue, 13 Dec 2016 19:43:25 -0500 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=MPatlasov@virtuozzo.com; Subject: [PATCH] fuse: relax inode_lock on fsync(2) From: Maxim Patlasov To: CC: , , Date: Tue, 13 Dec 2016 16:42:49 -0800 Message-ID: <148167605339.19309.3008786993520130856.stgit@maxim-thinkpad> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [73.53.48.178] X-ClientProxiedBy: BY1PR19CA0002.namprd19.prod.outlook.com (10.162.139.140) To HE1PR0801MB1852.eurprd08.prod.outlook.com (10.168.150.148) X-MS-Office365-Filtering-Correlation-Id: 56119473-acd9-4e7f-30b0-08d423ba29d0 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:HE1PR0801MB1852; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1852;3:JLotR30exjY8AEmspqANYo5EP5vnIVKPAQ4orqVauDRVD/xM+nPS8uy2eI5C/Jxihw1ki+d3P/o8u08CEyloFGe94FHpIDltLOIfIWAMixz1aoNKutdHFihxR3LS77CO1gCeU7qbmQlkh+RD+Hrk6isnLoZVfgZRJ73s/k3oFRMnJVJaZYmQHqZxy1rp+BNdn37N93abK+jrVEcVVrbjYwEw7lpArwu/jv4Dy8tOu/7TTX3ePRuH1MSvbVfxbKANFAT47TJb47LDqv9nRMEWOg==;25:0SJu89XMIYJwzA7WeUpI4HcKSxxIvk9K9E15CD2YTKlDDZM2WL3yG1/32F8g/5HmM0Mvk4sibxzrEqP/YPsa5rQJw1699LQptC7JA+sZkfeqQ/BYhKYPTHzkEMlYrRA5m9B/yoQY0LhL6kzUiWNpPxkGBtR/YVcu+En4OXSRxC53g10zQvwKDelLDTEtXlut6bWXMYrJAr7fy+FdM/9ZCfEoQCY265WjAZLjejXtVrU3ubFhRJDPnGPqwH2STu2PzSvL396g2X8vaaiWD/TxZSSEIVxowrwbggZonWTHZp9HUvxPxxod+4RHamWWSeK2M+R4XsN9NOP5p58oK+tr933j3XQwN7AT6tYJ7KRns9JLWdUzYN/LVdjSEERGRSEtAfxapAaXThtscsHZygDyajUgrm0G4jISWiTIlTIcm62wW0AV8C9Xq/UmF18eTSKAHpCJi4SBr6ghoadvBUVzwA== X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1852;31:cNPV4LcwaNU6XEiQWkoWJsJAnHEQ9q+ITNmJxd6r2hnZMdPFfalZa5YUeFA8+duNu1DAETp59qmdWHRlNwuOKNBW4OEonQrll6N7LwB8AcAgW6++xjf7/7tvGqoKNY0daiDg0HNJwZHLVWBd+1S/91HMrIO0L7C+jvavO8iIwe5M5n+w+F/Kv5qKVw2B7eJYD3QwHNvK8YlxCH4OrS478Lm2vq8yeTAHNqzth6zIx7bZd/jkZhbkLTmueA8W2qjjCMwNaTWB+rn/YRD8YGiUOA==;20:u+v393lEOrL/ciZdWEEliak7kvH6UMPndBA92V3d9jo3k2Ko0UY/CHR363OcmAAYEJy5hK6JSVxnYQBV9RC6/aZAGn3vvDPwdx8q6HmUCmeZL8bmKvagyhfG+RqBeWHFE4J/5TXQLM9iL5OWgAQss8dKC41/OiYEPHLUiRYfpWQMmb7vXoi2zaNZZiMb97/kv666DhnguzZn//CEUZ+d2QleMedRT1QJ8t9dE7AByKQ7XcjN7fI33mQS8bmCRgvP X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123558021)(20161123560025)(20161123564025)(20161123555025)(20161123562025)(6072148)(6042181);SRVR:HE1PR0801MB1852;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0801MB1852; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1852;4:0JV3pV28f5JDvVWGOAvBPnzGebRaBfrdlM9XF2aaHZW9KfeT5JwawVM/KoBEJwWIk+g1LGZ3kjuswFcyjP/Se2ZbydhRqeo1+6I4TvAJmRlMplHCxZnZudPxYRKCnNUnRUeUFBGrFC/S4Ul981nwNOmoL7/dYHG7708mRV120Ix9YgLOJw7pOwRvZhhGGKyry5b8N5mEMM4BGHAncbmIfdzXuPaUZI53KjrcXEW8iCFfWErEZYqJJ1PV2NpQiVnE3dD6MWaLBmuhNfO5E+BCA5QU9OyyDfhAAHmauPEZzuDYoBhnf2ONB6eTugMNkGnzaBpt/RQ6FFtnr8IlPMnQYjcLt13jeu+KrUDguoVsigeThhobLbEP0L/wkUKQQV5fH4vKCfNsYF2VYwkwE1ubByP5GBf/GL/6iGw8P4lp8wZW8kKLwFX5ezclro52uaBqwyThBdEaqDhLdKx/r3lt2b1gSKiWNzOeq9J6tqI9NizWx9x9NZXoRBCb6lZnb4/JQkaV0O2D3O7TVeRb8n4dkbuwQmYObcwoIccKAIBD2kwDlwhXFgqiTjB31azApXKnpoh94hZnIQKd4CSiSjl+TLDmzoPEvobdxKAd97n49ROWqA55aBmmotlEhefoE9MH X-Forefront-PRVS: 01565FED4C X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(199003)(189002)(66066001)(47776003)(54356999)(50986999)(101416001)(92566002)(33716001)(106356001)(42186005)(105586002)(3846002)(6116002)(2351001)(103116003)(33646002)(23676002)(107886002)(97736004)(189998001)(117156001)(80792005)(4001350100001)(50466002)(4326007)(2906002)(305945005)(110136003)(6666003)(7736002)(83506001)(6916009)(9686002)(81156014)(8676002)(68736007)(6486002)(81166006)(38730400001)(5660300001)(77096006)(4001430100002)(86362001)(230700001)(90366009);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0801MB1852;H:[192.168.0.106];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtIRTFQUjA4MDFNQjE4NTI7MjM6R3RKaVk4NHZ0QWo2emI4dXlVc1BIQm4x?= =?utf-8?B?MHVFUmpsbENTcGpHcTNvRkhwYUpHS0tOZ1ZHTnhGa3hXVVAxL2VsdEdNSFJP?= =?utf-8?B?dDF1aDJ3N0F6Ulc2L01HYlhiZ050YTlRRzRFaGoycTl3LzFWbWJuS0FJSUNj?= =?utf-8?B?MWNFY2dQU3lGcmo0TG1EV0ZBVWJCcXh4eXJrVVJyRGQ1UHN2Wk9ZVGZPRktK?= =?utf-8?B?OUtwUkdXcVVlUllQUFZDdFZOT2VVWFFHU3MzaWVHU1hIYjEzMlU5MERtRzBV?= =?utf-8?B?MFkxSy9NV24xVFArVGRuUU84ZjFHaW44aUxxaWJ5UnA0Zms5eHMzR1R5aWRX?= =?utf-8?B?cFNqcWg4TW1ZVGFUR1h5SDdLQUk0ZEErTkJpRTd4VGNrcG9yK3h1L3U5VVdI?= =?utf-8?B?SlhIRFhpQ3dtdGxhOXFueTdwOWVEc2RlNXVjY3FBWWUvYUdBamlOb1MwZEpN?= =?utf-8?B?VXl6blg4L1JVZTFjV3p3K0ZyTzhnNTRzZXpxQXJwem5oWEUzVVR2RUdPMTlB?= =?utf-8?B?ZTRYK1AvVk5qRkdnZnRrcmphM1VFVjFMR1Fna3RXMUVYT0xraEZ3RTJsZUZP?= =?utf-8?B?UkJZd1hFRHVSSCt0NVFvQ2lwTEFycE5TeG1mNHFNZnZPa0Z2YkpNZm5nRWtx?= =?utf-8?B?ekY0ZkJFSG9yZlVJWDdXREY5cE9BaEpQZWE0SFRnMWRVeXllUGFWZndma3Bp?= =?utf-8?B?WC9teU5qdVU2K2xURnd1RFRMMUlBeXU0MTNFc3JRbHJNcDVZUmdRYVpUaGtk?= =?utf-8?B?MGZPd0FkUDF2R3d6MUtlSnozT2ZXdGR6Qm85UzFTUmFGWTkzc1lFa1dJSjFT?= =?utf-8?B?MkVMb2labG1NeGRLTmZ3bFFZb3NvaFI0VWFyRmJGNEZxVllFN1hyNW16Njh0?= =?utf-8?B?Wndubk5Kd0NYcEYrU0V4cEk2SnVxWkw1NWtKL2o1bGE4UzBhYmt1VUN2aWtW?= =?utf-8?B?ejJLNEVWL2VsVXNxWCtBUm8rQkdmdGtiQ0Q1NlhLc3F2NkNiQ1FWK0NleXNC?= =?utf-8?B?bExzekNVYnNSZVE4a3Mwalg5d0FqREttc2FlZkNnQ3VCM0lNb2hxWWh0ZWcz?= =?utf-8?B?aUZ3NVc3S2VjNEFqNHJOWno0NHdNKytXZmxyQW01Vml0VlpCTHFQMG9QdTRN?= =?utf-8?B?ZjRIQUZzTW1Nd280V1R3b2RNTzB1L2dJV1M1OERwcTBEc3FrazVyaUFZQXQ2?= =?utf-8?B?WGoxTWR0anBpWkFhZDBLSUY1NGt6NnVkWVpURlYzZ3JxTENHTXpidjJTYzMz?= =?utf-8?B?cG1YQ1BwMDh0S3dTUUw0QzJyNVk0THdUbkU4cllUeTF2TWJtMHo5TWllbUFS?= =?utf-8?B?Y0g1NHY4NkNIWExqTk1xY3Vrb2tIa3lLQkRtV0t0NjJ5YlBhWEVCUGxnV2Rl?= =?utf-8?B?YmtsekdQR2FXSm5qeVdXYS9zOUVVSksva0k3NHhhZ1NVQ1BTMkNieWxvQWhh?= =?utf-8?B?TVVWQ1FzYURBK1Bra0lmK3A4UGF2VFRNZWZuZVlBQkdmbm15K0cvazhFL2s3?= =?utf-8?B?VnQ3dHVoYlA1bGxwMUJCODEzZk1Xb1ltbWxPYkp6aVJmWDAzRVU0eWlwTmJU?= =?utf-8?B?dDFYelYyU1A2b0hzNm1yUnk2Ymd1S3R0eTc1dVlKMFFyb2ludzQ3QlpZVU13?= =?utf-8?Q?RZeZoYsTnjb4QssgnzLRn4?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1852;6:9f+A3lSdKRF9Pk0XiXdcpISPQK6pLwfxn7C9OAtuz/SozjLs/COowgp+qzSG4qEtYR8OJs15XYBlvqvT39huKT7MI9hQIo9UeMYBTsXUw2MpWnKBg1iEs+N5C3AgqGHll8SleWgCA79kBJsyp+asknUxZbkBCrlbHvcX/6lVUFaBQB+9S2QApK1sQvdg7krwHlGJYC03ipaJZVLaQd0BA9Cglo8kZY5qCJ9cRQTsDVcfGy8N1Fuy6naBAc8k4bXT+gQjJtZ5z2xXHOy7Yb5uQ5z9hEtZuOw0wNKam+f9j+PI+iS/99COr8xDeFbF9jGiG9IyXFBXKeMea+LrpsfxZ+1fRnF3reN8PhHHJLUbeisNbNbV0WNqp0UuamZGiQcp4z8DLZNgOTthsewZzT+q6clymQ3KtAJLjDADCU4eHc4=;5:DnvvH80CltTIlysEehOU4w0fCkyJ/qoCtf/HHZ8xKPrtBUy8ZVimpAPmTqNC/hjnfRcrd1JsXNITa7pugAktRiC6Muzkc0R8EqMCuXt+FI/H16PkBEfo6S73VpE9JxJ0CJwCS+tD926zpxQ9zCO1lA==;24:GKXTLwKC1v80X57q5vQ6z8EcM+GymEwebWl6EhcpyCqOCik8gfQ/qfiNppEj8aKCH4qpd8MgCIjvwmoTN6rPxGBAuY+ERgJPGL/unhMYhCM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1852;7:fYMfMCLHHFQ0OR0eTW7485O08nmBeI7bXjGcw3tAKZ7sltgoEZqSipAkPK9751REpKIPrp8j9ooC5AW91lUwqrbyOaKTCx/n7WwhWmysacg0cUUfN3Lk9kavJ4iUY7xId+eY1kwO8gtt7j2KSfq7hrQF9MLRwsgC1+8SCeQMkwzQ4ACbXyzC8SNEyJPb7pmCjIB2cQd1PyFLW/mSAvQjdYVt/fZaMufByVbyPh0CiQqI+8U4OEcGQAHoXaR1Emyjs5Y+G5/2vuQfJ2xbji7Z0RbazpobLfHA9kznlB3DFuFKaIg9oAZNuroMPnWfMqhHQPKZV6xgDU0pOBimyF1QPbAYUFTdfNkDPWtd3ig+3Yyr+tAhOo1KLbRZMwM7O3nDMbf4AjNIW5bpWhk3QluTpwcSPHL9GcOXfdocIprE06Sb2TEMtNTJ9AFvJfpXa9mi4krm3uM36gBoVYVD6PP+nA==;20:DyqzHBDUPEqwJ4XZTK5ZH2ytrGbJNa6zaQE/hYZT+QpE3YwIQYplP/u0q5cHN2BI+ZdrS1dmdSK6A1UULj1D7ju+cwBGIcaXDsscNBoqih84lG1q2HTQVtd0NApP3dND9y/yBT80DetwXqVYn6BKSiIQ0k0WTGnZzf3ngyYyjJ0= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2016 00:43:02.3308 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1852 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 839 Lines: 29 Sometimes handling FUSE_FSYNC in userspace may take a while. No need to block incoming writes while userspace processes FUSE_FSYNC. Signed-off-by: Maxim Patlasov --- fs/fuse/file.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 2401c5d..9d52a8a 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -483,6 +483,8 @@ int fuse_fsync_common(struct file *file, loff_t start, loff_t end, if ((!isdir && fc->no_fsync) || (isdir && fc->no_fsyncdir)) goto out; + inode_unlock(inode); + memset(&inarg, 0, sizeof(inarg)); inarg.fh = ff->fh; inarg.fsync_flags = datasync ? 1 : 0; @@ -499,6 +501,7 @@ int fuse_fsync_common(struct file *file, loff_t start, loff_t end, fc->no_fsync = 1; err = 0; } + return err; out: inode_unlock(inode); return err;