From patchwork Fri Jun 2 21:21:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bart Van Assche X-Patchwork-Id: 9763469 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 9AC2460360 for ; Fri, 2 Jun 2017 21:22:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8E19E285DC for ; Fri, 2 Jun 2017 21:22:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 82A12285ED; Fri, 2 Jun 2017 21:22:18 +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.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_HI 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 BFD57285DC for ; Fri, 2 Jun 2017 21:22:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751164AbdFBVWR (ORCPT ); Fri, 2 Jun 2017 17:22:17 -0400 Received: from esa1.hgst.iphmx.com ([68.232.141.245]:58224 "EHLO esa1.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751061AbdFBVWO (ORCPT ); Fri, 2 Jun 2017 17:22:14 -0400 X-IronPort-AV: E=Sophos;i="5.39,286,1493654400"; d="scan'208";a="125046173" Received: from mail-sn1nam01lp0114.outbound.protection.outlook.com (HELO NAM01-SN1-obe.outbound.protection.outlook.com) ([207.46.163.114]) by ob1.hgst.iphmx.com with ESMTP; 03 Jun 2017 05:22:13 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector1-sharedspace-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=txCj8mNboZCXd7hm8CO6bbPu05aJYHkNQKQB28NaOnU=; b=W5S8/11KlYYwztN/tipM3+9G0z7+tvuSslzd7fTEPkpCK1cFpc6OKxjyTVcLf89Gr/FCAcn7Qt/5XYm28D6IWZSIEm5stgUHvCmjmOZeWCF6nVLXXZ2rwNKKClnu16mZBSKsHZmmwRejT00aW4c9zqYZ73WmcjotAvq/npIZEyA= Received: from DM5PR04CA0037.namprd04.prod.outlook.com (10.171.152.151) by CY1PR0401MB1466.namprd04.prod.outlook.com (10.161.212.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1124.9; Fri, 2 Jun 2017 21:22:12 +0000 Received: from BN3NAM04FT046.eop-NAM04.prod.protection.outlook.com (2a01:111:f400:7e4e::202) by DM5PR04CA0037.outlook.office365.com (2603:10b6:3:12b::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10 via Frontend Transport; Fri, 2 Jun 2017 21:22:11 +0000 Authentication-Results: spf=pass (sender IP is 63.163.107.225) smtp.mailfrom=sandisk.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=sandisk.com; Received-SPF: Pass (protection.outlook.com: domain of sandisk.com designates 63.163.107.225 as permitted sender) receiver=protection.outlook.com; client-ip=63.163.107.225; helo=milsmgep14.sandisk.com; Received: from milsmgep14.sandisk.com (63.163.107.225) by BN3NAM04FT046.mail.protection.outlook.com (10.152.93.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1101.12 via Frontend Transport; Fri, 2 Jun 2017 21:22:10 +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 96.7A.38445.107D1395; Fri, 2 Jun 2017 14:22:09 -0700 (PDT) Received: from milsmgip12.sandisk.com (10.177.8.100) by MILHUBIP03.sdcorp.global.sandisk.com (10.177.9.96) with Microsoft SMTP Server id 14.3.319.2; Fri, 2 Jun 2017 14:22:05 -0700 X-AuditID: 0ac94371-422569800000962d-95-5931d7015a6a Received: from exp-402881.sdcorp.global.sandisk.com ( [10.177.8.100]) by (Symantec Messaging Gateway) with SMTP id BD.A4.18148.DF6D1395; Fri, 2 Jun 2017 14:22:05 -0700 (PDT) From: Bart Van Assche To: "Martin K . Petersen" , James Bottomley CC: , Christoph Hellwig , "Bart Van Assche" , Sreekanth Reddy Subject: [PATCH v3 03/12] Create two versions of scsi_internal_device_unblock() Date: Fri, 2 Jun 2017 14:21:54 -0700 Message-ID: <20170602212203.30401-4-bart.vanassche@sandisk.com> X-Mailer: git-send-email 2.12.2 In-Reply-To: <20170602212203.30401-1-bart.vanassche@sandisk.com> References: <20170602212203.30401-1-bart.vanassche@sandisk.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrDLMWRmVeSWpSXmKPExsXCddJ5kS7jdcNIgwMPNCxWrj7KZLGxn8Oi +/oONovlx/8xWcz8+pTdgdVj1v2zbB7TJp1i89h9s4HN4+PTWywenzfJBbBGcdmkpOZklqUW 6dslcGX0rd/CVrBDo2L2ntgGxmOKXYycHBICJhLPr9xjBrGFBJYySXSsYu1i5AKytzNK3F59 kQ2m6P2mOcwQic2MEif7X7KAJNgEjCS+vZ8JZosIFEpc2tbBCFLELLAIqGjHUiaQhLCAv0TH lf1ANgcHi4CKxPZpdiBhXgF7ia6tU1ghFshLnN2yE+wKTgEHiW8dS5hByoWAaqb+1YIomcQq 0bewBqJVUOLkzCdga5kFJCQOvngB9YC6xMkl85kmMArNQlI2C0nZAkamVYxiuZk5xbnpqQWG JnrFiXkpmcXZesn5uZsYIWFeuIPx9W3vQ4wCHIxKPLwZZYaRQqyJZcWVuYcYJTiYlUR4d88C CvGmJFZWpRblxxeV5qQWH2KU5mBREufNkp0aISSQnliSmp2aWpBaBJNl4uCUamBsfO3VxNpz prDqd86ys/ERGmfVMu8+0RaInn7GPrZsyfUdm7Y+Oc7H3jZtm8ORILWnrx/PO9g+Y5lQWLPs vomZpVMcFUst1W3nz6+TiStQq0+9fH5fZVKR0aoX4i+KVYP+t3t6ORZeiVmpH2f3nPfj37BV bYxG3RMebPWzs/AWnrFPoar5lKcSS3FGoqEWc1FxIgBvSMoEbwIAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrHJMWRmVeSWpSXmKPExsXCtZEjRffvNcNIg41fDCwO/mxjtFi5+iiT xcZ+Dovu6zvYLJYf/8dkMfPrU3YHNo9Z98+yeUybdIrNY/fNBjaPj09vsXhMW3OeyePzJrkA tigum5TUnMyy1CJ9uwSujL71W9gKdmhUzN4T28B4TLGLkZNDQsBE4v2mOcxdjFwcQgIbGSX+ Pe9mAUmwCRhJfHs/E8wWESiUuH/6NBtIEbPAIkaJht89bCAJYQF/iY4r+5lAbBYBVYkJx66B 2bwC9hJTF3YwQmyQlzi7ZScziM0p4CDxrWMJkM0BtA2o5q/WBEbuBYwMqxjFcjNzinPTMwsM jfSKE/NSMouz9ZLzczcxgkOEM2oH4/WJ5ocYmTg4pRoYV6X9+8InEMf2d0tGnE3h4ddvi1Zk XN4mPYfZx6b0FTOv93+5qGMc3GssJCwNM/5+OPN87+WVeqpiARHKpRH7opQeC/Wf3JK3WUtF vO+o5p7NjCpCtXu8l4rbt+UfrOGXOcFbpVfyMmb/7u+mFVy7uxYvMRQ/3+NlUBWxUCw7W9Hp 30Hbg/xKLMUZiYZazEXFiQDdqnubwQEAAA== MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:63.163.107.225; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(39450400003)(39860400002)(39840400002)(39400400002)(39850400002)(39410400002)(2980300002)(438002)(189002)(199003)(9170700003)(106466001)(356003)(33646002)(8936002)(8676002)(81166006)(38730400002)(53936002)(54906002)(2906002)(305945005)(77096006)(6666003)(86362001)(2950100002)(5003940100001)(76176999)(48376002)(47776003)(50466002)(4326008)(50986999)(1076002)(189998001)(5660300001)(50226002)(478600001)(36756003)(72206003); DIR:OUT; SFP:1102; SCL:1; SRVR:CY1PR0401MB1466; H:milsmgep14.sandisk.com; FPR:; SPF:Pass; MLV:sfv; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3NAM04FT046; 1:RsSgvTPit7ngmG8GvLrwW57Wi84YqVNcrq7SlZ2TbWOMq7CRbYP0JJvit+yTh9KD6PCJFZvzABy8RHIrOTOmECyFHjbrQj0+HZX/w/ky44JreWLUqb4HcSvM8t6/LDmAqcVUekyPCYrbVJnCR4hrtUkFbg9SDAEmxJu/F8PvVjqc4p3+WkVVDL0NfR3doz/+2X4zP1hHyRCw1hWLv5FQcUOrni79HKbBf4aZq+keqsVk6/7/y9C4KHJCDgsof5o8RY1sGAwKkcInZKhbR6N3dy/U7IFfrg7x2V81QHU1Wsn3zQSZK4DrTBnB7xJb6tp5lMPZe9jkTCRTRbHNq8IlMn1SkkFK1LyyG0CD4oygMg6IEwimGdLRTmvyfUZOS+rIzUBcbaLnxZ4V7aENqxUDk2HKoGjGfpP3aKlTad1hhd1IonhzTU+ur0DZnX0BZ9xmykzYF1wjmudlXDe+Nk7DQ5coO2/Dc9BZtgD+2+5prkq5wHFjXmA7+zCtWgjCEW1SJzJ6XQBgT+hLaEiBofUZAQyVVnvVJj2AzrASzX4rkD3qnyAglJEeor9eEZKEzYe7 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY1PR0401MB1466: X-MS-Office365-Filtering-Correlation-Id: b4b7727d-82d6-4e06-1dcc-08d4a9fd6ec3 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002)(2017030254075)(201703131423075)(201703031133081); SRVR:CY1PR0401MB1466; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0401MB1466; 3:6uLn3iSxTK82G5L1SmrS68HKGHNzmfYQm9IfZlAaCCDWK4yCfg8MLu9kF6MyudXelEMeXWjUwQ5xjIVuoptH1O0cBYqwUy/Q/+riS1D0dPEySDwXV1Jc1ytn20mWVecP4vmPAICBh81m2skvMxoxvvgA26kGwe0S5Sbsbqp89EMi9SCOz0/mR+3WYSVihANpZ5DZYEgYQdKqfcU3KoDTG3yOw0s3N5ntr+D74YzmNtmDAs1joG+kWz6ZxapqzWfU1BRg0D78nyaJaXiiSObxK9E7E4/uBeJSujlA7Cwnv3bMeNtPyrRvKjIgWMWgDXcm75ZCkkT879fNmluA8IOuQ8t4sc+O5oiMsMXM+rktzW+hA0P13kOfJ6VJ0Ey42FwgIAPR+aPVNURzdAL10LEiYUD78IybTFmTz8j4O1AUTX8IttGDJDifHCGegnHoN8wtGQNboqAhyjNwBKWo9da9wK6Lb+KD3ZTVXKs+laD2aYjk3mC+OiinGQ0CDDFxDm5s X-Microsoft-Exchange-Diagnostics: 1; CY1PR0401MB1466; 25:lSpCptKCr9VpV1ZiDlHSfd2B9v506suUQiDb4leu7B+LWPSob5oVIfJicoICAb4Pm8JGdJSRgIoSfp8T/CmxhKmvSWorjNxqZK/MIAjh7cj3b7UKNPyg35/VD4g3cHBAo/nBofi6BVIQPveW0gq/sdW5na3Yb0mqS1tVyZ3+I3v0KV9+jwXoia+hYncI/Y593JS04rC6zNsEoFJgxCqPbYMN388Hqcywl53/fvnnUqWPDCF6vDtUTK7gyXNNFTUnlBH+hoXlG/DGLPaaDDUXyBaczuSvAegWasRltzONDw7/3CHS9PNBZ6CyeaQoJd3Hq59bEpDfi7psYG/3sFjEJ3eXx3fjHWQEa92OiqB/+uX94ULI+IEbexJYY3htyJMCFIpogypwu1K5zYMatO/pdY0BcEpWDQ2TeCBsKnFxLvCTZb3cqoNMnFrCihsoPoLhgwvBJWI8rOGHEoLJFc7pgxZ9GnR6g+syDLDcbeXPACY=; 31:uPZgfDRSZ9EtmaaljZ7Y//QHcl0PUtg3cWkTSnp/dTGfm3TrB2I1QWWo4UrKwrXjtMHKnOXf2v+Si+AP7g1b2Ty2GoWBU5fValLGwqXskt3bssdGqXN5PtEnnVpNdW3xqJzHHOltkNluwufBtcUl5hT5DnNWC6RAUdu2pTPFtdytlBvisPsy2mOP82stMDKFch/bVZmsriz+o6hLpywnOg7tkLF/PnDAr2oau1JBlXcdmb0hg73dDsXIrMlKUYq9GooGsgfRsQz/stoZYP4Ovg== WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; CY1PR0401MB1466; 20:cv+J2knLK3e1r+NYzkY8DEsWIAnyJWnZPgTvW4ElYh/tN+zL/R7MIWPsdt1P3DOQ+PpeIODgGx4fsFylkMAcdHqr/i1Jv8506V/hcAN2WB56yQ67Bwgq3+9vo1vku8S/iZfzPkNCxRgP0DyjTnBKj9G2M+/QmuTWjRrJ7d6nsleWZh76NupvuNTlcK76it3ifWoqZ1jaZSIm13RvLqNXAk8aPD5s95bvN7ykRW306DpVTWW/nu/OsUaQc1k6VwCulYmthYZKJUSla1B54eOxJ4I3N4I5N6x/i+ZBlEfsDNuiGJgo9a+611NA60ySz+NVTW9cj03oyqfp4i66QVddeFBfD6aHUQx2QYoea4cD4oGXQCw9w/XZchP1IR7LaJ+c35UamRuvNscyXl5cXxFDwrfIejld81W6y8YC4iKaPilg6YCvEvtYwPbKyoiGRvdJHHRi3+XZs38hXVuC63kiGwOSSvNcnNV6NrrzQQm7fv9oBAzktmQUGCeF5/6SlwGS X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(13018025)(13016025)(5005006)(8121501046)(93006095)(93004095)(100000703101)(100105400095)(10201501046)(3002001)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123558100)(20161123560025)(20161123562025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY1PR0401MB1466; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY1PR0401MB1466; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0401MB1466; 4:NFZc8eMPnwfLGV0rb4ToVnmae3oIZinyLWAGkw/q?= =?us-ascii?Q?4tDUOudxKCDlnJHag1NGh4/wdLCDGO0zY0iquQ60iiIIrk5z2UdscNX8oolb?= =?us-ascii?Q?hGaNYYVFGwSbqSXsTYS/EVHYnhw8KCmN37tQ249kp1NanTz9siDIaPr/BAxT?= =?us-ascii?Q?IE+bieJCFIiyU0HTq2sxrrPLGUHmIMOdfMMZHLQKUx/XcSNriHZy9SlVvavM?= =?us-ascii?Q?/H3pRvLvzrXDy3hOXBhK2qoWRqwtFcxsPIU4Yemff0hmf6Civ4Yw0nN1WhTa?= =?us-ascii?Q?sfveBJjObiiWH2oa0UAn5LLxth3ZPL/CJ3Y8G223LhBYG8UJqruD509PhYTb?= =?us-ascii?Q?Drz2BZrxtFuWzaEqhw1LzNduHtRFEWP+WPMn192wRJj7qJm8xeK76HgLVK6t?= =?us-ascii?Q?TqI2QSAATW6bFjdutKAcvZl2o3DHbUvJlzJ7A7cgbcImIefUizXnySfy0/ZN?= =?us-ascii?Q?8tpdtzIhY/I/4d81IRl9L+j+GqKPEIjvbvji+Qx0I6cR/i9n1Xy3Lj+UMCmA?= =?us-ascii?Q?yTSPt7NtkdHsbSvvjpKjTqx4718oGFau6N3uuBFBIRNiIR4ADDhvww8xjgXT?= =?us-ascii?Q?aXlP/AZQruU7KKn+EPpEZi0MKq2CuUVsblLDhT87BIQieO/vPyQ8sJKhcBbd?= =?us-ascii?Q?IGEV+GH0NM3DsyHsEwq9ihy6ZdRVI1A/dZGDIBybHuLyOWwub8yf6CaPnJHi?= =?us-ascii?Q?iDWa55mO/g5lNAcar9rl5ps+qGyOxUNdMDCXn6p6p6MlgcBaBmOI99XRXUik?= =?us-ascii?Q?+K/qlTPIrq0R743Gu3A9+lE1ZCVC55eGLssKP/wT+MutwN7tWXZ4nqCZQFjs?= =?us-ascii?Q?mTdR4Xnxq2FhWLkplunegeXQOdTltPvWXuufWEawNPpeZjwT3Fq5pw4fU86v?= =?us-ascii?Q?CjVI8oWtcAXcWHYu5EvcY0pzFfUal9Ayeoi2Em0PhhOWigVQe6mAXO2tyB3S?= =?us-ascii?Q?IrEirG+thJ6bOfaDgwPfZinPqoW9/OK4FYOSGMekwicS0jjx+gym4fTsB02U?= =?us-ascii?Q?7rHkoQQRHVOjO978xvE0h9uGJMP5DDDo3GrRJ9gdtk0InUMcEb2bU/f5XlbX?= =?us-ascii?Q?dPd+AhlIEBcjeWxb66Q+mMZI1TDi2oZxoCQeHhbw4AyOTYn22/UEGWBJ0sN1?= =?us-ascii?Q?4Qc1GoEnPkn/8VPQziCPPWxDr8RDfObz4S8psW32kiK8UFsL4tk5jCq5ukPU?= =?us-ascii?Q?D7i0Xv0mq+tpN1b7A1zLenrVXv+Ia8X2MNOXM18MP03bjklevI8lwWgBXEB8?= =?us-ascii?Q?NOfpzyalBgPhtEG1MIo=3D?= X-Forefront-PRVS: 03264AEA72 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0401MB1466; 23:fBINmYFcfZylKRE9mxmJMNB53sox83bjIEvhd15?= =?us-ascii?Q?VRuLBX0WjIznJzpFP4N0ECWy232wMybyegAf1a6fuPCwJQ+oHMhWjZTPKlOy?= =?us-ascii?Q?wq5pEf+mJcOHCQ+jo9jmvmWkvOHnm5sEpWDMlm6603BW5DOmRXWDviI1utDj?= =?us-ascii?Q?wvp/wveNEBtg6MBXaYK23E7uMtcOMj5hO8ZOcKU6GM6dn7fc6ueWyVaA9Aqs?= =?us-ascii?Q?h4sACGbznFkk6G6fX3yfE6paxKn4J1RYzgbFlgtEqGxfkvAYPS2I0XTpzFAR?= =?us-ascii?Q?OSJ0dxOGSAglSMufId36wXS6uwL0nQmqZhbyjsgb+A+kdQLkH1sN4Y64PnPj?= =?us-ascii?Q?jPiHzKdl3eURLvlHeDoLa1EzYtzGC/VZllanELK5HltXw1a8tRlVJ4MAvS1U?= =?us-ascii?Q?3521XlG+5vNvJtI1S3Iek0AGf0mQIF1Kklt5iBhllH6MXR0kkeN47MeACBBS?= =?us-ascii?Q?r7rT8D4zB9vILts0m5kSqCQtDVrUiZJTWk+iYp0fUAAekatE32WJ1obhodIr?= =?us-ascii?Q?5dgckvG8kt/bPwbUJ8YrbClHUmkk+HdxkBqcWZyUy0FZNv1ReMI7uqvbtK3E?= =?us-ascii?Q?Il63IMb94gkYMABZ0R1TEmBS8TwE9unZIY7saPwlyuoTGhxEltaK1PcOsEYK?= =?us-ascii?Q?LnNfTzF8IZN+Bo69Qaear9lEzQhgEhUCK3qF4ISTr0m56slmJRoJEzudWKl4?= =?us-ascii?Q?l9+HgZr9DuVwCiPdYjT6IlMmbYEy5TAFcEfL6VWvh4il3O9eiwkBf4Jd4JsX?= =?us-ascii?Q?qvTWWQeeix2beJkj3Sma+NaktBiyMzy7nLRRBf/vk8sfSc2Fi1FpvSMepbpN?= =?us-ascii?Q?qasofJr+KSGstigkp7Fk3kyrM5cgFtx8CwqKVo59GfrQspv6OgjAtgxR0Eeo?= =?us-ascii?Q?21S5giPkUyNP/J67tYqZn8DzeCmxPxWAroUtFtSk1e6T/UErQMyBtQ3WLfkS?= =?us-ascii?Q?NxdQAzle5vBq6YjI7Xtw4gJHPB4iMKYsEHebNL/KUe+ChdYF8UKKN7SnwieF?= =?us-ascii?Q?m2puAfr82ymTYBGiaz+L6ZooJd4y6IGi4/2qXL1NBDtWrpNW0/yQ0Fwv8eVH?= =?us-ascii?Q?yn5vUdkg=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0401MB1466; 6:MGidAFv5z89jSnD5baprJnl5p8Wkh/Oez5/bCM+QXvX4YX7hVm7CMZeP6PFXyg0XUalytvTm7zuRfukq1R86yNKZPO2RlRD7p95eK+VLFPLSsz0DJMxCZh0aFtVu4s7VKrVCu2wEWRqxvr7Qg4TCSzraXLCp+q3s/YxKpmcsH7f02VcUy5iaWt5g9Ty8RMBsltIH/z0A9J1LCXDJAx5N9S93qlR24gwpojnS3YZCU+GK6AD2Eln+GA8HJXn44YWt101qGGQjE3DUpsSfIuvY8g5mdiLWEOj1aUuIrOKPDShQPj58APbMyajfMn0zxu8g1+2/Maw+QaIn2pVMvV9MXSQXAPwf//BA+KhSlXsYxjRcFTf/qroSEA6Jx+eW478NNnbOH1aJ2gCIFpFqYq5/XReVMnjuFKKS+qpPElj6xE5q1jxZo/k2m2wzzgGDGlVRXbF7mu4VKmXjdO5YBe7+SBpoPSvDzMmTKgOO29+glUe8KkigqcwLdKgU3C2v1gjtzqs5EjAXKiLKHLJF09quRSf7vxJDFWWyQ9HhHLDso50= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0401MB1466; 5:NsA31Vc732eI0H4fV2ndoxIkjKO5tyaNewtTmZxRzXbLEEBe4da/iSVEH9muuMlkY7dvGSr4FyETg7lp/G/RD+ruTqIqffE5WocYs5mwB+De1JMsfSs4klgeNb2gVuRnz27pZ++voXWteuqi3UsGF+VD+iUHaN7D8nTfZqvuwwfaHFwkLZsbRUokpcCs1/3354ksk+J/sL5cq8gjXgai44Xo9ZSkOCKXlHyKVlKWtyL7Zt7gnDxZzNXIO1E1E4ZMPdjJ3bFFazjBeO5Gtr9W9mOcM5gFuB4FdkF/uT/H6uyUrwdyI614XYwHiIxsTcaBi4mVXPzRXoqLd026CrdLSr5Y9QXgOyKeg/Mff9zWJSIVu2qBrt83WOFUyJ9Od74wl6EBzkU312q7lHG/K6+/YX4X1iBM5C6BEEvuMQ+BHHhkYjyYPwzJWKcHkIQReAhUmcZZ9OYNJWyypsTyAPmyU4plF0gz8eOL7/0UXaPuT/13hGtv5ujnllpiuq5CEtcA; 24:WxDQkuw4UeldGIZ0TPA7nmXWl7drHgDH56sSyYyddQG4kmHU0xkw2jVIP8c4k4VjwVFsvVhTKDfrYYSAAmbc9SLuX2otMVXJeafOcdfQy0o= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0401MB1466; 7:y/hoaogDFNzhNLOpFzPuGTww8468hkF4iKWi0NBlo8ZCUFJO5FPDx8CHyzwWQty+pMPvKTpN4pRPcUSNrwx5DMCF2rA26UuwOaxgMg54TNvBS7x1ID1sDXPQR/1lI7ElrEJc0fUeGte048x4YqNxHNgp6ltTkuJB3+xAukDYGng/NjGIZp+dkXUCKE2jsV7cjPRyF8cyAhkwDjUt08H1pwLiI9WIHAZv15gv+e5KxAaA/E3yQsGRFMXvYov0JBlPqhVQp5k4RdiDnjha9Zuqtn2NrR+vMWEVXRxoZzK+SMg8tqLxPKjb9tcrWzyKGh6BvOuSFQ1CXzoZJ9k2x2PcIg==; 20:3sEm1O/K4JcwS7CesqetDjlF0pUwadEttby3o2hQ2EzLKy1PsSr6gXEIxlAESTgtzz6pPg6pxT9gdqFe/UjBXaPNb0rblKRJm8rGsXjzzlyVxYGoPfZkhrvyDCeyK5JF/zNHdzCkeQH2w8mWQ/YE94AKRnX2nj6I9ay4lXZ47VQ= X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2017 21:22:10.3526 (UTC) X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=b61c8803-16f3-4c35-9b17-6f65f441df86; Ip=[63.163.107.225]; Helo=[milsmgep14.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR0401MB1466 Sender: linux-scsi-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-scsi@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This will make it easier to serialize SCSI device state changes through a mutex. Signed-off-by: Bart Van Assche Reviewed-by: Hannes Reinecke Reviewed-by: Johannes Thumshirn Reviewed-by: Christoph Hellwig Cc: Sreekanth Reddy --- drivers/scsi/mpt3sas/mpt3sas_scsih.c | 4 ++-- drivers/scsi/scsi_lib.c | 46 +++++++++++++++++++++++++----------- include/scsi/scsi_device.h | 4 ++-- 3 files changed, 36 insertions(+), 18 deletions(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c index c63bc5ccce37..22998cbd538f 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c +++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c @@ -2883,7 +2883,7 @@ _scsih_internal_device_unblock(struct scsi_device *sdev, sdev_printk(KERN_WARNING, sdev, "device_unblock and setting to running, " "handle(0x%04x)\n", sas_device_priv_data->sas_target->handle); sas_device_priv_data->block = 0; - r = scsi_internal_device_unblock(sdev, SDEV_RUNNING); + r = scsi_internal_device_unblock_nowait(sdev, SDEV_RUNNING); if (r == -EINVAL) { /* The device has been set to SDEV_RUNNING by SD layer during * device addition but the request queue is still stopped by @@ -2902,7 +2902,7 @@ _scsih_internal_device_unblock(struct scsi_device *sdev, r, sas_device_priv_data->sas_target->handle); sas_device_priv_data->block = 0; - r = scsi_internal_device_unblock(sdev, SDEV_RUNNING); + r = scsi_internal_device_unblock_nowait(sdev, SDEV_RUNNING); if (r) sdev_printk(KERN_WARNING, sdev, "retried device_unblock" " failed with return(%d) for handle(0x%04x)\n", diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index c9ce36d16df0..aa84b77e41dc 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -3022,24 +3022,22 @@ static int scsi_internal_device_block(struct scsi_device *sdev) } /** - * scsi_internal_device_unblock - resume a device after a block request + * scsi_internal_device_unblock_nowait - resume a device after a block request * @sdev: device to resume - * @new_state: state to set devices to after unblocking + * @new_state: state to set the device to after unblocking * - * Called by scsi lld's or the midlayer to restart the device queue - * for the previously suspended scsi device. Called from interrupt or - * normal process context. + * Restart the device queue for a previously suspended SCSI device. Does not + * sleep. * - * Returns zero if successful or error if not. + * Returns zero if successful or a negative error code upon failure. * - * Notes: - * This routine transitions the device to the SDEV_RUNNING state - * or to one of the offline states (which must be a legal transition) - * allowing the midlayer to goose the queue for this device. + * Notes: + * This routine transitions the device to the SDEV_RUNNING state or to one of + * the offline states (which must be a legal transition) allowing the midlayer + * to goose the queue for this device. */ -int -scsi_internal_device_unblock(struct scsi_device *sdev, - enum scsi_device_state new_state) +int scsi_internal_device_unblock_nowait(struct scsi_device *sdev, + enum scsi_device_state new_state) { struct request_queue *q = sdev->request_queue; unsigned long flags; @@ -3071,7 +3069,27 @@ scsi_internal_device_unblock(struct scsi_device *sdev, return 0; } -EXPORT_SYMBOL_GPL(scsi_internal_device_unblock); +EXPORT_SYMBOL_GPL(scsi_internal_device_unblock_nowait); + +/** + * scsi_internal_device_unblock - resume a device after a block request + * @sdev: device to resume + * @new_state: state to set the device to after unblocking + * + * Restart the device queue for a previously suspended SCSI device. May sleep. + * + * Returns zero if successful or a negative error code upon failure. + * + * Notes: + * This routine transitions the device to the SDEV_RUNNING state or to one of + * the offline states (which must be a legal transition) allowing the midlayer + * to goose the queue for this device. + */ +static int scsi_internal_device_unblock(struct scsi_device *sdev, + enum scsi_device_state new_state) +{ + return scsi_internal_device_unblock_nowait(sdev, new_state); +} static void device_block(struct scsi_device *sdev, void *data) diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index 6ce6888f3c69..5f24dae2a8e1 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h @@ -473,8 +473,8 @@ static inline int scsi_device_created(struct scsi_device *sdev) } int scsi_internal_device_block_nowait(struct scsi_device *sdev); -int scsi_internal_device_unblock(struct scsi_device *sdev, - enum scsi_device_state new_state); +int scsi_internal_device_unblock_nowait(struct scsi_device *sdev, + enum scsi_device_state new_state); /* accessor functions for the SCSI parameters */ static inline int scsi_device_sync(struct scsi_device *sdev)