From patchwork Tue Oct 18 21:52:11 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 9383137 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 05804600CA for ; Tue, 18 Oct 2016 21:52:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E84A02896D for ; Tue, 18 Oct 2016 21:52:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D94EA29769; Tue, 18 Oct 2016 21:52:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 428612881F for ; Tue, 18 Oct 2016 21:52:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754006AbcJRVwW (ORCPT ); Tue, 18 Oct 2016 17:52:22 -0400 Received: from mail-dm3nam03on0067.outbound.protection.outlook.com ([104.47.41.67]:40340 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752128AbcJRVwU (ORCPT ); Tue, 18 Oct 2016 17:52:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sandiskcorp.onmicrosoft.com; s=selector1-sandisk-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=hTLZQ2lc/+c7aRLX9DXniPyFwM7Q/XhXJve/dDGnFBk=; b=f/WTr3UIDn7OxEYtebRsDX/s/c8e1hRZIxjhAZNJi9rM1mMY0ndcD8RAkGdTeCfHuxNJf8m5fT5KPtImTS3838Q6MBnEcp+7OI2IA1u8PxWlkYRnP4R/Lzl5jv2irNx5SxAj9Gzs+8zIq1a0wHgjEJwr3Oj4PGr9ByJN7E7yXa8= Received: from BY1PR0201CA0020.namprd02.prod.outlook.com (10.160.191.158) by CY1PR02MB1626.namprd02.prod.outlook.com (10.162.160.156) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.16; Tue, 18 Oct 2016 21:52:17 +0000 Received: from BN1BFFO11FD051.protection.gbl (2a01:111:f400:7c10::1:137) by BY1PR0201CA0020.outlook.office365.com (2a01:111:e400:4814::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.16 via Frontend Transport; Tue, 18 Oct 2016 21:52:17 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.21) smtp.mailfrom=sandisk.com; lists.infradead.org; dkim=none (message not signed) header.d=none; lists.infradead.org; dmarc=bestguesspass action=none header.from=sandisk.com; Received-SPF: Pass (protection.outlook.com: domain of sandisk.com designates 63.163.107.21 as permitted sender) receiver=protection.outlook.com; client-ip=63.163.107.21; helo=milsmgep15.sandisk.com; Received: from milsmgep15.sandisk.com (63.163.107.21) by BN1BFFO11FD051.mail.protection.outlook.com (10.58.145.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.7 via Frontend Transport; Tue, 18 Oct 2016 21:52:16 +0000 Received: from MILHUBIP03.sdcorp.global.sandisk.com (Unknown_Domain [10.201.67.162]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by (Symantec Messaging Gateway) with SMTP id A3.DD.26959.E0796085; Tue, 18 Oct 2016 14:41:34 -0700 (PDT) Received: from milsmgip12.sandisk.com (10.177.9.6) by MILHUBIP03.sdcorp.global.sandisk.com (10.177.9.96) with Microsoft SMTP Server id 14.3.319.2; Tue, 18 Oct 2016 14:52:14 -0700 X-AuditID: 0ac94369-b97ff7000001694f-67-5806970e8f67 Received: from exp-402881.sandisk.com ( [10.177.9.6]) by (Symantec Messaging Gateway) with SMTP id 65.B3.03615.B8996085; Tue, 18 Oct 2016 14:52:11 -0700 (PDT) Subject: [PATCH v3 07/11] dm: Fix a race condition related to stopping and starting queues To: Jens Axboe References: CC: Christoph Hellwig , James Bottomley , "Martin K. Petersen" , Mike Snitzer , Doug Ledford , Keith Busch , Ming Lin , Laurence Oberman , "linux-block@vger.kernel.org" , "linux-scsi@vger.kernel.org" , "linux-rdma@vger.kernel.org" , "linux-nvme@lists.infradead.org" From: Bart Van Assche Message-ID: <1e89a7d7-5cae-40b1-ce31-09d630e6f33d@sandisk.com> Date: Tue, 18 Oct 2016 14:52:11 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0 MIME-Version: 1.0 In-Reply-To: X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrAIsWRmVeSWpSXmKPExsXCddJ5kS7fdLYIg4cXVC3+7znGZvHy/AdW i5WrjzJZrJqYZ3Hv6Bcmi723tC3mL3vKbvHsUC+LRff1HWwW5z+8YrJYfvwfk0V7bwezRdvG r4wOvB4Tm9+xeyze85LJ48GhzSwem5fUe+y+2cDm8fHpLRaP9/uusnm8fbmT1ePzJrkAzigu m5TUnMyy1CJ9uwSujEc/37IVTJWoeLmhn72B8aVIFyMnh4SAicTcO7vZuhi5OIQEljJJ/Hh1 hBHC2cYosW/ncSaYqmPT3zFBJBYzSuydPYsVJCEsECPxacdrFhBbREBW4vvu12wgtpCAncTb 9TtZQBqYBfaySDy8fAusgU3ASOLb+5lgDbxARWc+bQOzWQRUJf4efw9miwpESGz6OgeqRlDi 5MwnQDYHB6eAvcTVA+EgJrOApsT6XfogFcwC8hLb385hBlklIdDDJnFwzhlmiBvUJU4umc80 gVF4FpJJsxDaZyFpX8DIvIpRLDczpzg3PbXA0FSvODEvJbM4Wy85P3cTIyQeM3cw3n3ifYhR gINRiYf3gwVbhBBrYllxZe4hRgkOZiUR3pheoBBvSmJlVWpRfnxRaU5q8SFGaQ4WJXFet3tf woQE0hNLUrNTUwtSi2CyTBycUg2MDjM9bVpEzy4/aqmWaX5OWsluI3fh58mzFrqacE5bfWnl 7uy0jrsPfjed8b3IWpYcYnknnbu17lz5xnKPiEuhzAtm8XR8nfXC7Fas68b9/98uuK0dNHWx qskXs4IXhRxfzgvfUH1/QHP5+tKTThtUu6zqtbQ3z4gT17dvP3ksWMx1gsAE/fN9SizFGYmG WsxFxYkACPZ6JcMCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOLMWRmVeSWpSXmKPExsXCtZGTTbd7JluEwYNN2hb/9xxjs3h5/gOr xcrVR5ksVk3Ms7h39AuTxd5b2hbzlz1lt3h2qJfFovv6DjaL8x9eMVksP/6PyaK9t4PZom3j V0YHXo+Jze/YPRbvecnk8eDQZhaPzUvqPXbfbGDz+Pj0FovH+31X2TzevtzJ6vF5k1wAZxSX TUpqTmZZapG+XQJXxqOfb9kKpkpUvNzQz97A+FKki5GTQ0LAROLY9HdMXYxcHEICCxklJmy8 yQySEBaIkfi04zULiC0iICvxffdrNhBbSMBO4u36nSwgDcwCe1kkOm6fAmtgEzCS+PZ+JlgD L1DRmU/bwGwWAVWJv8ffg9miAhESm77OgaoRlDg58wmQzcHBKWAvcfVAOEiYWUBd4s+8S8wQ trzE9rdzmCcw8s1C0jELSdksJGULGJlXMYrlZuYU56ZnFhga6RUn5qVkFmfrJefnbmKEREXU DsbrE80PMTJxcEo1MC6d3lj5n1W772rxl/Kp3GVmxx8x92l0357nvn72BKPrbNujX31gmppa GR2xrfnwrjdXd4c8NbzNpX70pYx46ZUQ5rffxB767bCsOSe02VLVWFzukollieXmhBsuT0PV zcV0uCbH3Vi11CHBQWyxdp4yf9HmQ6WOT5v29jGI6b06MPH+B5+bb5VYijMSDbWYi4oTAe5b Wrc6AgAA X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:63.163.107.21; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(189002)(199003)(8676002)(92566002)(65806001)(77096005)(76176999)(356003)(8936002)(65956001)(626004)(65826007)(31696002)(31686004)(586003)(229853001)(97736004)(305945005)(36756003)(81156014)(81166006)(47776003)(230700001)(189998001)(7846002)(69596002)(54356999)(83506001)(2270400002)(33646002)(68736007)(11100500001)(50466002)(110136003)(50986999)(86362001)(64126003)(19580405001)(106466001)(2950100002)(5660300001)(53416004)(6916009)(2906002)(7416002)(19580395003)(23676002)(4001350100001)(87936001)(4326007); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR02MB1626; H:milsmgep15.sandisk.com; FPR:; SPF:Pass; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD051; 1:SFkcxirpOg74mrxf1SSDDJvQwgv8ujyq+dnWcxKdxw3P4KFiAm5Yqym8a2rEtGryNwSW/cEwuvjBfmuhfO2+WJ9zRI6Pn6SQsAWc5mfCrjgc5cwPkQNRDqVY2ksUyrO+fhAE2t1GjdnZQHBMEt7k/aIx/QKPIL82cWUSlKHb62qt2pqsxHrc/jGZDvsb24xg0oA20w6kq1txxc5+a1NRqpUEI4ZdAgNTz2/fqnh5zX+yK1KwxHnv2XV6SNRejRZRmVFOLVWFfTveYD7+Lgm5u70ic02xPKJS/gq9PSXWqCwdU/VLBzqw5OtYXUHuLvR1iCH2ouSwN+xdYUufuh/H7AT/k/U/bpdNkEkv/fpJi8Es/5kBvZQIIKz+JUZpHaGw6jWGZYeIya3XS+HdtiUBwRot6CN0zhTNfu+sWeOFkD8RCLhApIPh3HG6w5npieefcJxGNAcWz6Y3smMMH6+XWc4HcvTZJPKEg34rAcD0uGjhoChtTPEJzerg2qQuPUSI3Cva8hg06clBd8IPdHDNdD3EZhV2zokUav/7is4AwmEXhvGgE/NWsEI9puugDn0l X-MS-Office365-Filtering-Correlation-Id: d94188df-03b6-4ae7-c35a-08d3f7a10748 X-Microsoft-Exchange-Diagnostics: 1; CY1PR02MB1626; 2:M6NW8HebnszbzXiJCltc3w+GX4VH2Cjb+/WEb0cEcBUjJ3kTzsEvZYh0c2j4aZf+WLmdouuIXr5oGHdXNNjFdtlYxaiL2ws43VDTiCMe2SJ3bxfv+2P1fjnF7wXtwTabObPdt+OHpUiDkhzAEeCO6zYiX0Y5R1iOvBNTBACLLANZ6n/FFzqaVu4y91ul9DEELzFUheMHxJn+JfY1o7lJtg==; 3:GHoJRKr4xjFrfrM6ErRiqMdwbjx1Uz6UaYgQk2HVTI/YAwcluUYSF3Qo6VY8S799oLpfUMzPYpICEnFOeRmte0pxTCx9pse3h9wjd9PDVjYae71MF4ueY+AHm5VJetmi84xkYMy+THMMjowxVuzMkc1u1w9xSqch9NG8PB31ecOpmWf6VbSm8RH7Is8/hhX2FjKB3Kc2f5lP1T2kLBD3FvM715pkORpXp5Hhb4DnU3IaV+CiYwwPHXNyNleqz2PQgzljeCqM6h2yzve1AnuHL3aXZxFGErmi7HxQ/9tGGDU=; 25:RT2XaBphEw025IDsyVgCNKXRZjb4YhQeQPOm231dWFLc4kHFqt4ndrkgkpkGqO6+f6KqfxVEyFC+t94niw64DbEfvon1hz63tYX3D+FuR86ctCryaz7JB4n/Iw4OFwOeBsSnkReAVLeB99F0SAch7VVkk+ENSNLgMvWnCULl9ER4Zuij3FIMue9B6cTZruO/6Q3P1nC1vdER+dVl1Z4/uD0LZT3ZCT9Ap3yU9ToKFJIDItiYRPyQO/PJkecpAZWSbOHVSW/vtW0gWnOguyPTLvantHyUG64f6fTk+db1sFxp8PHTy2iVXXIdKPwUmLD4WMj8r6HRtuS+EOe8aYjlKCY/BtL6W4tMFwtG5PhSr36egu9IIxMLCACBaVNF+ho6r1oaag3+2hq7+WNzCfZpwXFHL/lzA3k 1RSd2L5dFdXgcMJhIphyKK0TXvcgjMpID X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:CY1PR02MB1626; X-Microsoft-Exchange-Diagnostics: 1; CY1PR02MB1626; 31:cwn0DDwXkjjDGTW+0Wx+nuKaXyrpjpmy3z0ZnGkxTbkz8dZHn9Biy0jka8gb8mSTXtWwBNdR9sKXJQrtFMtn/fppaPJ2W57RZ2GlacsrPK7HGU46QQf/CPuV0UFjyuxJgjZ9cTTG2mWgmHo9kVlcj4oyHrxuRemt2/0gatUC4mjiq7BqkaFpWvW5smjAZdSaw0Jt5ZwjXbDmXt4FYWyzhrpllYzisoMqP9RDvAhYCs8e1O+mkk2lXZtk9JeQv8h5; 20:Z323OEVpfpkvatRkJQ2qEkJ7+dsMKOskJW+zQIRRlo4lOTLBrnp9HeVN4OYH55sHuInANzZK9aNo0519gRdmgnmoK1ACO127Ms5oubQk9hMJiSyW5veR5eQ9j4K1IQ6LEqCfev2gkU6TfzBoQyk11dwd710ilU9rfEVQjtiAeEt4Gq6Eca7bNhK04QcjXxZy0rs0M1Zy4zKrWKOBPFcstS8JablKe1z4EA3gNuk+eUhH9HvT1KlrOw7Yhgri0J4kGCOnHMg0u5vF1vNE50YFRFieuIts+Hf210gpY4HLHrCudgKVJSfeo+e1IUj3WDOjCAFaCCgJAx3aPXwp3jQBHkGdNoAEeKDJ1dh0/I27ZcOPoNbudbprVTapl6F1KAOcQjQijuLRFWBvHLasOScYZvoIFe0dlAdCtgvQTDpms0rFwoHgrBLwTTRxm8KvszB9xfROxOQWk7yLCxl4XJlTPJ9ZvnXOz1NNPXXFmqR1K9zoQldDZxMkJhD0OeKYUTE2 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(13018025)(13016025)(5005006)(8121501046)(3002001)(10201501046)(6055026); SRVR:CY1PR02MB1626; BCL:0; PCL:0; RULEID:; SRVR:CY1PR02MB1626; X-Microsoft-Exchange-Diagnostics: 1; CY1PR02MB1626; 4:Cx2DN6JZ1FHBNIqIHTBR/9HyyNi61tzbUk1sbtKu0vCFP5PGkXCVU7DXcjZy7ZZxbclzha5QMjKu6MwwMjR8kocYJINdJqPRSegbDnrAZgvH09pCTaFKC3Q9l18MJF2vqJ5OPZ4Gi9EZn07kFrtI7Q27oLkK44PASzaN4HRKm5OFN4vnxvjlbtZkDCxloTLuJq8MPqfG+QsEh+Y1zQnWTY344KwWvpx1ocu/WNdsgyHGUEUl9RpPtCL1aGDjhREvVHBqqajk2oxm3Q1cDTQ8zpNc2+p1CaULaD6WTGuxLW+iFbKgjthWP5d6WzH4UwJm2Hz8U8yfydyurh357ATRO4sTTL3qzocZN9GrxgSh3/M+wheuZhmOPYAn/sGPmRLfbhyJxVy8AbtIvvuPOrhkQ7oTZysZyro/odSVo3lgd7otwtOJOKVCRW4pLhE4DI1jY+pDUD8L0gMrg2ZKO1hEUsLKTEK5ylnLfphxCNDxFk/bEf/f9tmw4A7//Z64rDjS X-Forefront-PRVS: 00997889E7 X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtDWTFQUjAyTUIxNjI2OzIzOldJY1pCOXRVMFowTkVhU0xLMmllM1Azazdh?= =?utf-8?B?VDdtclo5WUlGU2JZYm5JdGNvdzNrbFZqQjdSODljU2pEMnFKN1Z2WUp3NHND?= =?utf-8?B?RHJHUGYwUnYxeC8reDNNNWdOZjZRRmNUY1QwUlc2a1htdTFJWnFMU1k1Tkdn?= =?utf-8?B?V1NzV2FxekZFUVVyMlYyRktIVEpvemxyOHQ0UFhDa0JNWTRtdzBkWE5uYktj?= =?utf-8?B?anloanVmeVZsV00xTFNtMU9HTDZnd1psZkJFSGZOemVhN3lkQUhoaUd0bGF3?= =?utf-8?B?WnE1THNHaFZIMVVEemxrUjJvVVl0R2tWdDc4Q3AyUDlzcDlBUU5GN1cvemxl?= =?utf-8?B?SkRwSGJjekdiaXpWNnZjY292NG0xbFpVTU9kYWR6WHliczdjaEFCNUVsM2Nx?= =?utf-8?B?QTZEbDliTlBNamJJYlYxaEswMlNobG9MSnlaako1TGpBeFlYejd6OElNaVlQ?= =?utf-8?B?M1cvczQ4UE9BQXNDZnRPZnczbTJ3MjIzNkZHdEVTMnUxeUJuUTVPRFovTWRi?= =?utf-8?B?QjVqQlhPcXpONDkzdTREbnZua0hFMkwzelV3ZDJHd3FKZGlqWUxUUnZ6YUEz?= =?utf-8?B?WkZ3dXpSV0lDMFNCVWNqVDAxMlpnam5YK0R6V3FXZzZMQkxJWHZpaStsZURL?= =?utf-8?B?TG9hS2l4TlFpYXQ2LzhxeElIU2tEY0Q3V3pBYy9CVUl5NkpNY0lhNjFKeG0x?= =?utf-8?B?REp6T1ZsYkVydVVRbEJoOXJiMVBSU043NlN5OWRFVHM3RGN3blJEWW5Fc3Zj?= =?utf-8?B?U1plYnhGUW5QdWl6M1MzRDR0SVFEOWNKWHNTMWNWNEZUNUFQYngwRG03UHFN?= =?utf-8?B?Z29CVTVkelBvaG1iSXlhckNOTG5LaDdNZE5kMTJ3V3l3NGIxWHpXenIvcWhS?= =?utf-8?B?eVNzeTN4QXZUYzRqWWtzZkt5bWdJWkg2VkRyVThKa2Z1SnZRS1VPQVFsazBn?= =?utf-8?B?TWhnRGFqRkhLcERoZGc1elgrRU95TUx2b1pHaC9YZDN4Qk12ejA2OHJpSFda?= =?utf-8?B?bTF5aXEyZ2xtdktwdkMrdjY0bCtiRUdmOXk4WEtMOEFaQnl1T240ck8ydUNF?= =?utf-8?B?ai8rZ2EwYUV4M0Vzb1dBb2d5Y2FnYm03bUgrNDZZNFh1NHBWNVZLS01vTG9S?= =?utf-8?B?RHcvdlliQ3d2SHNIdWE5SFFzRkRoMFJzV3NlSkViTVpNeFlhejJ5SXdRcDNS?= =?utf-8?B?TXpUV21Bdm5ES3doQUdqZFFsMHJ0eFBXeTdleVBOWlZlbUZTZm54SUcyOUk1?= =?utf-8?B?ZHcxdGhOZzF1VjNweGNoV3UySE1rSlRubDRoM1lPVUVIUmxwQmlTNkMrVWxS?= =?utf-8?B?bXNDYithTVVnY0h0VEtvN2FZZW52ZkpsL0VkZTU3MmRzV2V4MXhDdDl4cmQx?= =?utf-8?B?Q3RPMEkrTGpVcUdQS1NVejA5T0d5L2E2aFY5alhuNWhJTUdNMFRsVDZKVitT?= =?utf-8?B?aWtpM21hNkFXR0h0Ky8rcmdzOVNua1NDd3FaaDdTanZzeTZtdjJJUGFtZDQ4?= =?utf-8?B?RzhlZW0xVCtRTE05MzhscU9nM0tFdFJDNmRZS0IyeHZIaDNDVklVSUxjamsx?= =?utf-8?B?dWoxT2dMTFc2NEtYTndGZllLcStTWE43OXhrd2daaVkwMm1ZanBuMnFCN3Nx?= =?utf-8?B?UWZZRVFibmJwRnl3WnYvYU9yblJ5K0ZWR01PN3ZxNHVBZ1hFZnJ5R2NwOW5r?= =?utf-8?B?Y0JYYnhGUzBMQllFZUhuRE1NcWZma2FIc1N1c1N6bktSOE9xR2Npa3NKeFZF?= =?utf-8?B?TjdkYzcvVUpZRGhWZ0JaZz09?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR02MB1626; 6:GQdhm3Ara+5TEELxvnTsEEYfEhBAzNyd+vjl+5JV926oNbdn0NFrzmUReYWOy5TDkhwO8V0mlQjX1aayzqK2N2EfXTbO/H0iqrVtrbyzS2G7st6dzyy6OWu3HHsREIHcs0XlISM3FK9ymwzQMGxD77Ptc0S9Nx0a7dzL0aJZ2+7/GgGWvUxgAgFxb7PmfFqKo5OXpy+2UH+jU1Qk+Jd3XbbiP6glhjD2epw55VA7CeacHZwr1MunHRTN0PDTpMf5A24p/IW4e4hK2V3PhmocZopqZkd3Zp5oRnx90169S55G+CKHXIJM5fkXphkeUoVp2JhHy5aMuMbnxORwsJZxzAf8pBBw8fUJrwvj5aRQSak=; 5:7i9tfk3rSRYHID3G2oXdaqlfjfkaXfhKqGSCiSwRid7673FOKs/1bgBnWeoEq/NnKx+sE1ztveCEQt6uEk3O6fr6LeHdph10Z9WarAbbRm6SUMzuAWUNEe2mxJsWhhbgKfbQeHJQvEUsGg/qMh6r9A==; 24:iWebF8Axk2c8lpkknnCFQzoSqqWFZ7UnSKGFFRm+BTwaz5eBu11nUwkq4JDuuGvrOuVFiAmzOS9fZk+a/8P8yk90ST6WtukG98/M/8ESkhQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR02MB1626; 7:RmBGEVboXq1Pe5zJWuiUIlq5WlPwyTKENQrB0Nr6OqVSxpydbXCgKK72rnrcEWsgu1Jr5eSwQBBnPdnvRQVTpU+qN6l4GdeWU9r12r21zhtOcev/aNUDj/BCDQeaGBYH2JkPXmm2EBCi9wuZrL+Bbcje8lYrnR0BVFROsc46FZuUYuhGo/rwdd4CVP4mgwq52B3qYuxMhFYpJhOIfEfAI3vXuStdChjPXRAhHMK31QRMP7cQJEQtVNK9GtsbXPAu9ZavxUk4fb69xhcBel9bb7tD3WFRNSXUmVv/DJGUiANDPtQ68w84HOMXzl+JDrPXC9Pn5uczq1lslp01KZDZqUXgVi5n/cO/XfLO3fKdTMc=; 20:B9SSZvYlcO0Ew08DWYvivJO3TTRK1WkhZpvz4+faOC0t/AVAtKQ3uSy0Bi/FekFlGQoaMvocGnr4gHkCwza9N6nL9O5sTDiZLbMzCAgX9sZGUBbHkZf3qXShTve6aU5u2TCiGh3PT4dr4S4jq+hcAy8ChWgbYM821KRWDbIPJEBa9Dsq0AT5ILkcu+myfqGVLkhVlz/2WxcwipJKesUf50Nk0HxxcT0UWdOIiN56jubMdbX+qPzTDItoA4/CprRI X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Oct 2016 21:52:16.1364 (UTC) X-MS-Exchange-CrossTenant-Id: fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=fcd9ea9c-ae8c-460c-ab3c-3db42d7ac64d; Ip=[63.163.107.21]; Helo=[milsmgep15.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR02MB1626 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Ensure that all ongoing dm_mq_queue_rq() and dm_mq_requeue_request() calls have stopped before setting the "queue stopped" flag. This allows to remove the "queue stopped" test from dm_mq_queue_rq() and dm_mq_requeue_request(). This patch fixes a race condition because dm_mq_queue_rq() is called without holding the queue lock and hence BLK_MQ_S_STOPPED can be set at any time while dm_mq_queue_rq() is in progress. This patch prevents that the following hang occurs sporadically when using dm-mq: INFO: task systemd-udevd:10111 blocked for more than 480 seconds. Call Trace: [] schedule+0x37/0x90 [] schedule_timeout+0x27f/0x470 [] io_schedule_timeout+0x9f/0x110 [] bit_wait_io+0x16/0x60 [] __wait_on_bit_lock+0x49/0xa0 [] __lock_page+0xb9/0xc0 [] truncate_inode_pages_range+0x3e0/0x760 [] truncate_inode_pages+0x10/0x20 [] kill_bdev+0x30/0x40 [] __blkdev_put+0x71/0x360 [] blkdev_put+0x49/0x170 [] blkdev_close+0x20/0x30 [] __fput+0xe8/0x1f0 [] ____fput+0x9/0x10 [] task_work_run+0x83/0xb0 [] do_exit+0x3ee/0xc40 [] do_group_exit+0x4b/0xc0 [] get_signal+0x2ca/0x940 [] do_signal+0x23/0x660 [] exit_to_usermode_loop+0x73/0xb0 [] syscall_return_slowpath+0xb0/0xc0 [] entry_SYSCALL_64_fastpath+0xa6/0xa8 Signed-off-by: Bart Van Assche Reviewed-by: Hannes Reinecke Reviewed-by: Johannes Thumshirn Cc: Mike Snitzer Reviewed-by: Christoph Hellwig --- drivers/md/dm-rq.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/drivers/md/dm-rq.c b/drivers/md/dm-rq.c index 9c34606..107ed19 100644 --- a/drivers/md/dm-rq.c +++ b/drivers/md/dm-rq.c @@ -105,6 +105,8 @@ static void dm_mq_stop_queue(struct request_queue *q) /* Avoid that requeuing could restart the queue. */ blk_mq_cancel_requeue_work(q); blk_mq_stop_hw_queues(q); + /* Wait until dm_mq_queue_rq() has finished. */ + blk_mq_quiesce_queue(q); } void dm_stop_queue(struct request_queue *q) @@ -887,17 +889,6 @@ static int dm_mq_queue_rq(struct blk_mq_hw_ctx *hctx, dm_put_live_table(md, srcu_idx); } - /* - * On suspend dm_stop_queue() handles stopping the blk-mq - * request_queue BUT: even though the hw_queues are marked - * BLK_MQ_S_STOPPED at that point there is still a race that - * is allowing block/blk-mq.c to call ->queue_rq against a - * hctx that it really shouldn't. The following check guards - * against this rarity (albeit _not_ race-free). - */ - if (unlikely(blk_mq_hctx_stopped(hctx))) - return BLK_MQ_RQ_QUEUE_BUSY; - if (ti->type->busy && ti->type->busy(ti)) return BLK_MQ_RQ_QUEUE_BUSY;