From patchwork Wed Oct 26 22:55:34 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: 9398641 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 715A660234 for ; Wed, 26 Oct 2016 23:13:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 392B7209CF for ; Wed, 26 Oct 2016 23:13:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2DD2229E1D; Wed, 26 Oct 2016 23:13:11 +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 9FCC3209CF for ; Wed, 26 Oct 2016 23:13:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754764AbcJZXNK (ORCPT ); Wed, 26 Oct 2016 19:13:10 -0400 Received: from mail-cys01nam02on0049.outbound.protection.outlook.com ([104.47.37.49]:31923 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1754378AbcJZXNH (ORCPT ); Wed, 26 Oct 2016 19:13:07 -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=HXJn45ukSAYVHr8NVtARhsXyKHLffORIPdoo5clk1h8=; b=AdqO5+LoH8CqWvx1VZ+J/+tG434jyXlY2ZkTQAjzYKl3s2OOiXvTHyJdPL7LBJLRU9NpPfrPpnKzuUwjL0wIx0WQ+y3NpJUIHU9ZdXg5bsHwAsEpX+H5jO/1GucdRoJ+jkUYqUt+9M5nLoWattMh+x/SyyU7LtkavkEddWlqUKA= Received: from BY1PR0201CA0029.namprd02.prod.outlook.com (10.160.191.167) by BN3PR02MB1159.namprd02.prod.outlook.com (10.162.168.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.16; Wed, 26 Oct 2016 22:55:35 +0000 Received: from BY2FFO11FD019.protection.gbl (2a01:111:f400:7c0c::154) by BY1PR0201CA0029.outlook.office365.com (2a01:111:e400:4814::39) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.679.12 via Frontend Transport; Wed, 26 Oct 2016 22:55:35 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.21) smtp.mailfrom=sandisk.com; redhat.com; dkim=none (message not signed) header.d=none;redhat.com; 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 BY2FFO11FD019.mail.protection.outlook.com (10.1.14.107) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.679.5 via Frontend Transport; Wed, 26 Oct 2016 22:55:35 +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 21.E2.26959.4D131185; Wed, 26 Oct 2016 15:44:36 -0700 (PDT) Received: from milsmgip11.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; Wed, 26 Oct 2016 15:55:34 -0700 X-AuditID: 0ac94369-babff7000001694f-b7-581131d4fb6a Received: from exp-402881.sandisk.com ( [10.177.9.6]) by (Symantec Messaging Gateway) with SMTP id 9B.FD.02564.66431185; Wed, 26 Oct 2016 15:55:34 -0700 (PDT) Subject: [PATCH 10/12] SRP transport, scsi-mq: Wait for .queue_rq() if necessary To: Jens Axboe References: CC: Christoph Hellwig , James Bottomley , "Martin K. Petersen" , Mike Snitzer , Doug Ledford , Keith Busch , Ming Lei , 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: <0cd77719-1f11-d5c3-3186-1c7c3cfd6886@sandisk.com> Date: Wed, 26 Oct 2016 15:55:34 -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+NgFtrAIsWRmVeSWpSXmKPExsXCddJ5ke4VQ8EIg5mLpCz+7znGZvHy/AdW i5WrjzJZrJqYZ3Hv6Bcmi723tC3mL3vKbvHsUC+LRff1HWwW5z+8YrJYfvwfk0Xbxq+MFu9/ XGd34PWY2PyO3WPnrLvsHov3vGTyeHBoM4vH5iX1HrtvNrB5fHx6i8Xj/b6rbB6fN8kFcEZx 2aSk5mSWpRbp2yVwZTyctomxYLtgxbtrxQ2MV/i6GDk5JARMJJYdnsvWxcjFISSwlEniyN/1 LBDONkaJ1Rt7WGCq2k6sZoJILGaUaDnUzwySEBYIkji48A4jiC0iICvxffdrNhBbSMBO4ueZ 9ewgDcwCe1gk/j1YCjaJTcBI4tv7mWA2L1DRvavb2EFsFgFViQWzF4ENFRWIkNj0dQ5UjaDE yZlPwGxOAXuJNV+ns3YxcgAN1ZRYv0sfJMwsIC+x/e0cZpBdEgI9bBLdM7YxQhyhLnFyyXym CYzCs5CMmoXQPgtJ+wJG5lWMYrmZOcW56akFhqZ6xYl5KZnF2XrJ+bmbGCHxmLmD8e4T70OM AhyMSjy8DWsFIoRYE8uKK3MPMUpwMCuJ8PYAo1mINyWxsiq1KD++qDQntfgQozQHi5I4r9u9 L2FCAumJJanZqakFqUUwWSYOTqkGxrUpnUteTNhXMpdpRhvXghNLAzMYA4Of90V0dyaLO8o1 /9wW6z79SYjtpxTuDcZ8W+avz7Q8+GZtHoei7ZWZnT0Ll55+86SyrlBR5J+TTGvnpUe3+Eum cWp3JnQ+vTC3/9OVRwkan8qnVOTabD+63Ur+jxFzVanEx4/vv9iaro2fmfltztEFk5RYijMS DbWYi4oTASwXlJjDAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrOLMWRmVeSWpSXmKPExsXCtZGTTTfNRDDCYP5OOYv/e46xWbw8/4HV YuXqo0wWqybmWdw7+oXJYu8tbYv5y56yWzw71Mti0X19B5vF+Q+vmCyWH//HZNG28Sujxfsf 19kdeD0mNr9j99g56y67x+I9L5k8HhzazOKxeUm9x+6bDWweH5/eYvF4v+8qm8fnTXIBnFFc NimpOZllqUX6dglcGQ+nbWIs2C5Y8e5acQPjFb4uRk4OCQETibYTq5m6GLk4hAQWMkp0n25k A0kICwRJHFx4hxHEFhGQlfi++zVYXEjATuLnmfXsIA3MAntYJNZu+wqWYBMwkvj2fiYLiM0L VHTv6jZ2EJtFQFViwexFzCC2qECExKavc6BqBCVOznwCZnMK2Eus+TqdFcRmFlCX+DPvEjOE LS+x/e0c5gmMfLOQtMxCUjYLSdkCRuZVjGK5mTnFuemZBYaGesWJeSmZxdl6yfm5mxghURG5 g/HpRPNDjEwcnFINjKeebS8422GYWay0+uqtU/l6sy06bc17G+/vLdL+v0hqfrON686Eo1PF Fr2MmhpcYPqxLG1C6qytm/zWiq1ov1rn+fr1HNMdRavNPfjrJ7101BAzOtw6bYbFuRkXPm3x OZ/cdlL29XfNMp6pJ1Kn8yV7Jxt4frvKpHzyl4NeRO8OcfGa9BX/WJRYijMSDbWYi4oTAYBN aS06AgAA 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)(199003)(189002)(83506001)(2906002)(4326007)(65806001)(19580405001)(69596002)(626004)(81166006)(8676002)(110136003)(586003)(19580395003)(81156014)(87936001)(50466002)(64126003)(47776003)(230700001)(65956001)(7416002)(23676002)(8936002)(68736007)(77096005)(31686004)(65826007)(6916009)(7846002)(2950100002)(92566002)(106466001)(36756003)(305945005)(33646002)(53416004)(356003)(11100500001)(86362001)(4001350100001)(97736004)(76176999)(31696002)(229853001)(50986999)(189998001)(5660300001)(2270400002)(54356999)(142923001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR02MB1159; H:milsmgep15.sandisk.com; FPR:; SPF:Pass; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD019; 1:7Vk9mXW34wDwnvlEf9clJrgvk33jp+gfBgG5wE6BjWJvik/1KwW5Kh6sIs2JlRs7QDAuyYUrmb1cfdsFFz3HH1OGBlfQKELILe9qezPpNdWOXbhBmQM6bpRQAItBEZsg2er5OBxsHp5zj9vCsjKMoEihYusljN9ij1r1cUhzGqjY6jK44A/WACjVxxptcOzb0YjYDoe9I6m5w54PHbz1gRUNKPtqbhVJfUe1pYS4owhTKYNF9Pj7VCakTz6zxItETceH78MeXProAtPhNWdapxwcnFNNIuzY4yCq2nXgxvXX1yRYZDak91eMvrn0acw8RIaIRhdNi29nN3+MLnOJR/Ga1c6o6sqKND9i2F15BTZ21QGeFyLJFme7vJ6c4pkRJRVS6M4go29VtEfS1x31tXqf5ApgcC7+sjowoeWWWkINsR0DOJ1k5HHOgjd5TcydOFmMUjOuMIElap3Gveq3Jub3+OzMb+0WIWl5CSVbRF98JmJ5bkY0Ou/WiP4FU9bCEsDIWwc08OW+adRCX7XXZvTGye6ptquGf+CmOfOG8c6w4LESNEc0BDh61dxrbiD6 X-MS-Office365-Filtering-Correlation-Id: 69f3c1f9-d72d-4b86-e569-08d3fdf33260 X-Microsoft-Exchange-Diagnostics: 1; BN3PR02MB1159; 2:Ivck0sBHUjodg3zhkndv4tSwsGCe0vXryQeFyITJ9Bp+Brw7yjXf7xZJZ8MQS/Au3rIw7Ew/UB1ENpboNSGOLrJayBwou9GVFcmsNuTby+Ut36RvJMDRaH5oxeVHF1BfcsY7ONZBQkRGiu8CgR2oFR9wDkyagHVswMDP6CGZOzJMSiQErXeFDQQuo6Pqo6xExJ/tC8w3Yoj84uJ73HaW3w==; 3:uJLKqs3qmBJuXiu8I83K5NOK2z16v5SvSkq8ro0i8StrHDbR90+YO/M69nRyoOjKPWOSBPGIzZErBVPKmz5gPAVJRiu8V/N5DwaDngsHR89yEPwu7c8JrSqUQ48pGNmHOyfjLFf0uLkR4V6KUUgqNUCZ5Khr6en1lIJMe6KcrBI0XBEHw0wmxDnHP7IQvCTVddkOojbAALNOwOCGuBPd7g+sQOZPjcCKzWRYzhMHY6KYGZQATC7lXS1knXJo2n3KV2wnErgpW4KsJ3gDjNLHjz+lZx3ZXVGVuVej9KvON/k=; 25:WTljwm8xEQ3iQjS2IyXeGuu8NHqLjYMd5LXcGlwPxV1f0RZsMpph7xiPoNT9lY/OnA89T8n1Q0w5R/UEOGUHwj2WVj/5ti1gH7RfxAkYrdukUeYfI0dg6wkGdduX1XNBFQFGtJM/Pydc2kUQTgiDUbb4r+IDxIeM5J03+GwPcyBl7MccbftI10W5O2SHnV7nRp2wwKKIwjU1s0qrKpX/AGw9aMDyaMdOvFV/HEk1AWjWrmcJGoQZ86GK8tq3dlviY4Jn6E6x7Br1+SA74zWJplb/QCvxX8ZIWlS2kQy+MHw1jrvYc8CHpg/4ZRqrn0dG7sVqgi7+Ii79IynpmGXPQi6V4K+tuAXy1ITJCzrUwV4e5kE7ElNdTRGPA6OwjGuGZNqaGTl/8ZBeT2/96hgGY4pct4+ePAO xvitvl7I1Z1tkAl+DKlGOaqmQxHYjQcrO X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501002); SRVR:BN3PR02MB1159; X-Microsoft-Exchange-Diagnostics: 1; BN3PR02MB1159; 31:FZ6fcCZP/mcvST4fmL/6nxCBfPjQvR9uTBxqVAQoS1G+tHhy2Wg5IU9S2rwB48HZP+ZDJtdWqzW4pS3eHJZ8xlJxSnOg5y7EDN3sGCUd7hUb7/N+7px8qgRPpAxWmgeA+qR4eaU71055CuPOOa9GpUIlM0iTZwPWQVVlMVqHg4XfSlAj6I/sgIMH74+0byw+1E9Qr1HLMdW7qpT4S2J6s/Rdixvif8YPu0/hQ9VJ8jgsDsopNjpydbpRabw5T6TL7+sAdqNmzLUwp70eXEu4eA==; 20:Zlx6lw6u4x7Yksn8nxRD9hH1t6d8BdD0j5fxCwdG+M2+BMG5SYO21gBdi+X/QonEldX5kSHBwzz1CLoDHy7vM+UE3uwnXUqQIHibk6EIV/aGgpKTxtlMmfcmuFZ5ShbnPhblcyaEgJETz7scZdsZO6MM9ipAyQ1MPibeg8Sp6Lp96FmULPd9r5wYec3f1jwhrB6tSrzLchtS6JBVkYyCZWiBlZcomp18FetAcxL5Uw6beig2d8bnUTmVIty9R5lrczOWGJ+N0GVEs2fSyvFdiuW7Qg2VWB2WSSUzGLDArrFVZTEiA9YOr9ARGbO3DbbC/HKjg4qZP7X23UUHpuIEeW3+0OHcGEL2J5EjZz/q3wovCAjC6ugsh1sfQhGkOMNTvUT/Bg5UJ2x0w9AAQ2UsJPPoG90C1TPt6IAhlVdOHtQ3szV0BAiqXWdn/H4Ay5UaRxLH8bcvnW0YLxnTWa2W22LNVZv3XE047xkQgtkUtwyLkydsOoivw4+5KYNblz7+ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(104084551191319)(146099531331640)(42932892334569)(17755550239193); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(13016025)(13018025)(10201501046)(3002001)(6055026); SRVR:BN3PR02MB1159; BCL:0; PCL:0; RULEID:; SRVR:BN3PR02MB1159; X-Microsoft-Exchange-Diagnostics: 1; BN3PR02MB1159; 4:aQUl/ABOT00DaAn6j1VWJUAKOj86VUluDshac/wEOdE17bjBhup3FVi0VxaoJDjYJnh/L2vutesQPqum/C3l4a4DQuTGJwbYeDzWZ0j9kltdiaG282Q0+aaC8v2HS9jFc4gOv8Cf20TYo8gjtw1gKDs7tnpoMrsDCTd7T/sK+eMErLA8Jdje0TTFniF2wcMKHa1ENYXl40cBJL0VXGZYxmGsFs2cj5Box6PeHKb6eze1dwNoV5SNGf2ALh7JN+Sho02WtVZjEZ12AebOGAOzimK8P2kf17HvmZ/8DQhRvDEt/1jS82JfUqDZOBRXNc46sSc8kDbf034VzIX11HOWdhuUrJ8iFLiK89XhH40VS0pJ5Tw+txazW3Ohl9ybN0d9pl7pA3utk+5DOgJLspqplj2sdxUt/WYCeHjcKN/jxQdYBkcgS01PstEgHW0FBZ5zsWRQsQLUID7J9oXmr5aa4/sKSuTXFuN9Se7i4lS84nBWCw5d5xeHVP+xTQtyVzUNMZ0AXd5WCgCqbWuuVLffjznigD69JHYm53VP9qViSR9I0IzXdp60EpSDUtxfDBvGugnN8PvTZWd8E77MghwVxwAZxqssfBXCWlANj0AE7ng= X-Forefront-PRVS: 0107098B6C X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjNQUjAyTUIxMTU5OzIzOjA5dkZmWm1Id1o2cm5WV1EzVXhqclNnMUZW?= =?utf-8?B?bE92bXNlOTNFMStWa0tnakVsTWtRbkFvWTI1SDNRM0dKTk5EUlZwWHY4YVVa?= =?utf-8?B?Skw4Mjg0bGZBMnN6dzR1M1o4eTFHUVZrYVZHUEV4Rk1GYi9vcy9DTjBxQXA1?= =?utf-8?B?V1JFcmRIS0JKajAya3N6UFo1ZUZKU3FwS3NXSXc4ZDcwUjZOL2hYRUJVbmdT?= =?utf-8?B?eTRabWQrYkhWbFJJYWdCQ1lEZE1zSmxEQnJNaUJNL3dWT2xvTSs5aFRjbk9M?= =?utf-8?B?OU0ybEVmQnJKemt1dXpxdkZZWFNqMit6Z2U4cnBpVWEwaWpPWXNNOWUvM0RE?= =?utf-8?B?Rm8raTgyZ29xOTdlS25jaTVkaVVQdzkvYnlLRHhNZUZjcTh1VkgzbDlwRjR6?= =?utf-8?B?eHYwVFk3UGZkbzF6OUtxbVB0RmpHL2hLazJpSVB3K2IrZVBFMlR5NzBJKzJH?= =?utf-8?B?MUFyM3owSkl2UnZha3hLMmZMWWRlREZTK3dKak4vSmVDcTRYYnMzWlV1WTU5?= =?utf-8?B?dVdUYzRoQWRQcU5OeW1zUnlGWWcrV1FTYVJ3TXBKM3BZamZ2ZnpBQjJHQ3Fm?= =?utf-8?B?UkNjRzVDVVV4dVMzSDZyWFZsSW1SNjdLcnZ2a1ZubmFVNms2N2Q0bVR0QllJ?= =?utf-8?B?c2hObmhJZjZBcUUrbkZjK2g0VkF4SWFRMDVtS3ZZczNrZnJUalZ3emNGa1RZ?= =?utf-8?B?QytMeHdrMUtJbm4zaXU2aThiVjYyMkhmTVNIM1J4aTNnODdQeWJTdmp2RHZ4?= =?utf-8?B?QVJDeVBLMXg5SXBsd2NTdFE1Ly8rVWYwekg1ZHUveVN5VEFHU25vSDlJazA5?= =?utf-8?B?ZnFHc0hWVkllcU1RQ3l1Vy9aOHJpd2ovZDduUXAvdFdhSnBRU2I4ZXc0Y1pE?= =?utf-8?B?eGV6M3YzY0NuN3pKcXdYTGVYRjVBZFJObWhtMW9pZDREdHRwaDlENS85aXVY?= =?utf-8?B?Q0tScmN4NUFIemp6bEpoYUF1MGZQZHR4MnlkUWJZTy8rOHVQcVZnZ2JuYlZK?= =?utf-8?B?WkRKU3B0SmZKU1p5Y1N5YnZqYlBLK2RVLzlPRUwxYWptNHFIMWQvenlrcS80?= =?utf-8?B?N2QwbFpUbTdIN2VkaWpya1M4enBEMHVoZnliYlNUeTdMVnlsZWh1Z1FFT0JX?= =?utf-8?B?Sml5QVd4ZTc5cXFCbkF4T25lajRaanFGZW9XM0JPVFRtMHlRbFRVUmZHdEpK?= =?utf-8?B?amVpdUxQdlIwcmlBbVFCd25uSW9yaDVPVmJFMG1ydnpDSDNjUjg3WndYWWJ0?= =?utf-8?B?aCt2enZ6QTl1OUl4d3lveWg2dEtYYkNJVnZJOXh1OFpPNVhld0gxaXFYNkpq?= =?utf-8?B?djZ4MVkreTRQaEN6SWJNdS9XQW94Z2VsbGpqYTRhL24raGE3VU93dENTeG90?= =?utf-8?B?aStkUzRKMXJ5a1d0WGwrK0hycGFHUWNBK2pPMWV2dmMvTDRZZ0hIOEVRWE0v?= =?utf-8?B?MStxa0FSVlM0Yi9qaDJYNzR5WG81L0JqRXg2WE85TFhuMFNNdmRtR1FLQ0VY?= =?utf-8?B?Mi95MTRRUGxjMkhIdkt3MEpyM1cyWmxvOVowZTc0YjBpSmZXUDVuV3p6VjhI?= =?utf-8?B?Y1NPclFPbXIrVE01Q2NKRXVnbXJ5SnRMdGpEWXJHMGlNR2NCM2Nla3poaWJZ?= =?utf-8?B?OGhneFAvc204dEpIZWZSSktPbmtmOFk4aWpxRjI2c09iNnh2bEpNQmNDMWF4?= =?utf-8?B?cTZublgwMXNEOXhVak9vR1FMY2tIQk1oTU4vdnV4S3RzQWtudlE3VjA0YVY4?= =?utf-8?Q?vO8UZ83g9CEDEgBX/cWjA7Cn4zffDxe9lSA8s=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR02MB1159; 6:sKcOWjk0PiBstT/nJRheLjM3wMiXvRsMRwlkulgIvmLqKzoZW7Vgg8OlKXbVY/QLWCOipBw5QLjud14/R8/Vu73juQ4406xzXy2N6sb7Qkvyk/mwzuSEwp6BEuQuj5ScPHFUPVXT+p89U6Oj4cbIKPWX3dENEQXZb/BSYE+4WrDl4aITNTiT9szAx0C/pabOs4cnSlGmirX0yUj2/aHdOWhj/j1fyPJvDzAsnD325KnKJm5NLFlzKsRcvl8FyBamlRho6VFj5MSyhhjWu4itzQOQG8PboOdavjVvb0/6cMELAyfQDkaZxZhoKRp/bmVWuOExmhwgOTqru47NK5SpKg==; 5:YhcRPJZy/Zq3YUKWyo+/SZqwFAFnszqncOvOsR1x/8vailuvB9bBwUBQ6iWwemKs/1UqiCS2n/4fvBX+fJ0bxhNVpBXRzKiKJpiGrpvJ2v3AyvE9U1o+SkUKzl3SllpXl/g2alcOlyEBZHr5sHQ62w==; 24:o2ydko42kxFOcGRziZgXQztigQiM/OfpcssVYmmxGQaDHYCCK2WDv6dAvMAUXMklLjZ3d9WrWh00OAH9Thh/7pn/NPF8RXpqXXlLyWecnac= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR02MB1159; 7:2vRiOMfWXwzC7fgE0bZdZujUCyxoQcu2m2bYQVSeA/YEGjJ2X/5X6cahHaH30AhLMNE8sPj0vzp5tPo6SxkPjXSMQ99EszB6k1RcnlI7CUl79sR5jed3L1u3SThGiljl/SIMS4dfzDEUw74M/NpfrYos+MFT3PSHuC7jIo4PbTrt4R+U7iI+qrsCUwXdFfGTzyG3n2ffLjLECaNHdgFRd9HDtsDmxRdeA4T9JUsiZ1dlhwsiCWlTdPvkKBiza+dVdH0JidPVy9471UDDAZMLD2MDsSJ7SX6/pPSC+r20aDlrVN9Newp8d31UDUctQ4uwWQLgoXUbs/bFlrxCyYNiXXhQDHcElonmlwpmiCZuyEw=; 20:NaeJYr9kbn3tMrg5jw5uSSahEr1afJapr+EBgR6am3hYIbfny2VzM6+TiqDJt6lHzY7mn3Z0m+soqs1hcYJgpCrIZFmHCvdjLPCzPIuvT45O0753biHRtzFXNkx/aERCClf2c/eHtrB03RdASXibNaVYSOb6gkSIah1lgEVoQaliu6LMLrx1cSCDFwwdmwsirvdRxlt9f5UUUKK5ZEMUeTRiZCSq+oJ1/P6fLlGBYtYfP224RTxlqRHGKNV/oMm7 X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Oct 2016 22:55:35.1903 (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: BN3PR02MB1159 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 if scsi-mq is enabled that scsi_wait_for_queuecommand() waits until ongoing shost->hostt->queuecommand() calls have finished. Signed-off-by: Bart Van Assche Reviewed-by: Christoph Hellwig Cc: James Bottomley Cc: Martin K. Petersen Cc: Doug Ledford Reviewed-by: Johannes Thumshirn Reviewed-by: Sagi Grimberg --- drivers/scsi/scsi_lib.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index c1561e7..9b8b19e 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -2724,8 +2724,6 @@ EXPORT_SYMBOL_GPL(sdev_evt_send_simple); /** * scsi_request_fn_active() - number of kernel threads inside scsi_request_fn() * @shost: SCSI host for which to count the number of scsi_request_fn() callers. - * - * To do: add support for scsi-mq in this function. */ static int scsi_request_fn_active(struct Scsi_Host *shost) { @@ -2744,12 +2742,20 @@ static int scsi_request_fn_active(struct Scsi_Host *shost) return request_fn_active; } +static void scsi_mq_wait_for_queuecommand(struct Scsi_Host *shost) +{ + struct scsi_device *sdev; + + shost_for_each_device(sdev, shost) + blk_mq_quiesce_queue(sdev->request_queue); +} + /** * scsi_wait_for_queuecommand() - wait for ongoing queuecommand() calls * @shost: SCSI host pointer. * * Wait until the ongoing shost->hostt->queuecommand() calls that are - * invoked from scsi_request_fn() have finished. + * invoked from either scsi_request_fn() or scsi_queue_rq() have finished. * * To do: avoid that scsi_send_eh_cmnd() calls queuecommand() after * scsi_internal_device_block() has blocked a SCSI device and remove and also @@ -2757,8 +2763,12 @@ static int scsi_request_fn_active(struct Scsi_Host *shost) */ void scsi_wait_for_queuecommand(struct Scsi_Host *shost) { - while (scsi_request_fn_active(shost)) - msleep(20); + if (shost->use_blk_mq) { + scsi_mq_wait_for_queuecommand(shost); + } else { + while (scsi_request_fn_active(shost)) + msleep(20); + } } EXPORT_SYMBOL(scsi_wait_for_queuecommand);