From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753169AbcG2OOA (ORCPT ); Fri, 29 Jul 2016 10:14:00 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:44965 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752852AbcG2ON4 (ORCPT ); Fri, 29 Jul 2016 10:13:56 -0400 Subject: Re: [PATCH] nbd: fix race in ioctl To: Vegard Nossum , Markus Pargmann References: <1464346775-370-1-git-send-email-vegard.nossum@oracle.com> <22193884.IvLroPXQMD@adelgunde> <579B3605.4010900@oracle.com> CC: Quentin Casasnovas , , , Paul Clements , Pavel Machek , Al Viro From: Jens Axboe Message-ID: Date: Fri, 29 Jul 2016 08:13:18 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <579B3605.4010900@oracle.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [216.160.245.98] X-ClientProxiedBy: CY1PR0601CA0003.namprd06.prod.outlook.com (10.160.162.13) To MWHPR15MB1198.namprd15.prod.outlook.com (10.175.2.140) X-MS-Office365-Filtering-Correlation-Id: 9cfc4f57-039b-438f-4e98-08d3b7ba8100 X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1198;2:QEBpo9zRpqdFi0XR15XmloNM2TX54voE+Nz5woCclEbeDHWAw6VHAuN47JCmEDsynXIncnIH1xhfvuYO0L58lL6Vp6cdhD36IFlE/jXFjD6Gg54FAZ8pSsv6bNDrsXE64paCKX1lj/OH9lXjIubj1y55OVeML7PBCtyrSBWjZzvcjSe5Z2J7DKjJ4XwBoHOm;3:JpP9XPYFcDh9wIZ2wwXt9FI4I1pOhwY5ZFHArqZ+hX7ioP6ssirkwJq23/Zk5gvaRK9zYnFjtoMUQ7zheHbOWEgQvCv6irt6vlFBFkmhvBhhRxDn6zhdbC32snADtWcQ;25:v5rP9q9kcOeryu0AGsA/kCSltB6gGViioPg9iTYNYo3OcmiSRrXd3ZAveXZpnhM2A6/LH53A92+DUhzLBMD66nMLbhxx3caacXHT5W+iZweCO4FjNE7kn2Bn438gxbWGWhmfWVpn+CwhFDLh7rArp2lbfHlCkfQNhmP7H9A0cbczriKM+GYKon6f2Kg2fn005sDPnbi0nWufbkZafINoztCyZpPtbZKwRa58m4SpPPBvdqft7+V7pQBvw6KJ5LjiPMtyu7LfSEtUAI3VYkb/ks/rR/K7DRcSf/lg6wvZoEcPNBwcE6D5Su6KOJs7G5nW5iwCJD//ms/cGnEeMos7iIWEkBXTsV6Q4pa7iM6CqlGjKqZM4OU4Wfe+frEczQYNZ/xnwj+8niwL6v/EhzSD3TNNKxaaJYMwsSG7nfBWpVg=;31:KWaPYH4hs9oeVOJNh4I6SnHMB1G+oYax5jaBVgxMllK0xQQC1xh6RyRe69mSSNgZh7UBPDguDeJtXCmVtQCj0qhrzg+ws7/1R/25ZTPAWkCJgaGB9ZtUvW0MdoXECPEIusbS4JCx/kvME7bQQfLwDs5zhH2VmRhNYxAfyJlmygXaCzgniYB0tZ6+zVvcTOIy1vaJqVc2vao0coPRCv+6LQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:MWHPR15MB1198; X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1198;20:hYmJ/tTKDW6h8r6FKsd6uLqz3pzzKYFBlLC+gANYFzjQBJvgKpMs4YlmhQPfPvQTcJDHGl/76kv7e3CKk2fQ/zyAsUql8OHVi48+GDAiWNPI3DwJ8f8QLDeX2KNEfpwN6FLzLokV/vN4t3Vb6X6TWYnrCO28JJSB2qLdx5N/xpE=;4:0fR0scZm56Nwajr6Lvc0JiILrIKNbzAdue5HxKVdxajzPAWHl4Tqk7+2rWGsbgEkd2PPvZd+dgfSkFwspE6ReEQ6YKZEmaoBuB2aZRGbFuHpj7dcMdQjT3K0CK5hf+Eepn5L2x/x7TpPGFmWqyDLx06wAIeb/KJQabAtmY7ZBL5/U72Ee6DnmWrda4VIff8ZbHItQocT9k/5CoRVkBKFiBIGDhRTqqMnl078n5Wlf4bqMqIwO3dZGjBIj3fFfRnixRd0zN3YGoMhH0Ba1DAgOtnbEMM+SCYdrw2SMENpy2eE/98P6Qhx7/iTCclwp+VllcwSlSPbTsftJPXOjTisPQ9yrlpP1d/8goWsN/q96rGkcKV0k2GpS4WMRHuADn4x+W7NKXnj7DRNERkhC4I4Dt6QNV8iaPOxOH3M8j59fxrwnEV7bQ+XMhL4aNcw4eax X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(67672495146484)(146099531331640); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:MWHPR15MB1198;BCL:0;PCL:0;RULEID:;SRVR:MWHPR15MB1198; X-Forefront-PRVS: 0018A2705B X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6049001)(6009001)(7916002)(377454003)(189002)(24454002)(199003)(31686004)(19580405001)(92566002)(101416001)(97736004)(5001770100001)(189998001)(3846002)(4001350100001)(68736007)(65956001)(50986999)(76176999)(8676002)(77096005)(19580395003)(6116002)(86362001)(31696002)(81166006)(81156014)(83506001)(42186005)(50466002)(105586002)(66066001)(65806001)(54356999)(586003)(47776003)(4326007)(23746002)(117156001)(106356001)(64126003)(2950100001)(2906002)(7846002)(305945005)(36756003)(7736002)(230700001)(33646002)(65826006);DIR:OUT;SFP:1102;SCL:1;SRVR:MWHPR15MB1198;H:[192.168.1.130];FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;MWHPR15MB1198;23:CL+n2PyyX2qGLCqwT7c+1YH+2v0H+yXbztCNJ?= =?Windows-1252?Q?24edUfQ5v/1gYwO+9W49PyvHtjl0kkSHqxku0GloHtTTBSiyLc9UnKtK?= =?Windows-1252?Q?zGDmG1wJ8xwAeO/NtZ5CNUbKuFDawC0UeGfru4XUCdwh1D51b1DuCGAI?= =?Windows-1252?Q?P7A/Lwvxcvg7/81VbeE3YaFOlAKirx0otqLlG5x1XMQmJEPZqwk2pXQ+?= =?Windows-1252?Q?oHihBKqcQwG0vn93PTJHiQxfs194rTsIFap23vihvClVM8rqPIUqwLBa?= =?Windows-1252?Q?gyLu33/xEZ/742BkFEhtc2G/qRTEv8xbNSeBVgVhwH7jpgQpb9wWzUvf?= =?Windows-1252?Q?EKLp1fWb9No6T4j8rFrLtLAZwWCgnDS6dhmrDoLgZVij9Y9VdPBvb96Y?= =?Windows-1252?Q?Yo5aiwH0PFuWKKv/Lvn7ZCR7iapwLQfaZ8pNMz6QL44aZbbLq78+rLcz?= =?Windows-1252?Q?bJa3t90vArW7aMUrrSgHwvvhkhJ0+5J+6n4HmsEz6E6XME1iOUqSVpGJ?= =?Windows-1252?Q?dGPVmKmtMNeuCZkg/C5pSe8zbId/OXzUs66YttLQnhNK4dT7pR0KRkVJ?= =?Windows-1252?Q?WisYr89wTd/o/CME77JvG4Snob5ILJa5vTGXHm0WYYB9PrWNZop8PPDW?= =?Windows-1252?Q?vmm6wjhrAkD+4dNnGATzYmrcNj01zO8efMuViEkfDBrYih8fwZsKMRwV?= =?Windows-1252?Q?wc+7VqeFgfEar4l6gmeNv/5g8LyfEhj6E2m3ONH3jB9zWOrIA0PgbHqN?= =?Windows-1252?Q?3GTovkv8ccLpO9v/YO2dfS9GmR7l34X6OEP07ot63FFJyh4UnrJfTNUk?= =?Windows-1252?Q?1YtvrPQ6rRuGRdZNx8KaNuSm5aMSMU684R9RMHjOkia9wE3QQ1ghyzcU?= =?Windows-1252?Q?ECUpnqnBvD1oKKcSGSpl7765QmuJhB0jACDwjlJkNIGLvr+u7sNemTUd?= =?Windows-1252?Q?JGbMbL7f8NlFkpo20IehLEnl8RIdPetNgNzpTCY0fD7es0Who42i5OWg?= =?Windows-1252?Q?v8opxfAKZOynxn1iS1bKBeJIbNru2Hq6CPY6SOygXL20IEjKRZy/Qid/?= =?Windows-1252?Q?uDZEGuAckUkPPEmlUcP0tVcHG+7bkeZtE2VYwrzw33cWhrV9wNylyuhn?= =?Windows-1252?Q?z2EyDZTK8NbWba/yAz91XzWmZ93dz0XQyo9WrLtjrdItD521qDUOh2i/?= =?Windows-1252?Q?VheNZ8u854kQ/dcYpPFi2KJUlMYCGJoauhsgOwhySrc0qBGzMT9mjdIF?= =?Windows-1252?Q?RK9YmVMIiuVzp5an3eN5AmEG8z0pF9LGDPzhG/dkcg1qKedaoGNk7d3C?= =?Windows-1252?Q?y5YeInJ4si+2fkKKWLz8O2QuHysMKm+jo3R4bWYTs8M23b2WXuESRJMM?= =?Windows-1252?Q?bsMzGE5Wc/g3HvIe9N4v2YE81L4WneC0A=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1198;6:Yo7gr0Z8noOH6m8inDPbuhF+R5fyM1fLooEPMNQUBG7qolbcHk8rqerLPGdioBQQO2S4Zfc5AxO9NzGr1KYt/fYS1damN2p938vm+UNRt27xB8knZZ4U1PGcPbK+ay9KcHZAxHw8ukn5J79HZB1RgxohhEplNoAj9sGKbPPoxMMWSjM319bsY1Q1EonOLPei1x4NrG9vC6SVit8ro5YbPdXKliPRHSLXIQrffkUrOkcqRb/GfQQtBw9hudnHsv6sQwVq+XGaI9KQOc57+KT5/a3WLdP241aMoNrIe8sYiIw=;5:v6V21t7hBttJznED1ojL8ttwLY7nBzNg/sINV99bf4va2LbrA11rkeOvASTa6Ryg5vqYLKWA06NPMMwGGJSaIlOj2oo9Mv8j3eKckvbhHETmcjUS9eZu9NwPxf92K65YBD5WF/HSASOaOdWUSqZHYQ==;24:Q6ZcdNbDaW9kjGJ2jvlN69JyGhWxrB6NHr9OLXZx7hJx1+4/lSkMrat0izix5WMieZIWVJltwm4eRYo5e/lnp3XAi3CcFnehXJMLykYzIGg=;7:VJLFUHfXqjLsGVaNTkGL0S/A3YvGcLKMj1S/PKSLQyDL72uoAkU42+qbNL6HqeJWN7ySecl9kQ+/x4px4PM6HAZm5gkVLpZEX3yo2V2jhVc32Y0T512zZylk/1Rre8dH0Wd9NDwjS4/eEJx8rFaXo/e3s6HloSreCEm1hFGBRiqIL3leFgX5qe57ZZr8sd+JyxYuzm0Es/LVm975uoZ/lAMZL/NJtmi4hIlCF/8d+oAECErvKr0MdMGZ8MXKFsf6 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MWHPR15MB1198;20:rgCkAXEmDFSDk2DumDjfYx2CAIgqISOKguzQiL2GLTmzJffzvOECpOwtFEFkwe2Fe8uzr4irfXjIc30dCeZV/RFn4u/HuzHcPifIKLmkqXJDGh+rxpe10UEA8MrS+3hosSbLErK+2yY8Rkr4QSWthcfoNk4LPYSyzFXrsKkIKqU= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jul 2016 14:13:23.9607 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR15MB1198 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-07-29_11:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 07/29/2016 04:55 AM, Vegard Nossum wrote: > On 05/30/2016 02:58 PM, Markus Pargmann wrote: >> Hi, >> >> On Friday 27 May 2016 12:59:35 Vegard Nossum wrote: >>> Quentin ran into this bug: >>> >>> WARNING: CPU: 64 PID: 10085 at fs/sysfs/dir.c:31 >>> sysfs_warn_dup+0x65/0x80 > > [...] > >>> It seems fairly obvious that device_create_file() is not being protected >>> from being run concurrently on the same nbd. >>> >>> Quentin found the following relevant commits: >>> >>> 1a2ad21 nbd: add locking to nbd_ioctl >>> 90b8f28 [PATCH] end of methods switch: remove the old ones >>> d4430d6 [PATCH] beginning of methods conversion >>> 08f8585 [PATCH] move block_device_operations to blkdev.h >>> >>> It would seem that the race was introduced in the process of moving nbd >>> from BKL to unlocked ioctls. >>> >>> By setting nbd->task_recv while the mutex is held, we can prevent other >>> processes from running concurrently (since nbd->task_recv is also >>> checked >>> while the mutex is held). >>> >>> Reported-and-tested-by: Quentin Casasnovas >>> >>> Cc: Markus Pargmann >>> Cc: Paul Clements >>> Cc: Pavel Machek >>> Cc: Jens Axboe >>> Cc: Al Viro >>> Signed-off-by: Vegard Nossum >> >> Thanks, applied. >> >> Best Regards, >> >> Markus > > Hi, > > I didn't see this patch in the batch that went into 4.8, so I'm just > following up to make sure it doesn't get lost. > > Moreover, it should also probably go into stable. I have applied it for 4.8. -- Jens Axboe