From patchwork Mon Jun 19 22:07:53 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: 9797935 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 79AE1603F5 for ; Mon, 19 Jun 2017 22:08:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 614D926C9B for ; Mon, 19 Jun 2017 22:08:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4D64E26B41; Mon, 19 Jun 2017 22:08:35 +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 C6A5926B41 for ; Mon, 19 Jun 2017 22:08:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752675AbdFSWIc (ORCPT ); Mon, 19 Jun 2017 18:08:32 -0400 Received: from esa3.hgst.iphmx.com ([216.71.153.141]:18717 "EHLO esa3.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752440AbdFSWI0 (ORCPT ); Mon, 19 Jun 2017 18:08:26 -0400 X-IronPort-AV: E=Sophos;i="5.39,363,1493654400"; d="scan'208";a="26617571" Received: from mail-sn1nam02lp0023.outbound.protection.outlook.com (HELO NAM02-SN1-obe.outbound.protection.outlook.com) ([216.32.180.23]) by ob1.hgst.iphmx.com with ESMTP; 20 Jun 2017 06:08:19 +0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sharedspace.onmicrosoft.com; s=selector1-wdc-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=xwHeXvC2Ettz1oV5ssqEvRSL4GAXuTHH7N9m2FltUoc=; b=Gco7oW2GNG6OXFXP6My8D9bBBv8E3a07sdNPm3qtXnxrhNa37msnzxcsmdl50s41kR+2BNBAHTvPmRGS8mPf6/IxmO7LjOxC3LM6S29oqGTdFkoCR8Tcd1SyILyYVXohhXCr7jdKWUHL4F3sRfM02hvr3kgRuJkorHy33oXGOdk= Received: from MWHPR04CA0064.namprd04.prod.outlook.com (2603:10b6:300:6c::26) by DM2PR04MB541.namprd04.prod.outlook.com (2a01:111:e400:2430::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1157.12; Mon, 19 Jun 2017 22:08:16 +0000 Received: from BN3NAM04FT063.eop-NAM04.prod.protection.outlook.com (2a01:111:f400:7e4e::207) by MWHPR04CA0064.outlook.office365.com (2603:10b6:300:6c::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1178.14 via Frontend Transport; Mon, 19 Jun 2017 22:08:15 +0000 Authentication-Results: spf=fail (sender IP is 63.163.107.21) smtp.mailfrom=wdc.com; vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=wdc.com; Received-SPF: Fail (protection.outlook.com: domain of wdc.com does not designate 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 BN3NAM04FT063.mail.protection.outlook.com (10.152.93.170) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.1178.14 via Frontend Transport; Mon, 19 Jun 2017 22:08:15 +0000 Received: from MILHUBIP04.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 A2.03.02805.C4B48495; Mon, 19 Jun 2017 15:08:13 -0700 (PDT) Received: from milsmgip11.sandisk.com (10.177.9.6) by MILHUBIP04.sdcorp.global.sandisk.com (10.177.9.97) with Microsoft SMTP Server id 14.3.319.2; Mon, 19 Jun 2017 15:08:09 -0700 X-AuditID: 0ac94369-9c18398000000af5-2d-59484b4c339b Received: from exp-402881.sandisk.com.com ( [10.177.8.100]) by (Symantec Messaging Gateway) with SMTP id 86.4D.11415.84B48495; Mon, 19 Jun 2017 15:08:09 -0700 (PDT) From: Bart Van Assche To: Jens Axboe CC: , Christoph Hellwig , "Bart Van Assche" , Bart Van Assche , Hannes Reinecke , Omar Sandoval , Nicholas Bellinger Subject: [PATCH v4 04/12] block: Make most scsi_req_init() calls implicit Date: Mon, 19 Jun 2017 15:07:53 -0700 Message-ID: <20170619220801.12557-5-bart.vanassche@wdc.com> X-Mailer: git-send-email 2.13.1 In-Reply-To: <20170619220801.12557-1-bart.vanassche@wdc.com> References: <20170619220801.12557-1-bart.vanassche@wdc.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrCLMWRmVeSWpSXmKPExsXCddJ5ka6vt0ekwcZ7TBar7/azWSx4s5fN YuXqo0wWe29pW7StPsNocfjeVRYHNo+Jze/YPS6fLfW4v/0Ik8fumw1sHuu3XGXx+LxJLoAt issmJTUnsyy1SN8ugSvjwOTUgkvVFS3b/jI3MPaldTFycEgImEi83hAGYgoJLGWSuK7QxcgF ZG5jlHjxcwVTFyMnWMnlty+ZIBIrGSVWf57LApJgE9CTODVvH1iRiICCRM/vlWwgNrNAD5PE y1VpILawgKdEw8mp7CA2i4CqxIlLC9hBlvEKWEsc/uAHMV9eYtq7XlYQm1PARuL75J2MILYQ UMnn9xMYQfZKCKxjldjxZDnYLl4BQYmTM5+wQOySkDj44gUzRIOyxPm1T9gmMArNQlI2C0nZ AkamVYxiuZk5xbnpqQWGpnrFiXkpmcXZesn5uZsYIWGfuYPx7hPvQ4wCHIxKPLw/3rpHCrEm lhVX5h5ilOBgVhLh/SLlESnEm5JYWZValB9fVJqTWnyIUZqDRUmc95zM1AghgfTEktTs1NSC 1CKYLBMHp1QD400RRaeoGlufPecS3ihr5thn8CsYyO+UclLa8XF/abzY67mr/pf9nGi/XMxb 2HImQ1dVwPaprnqH52xiXPlyP8eLjyyvDiW+idhx6GvSxImyE2+bTeh/lyeZEer1gPX3AZUJ nI8ZW/bvfS/3jPPn4hmSivfr4z7FScgf25F50H+aV/ixuzrr3JVYijMSDbWYi4oTAfXQn9Z3 AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrIJMWRmVeSWpSXmKPExsXCtZEjRdfT2yPSYLuNxeq7/WwWB3+2MVpc +vOF0WLBm71sFitXH2Wy2HtL26Jt9RlGi8P3rrI4cHhMbH7H7nH5bKnH/e1HmDx232xg85i2 5jyTx/otV1k8Pm+S82g/0M0UwBHFZZOSmpNZllqkb5fAlXFgcmrBpeqKlm1/mRsY+9K6GDk5 JARMJC6/fcnUxcjFISSwnFHi65kGdpAEm4CexKl5+5hAbBEBBYme3yvZQIqYBfqYJLZemMgC khAW8JRoODkVrIFFQFXixKUFYDavgLXE//eNjBAb5CWmvetlBbE5BWwkvk/eCRYXAqr5/H4C 4wRG7gWMDKsYxXIzc4pz0zMLDA31ihPzUjKLs/WS83M3MYIDiTNyB+PTieaHGJk4OKUaGDdE n36S7hPxsuPWqbCvq1nMZqscX/10QxX3Csn7X9jP7U7vt1xU3a20cee9dIE9RlauEyzX/DZb E5nLr5fo1SGgu+zgNz1p6UuskqdnPNZXn9jjftxiXa3Vx5NnqosqH/5z39b4o6Fu2Y6i1QlL 1rB+W33LLCTk9ptqW7v/rbKlBw3O35XRZldiKc5INNRiLipOBACeK5gf1AEAAA== MIME-Version: 1.0 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:(10019020)(6009001)(39450400003)(39860400002)(39850400002)(39840400002)(39400400002)(39410400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(9170700003)(6916009)(189998001)(2950100002)(72206003)(76176999)(50986999)(105606002)(305945005)(1076002)(53936002)(106466001)(6666003)(110136004)(478600001)(38730400002)(86362001)(575784001)(36756003)(50466002)(77096006)(356003)(81166006)(2906002)(8936002)(54906002)(50226002)(8676002)(5003940100001)(4326008)(85426001)(5660300001)(33646002)(47776003); DIR:OUT; SFP:1102; SCL:1; SRVR:DM2PR04MB541; H:milsmgep15.sandisk.com; FPR:; SPF:Fail; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3NAM04FT063; 1:jn/53yU2wb1195cJrD0GPIxNkIt51XxqUgRN9tw9267jt9rzPCLWTCkjqQnyj8mVBEXb2+WMvBoxaOfl0iJ2bffRmPj0cbKRD7s/26yMg2EYz2PEp7nyX+Va7m6YqNVJzWuAs7vWeLvlqdWXc9NIOck29KJBsdN4rIgmfi+ZPADgRY1ohZae3p4PfYQ9R5TDyu9whLMfGRM7lHqk8sAKIav3LPkHLM2YgihLDPnER7W2e+a6PlS1OFTgsBqwcFKXueyiF62IrG6PYgLItFzKlu2Po4b1q4L0d5XUryhAqRTc1F7B9mFU8B/7zmRD/L1j3aSujKBfDKKzMXvZ9BBYS3Jfe2whGakVmTkmtqnSP9H21NfATiThFjP9jAL9uEezsOxm739+SQ9kyNpjv7yBwk0xwRDUjbHPhhn0Ru0Xhb7HDe4uHWtBz4DpCe8ISzy895aE7B9uo3lVzi/eFgsH9mx6emnmnBD+9IrJ1G99U6h2/nCSlm1VTP1EXzTcEVQAzK7wEtaqqU8gxJHsTLIZfDAPNtLxH4A8i5zGhuKkYYd2RSkcTkU36SbucBi1kPS5xIUS/aAfMspKvmM2k0TsxzEobn5GkHu/z1uX24fbbi0gh9spCRexP/7S9xGCAxKa0E6ecRyjztEe7nqKTX7rhbeZt+1A9DyNdl/ZBtJVjwTEv3Hy7FAjhVZ46g6o588dwPXhVBliOBQGTjEQuUmT3ZeG3WKx+FTio3usqlQP8PuGj8U3hllehBvnHWFZvzvujskISDQ9TUYiHCNwENmDt+UObBoIRexxwrwFS5/YMLlu1LeHu5U3vNJULeAiWYS1m1+hc8YSb1ye1kErN6eHChXTepS4l47wyY2GaSgNEvVzOX4sdA4pAQRaXHljauf1T3vlD/0nR8egfIPjHaU9TjLWyUYO+VDh+vPqiE2IyA Q= X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM2PR04MB541: X-MS-Office365-Filtering-Correlation-Id: 13098138-1dd5-4599-80ef-08d4b75faf47 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(201703131423075)(201703031133081); SRVR:DM2PR04MB541; X-Microsoft-Exchange-Diagnostics: 1; DM2PR04MB541; 3:BOejUxeeP4XPaa+wucIS4ZS57Wy7RFgHLqLJAS/Ea6vDtT9Q8535mtyfLlqjhT2Wx+/YotzH5uc5/Yawk0h9ADwKgtByk50c70d3tItEuVrwe6FmHwBKs8Au9hZx0GT+rkzQSqMo3PUrRDGNm3nThyOINVl/mKm0Q3rcZlvSQXCeJl6JT0dxmEQycp0IXw4y3UpWXKYeF+WSXw8HHiY9/XINpUyRFw/W8aWRhr8hfgMmGLy61oChyogYh05MsS8wY9DNXM+CmwyGkNhLrV+vYRdjc/B/6c2FIZ8gOZZgA6b63qu+BVAztN+v4Xj46scg9XFQGMgR5yGAbqdWy9uvoAhjA+vJvdBUiEVdhuhNmQIfHOk/LxdgMljGsgPmGgYR5VZ9eliQrE1v9EFH/+7IkVkfxVo/iAu+jTm2ZJuuaUengFRhUeu6jxUMcW4Iv9JJbocLl+YHPtU7ZvnrRPrdWQ== X-Microsoft-Exchange-Diagnostics: 1; DM2PR04MB541; 25:YN3Gf+++cmnYmjK4P9zdZK2vIaQjUvaAdc+tRCvHY9rUGsjXvSMSsy1dgv0r7pforVWgs3B5zhL35T2kgwhizVPYnVITO6nF8fq9TkJ1LHbPQYY0hI8UPB50GIfr1d+N8U0ZooaI0aAM/KaFwBRvE5g3Yq4F1e9IIAP1HyGeAbketLMInmzADs+Y0U6EiMDMfVbbCsHJ3Pey7uLMdOM0Dd1TUZpvv1PKO+YJCmSHbRYlGnhouN1vDaJ12ep/C0Eg4s93u1Y7m7sGed7HMskhfknlzjHx+eA273i2bWcvW66F606VJBUsYw/SCOgMZt9Yu+fuchuRn2WSIhdVJypJQ4QIvIv1ws0iCUoNxOBOCr05zX4jnEkqH8NtlhHuJobtf/J7MQoBICHSQ3gWC1bSQ3On+oQlZMJBbK/zoquSw1sTVHkQlVHByh6K8skMJOuVJdaH6mijStqOvCoM67RD8lWxG0QzqV9Eye1fEWubnyQ=; 31:GNG4Fao6BQdM3oiswFYiWtAooezIl40wFfkZWonxQFbXNZ8KEmLsfTi00nljNQttRX/yGHxGMyngUlwi+gAvtTdPGuzUqF+h/bl7WYSPGBZp92FnOfG3wdzJMqjm+Q6/RRY//tLu1kKEGXL5MevIM3/qgKzRethknHNXlVuv5ghY86dNqT7qNotlGnJ2Gt8PwZ4A9Zj8i+XbdO6I7lLqyVnniAYRFNgX0ct+GrkQhX/+500z6/vROHgiGno+T9F9X0v4dEBopzt683yP73Gqng== WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Exchange-Diagnostics: 1; DM2PR04MB541; 20:VVoNDLEen1aSbc1B2IJb1HV2kRwiflPHAtNg32K2cOKtRo7ZfQnNwUwdp6hjpRtV0Wz/OMnRkkfxrDzph4GOHAajiQ9IY1NCrvJkjmXBc43jCDjZiIgKUlFZrIM7HZGRi5b+82hDTElqbsRCh3ydewhwSINZTIwXddm+pNHsYv4MEpi3ZnDCVfCj1RgaNdXDI/a0T2CvZ3FLQaemiFHRVULEGmeizQD5pct+XMWvm8jAunmpkHpQPm86ADopQiPw6XiwbX5SvefhuoK67LYVTx6YNHOEnqLIW9ZHiDv1zDpNgrCnV8fAkIcvcgMZl7OEufRgPd9z6vljp+YsgP+ewOoLduFNAgNqF+Htdl4gw7enV4S9iyR5n6SV6gZiNy/YQ7A0eJ7Je16rEESZ8QYC7K5OXzlEHC0hwJJDRDuCorcEWB5J8MqxIelv08PFtw/JWFkxHbPNZZbagbJN1ixA0fKrlzpWVjjR5FBoDX0MX/lGsIvdVylCBOgCWHP6o9mo X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(67672495146484)(42932892334569)(17755550239193); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(13016025)(5005006)(13018025)(93006095)(93003095)(3002001)(100000703101)(100105400095)(10201501046)(6055026)(6041248)(20161123560025)(20161123562025)(20161123555025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DM2PR04MB541; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DM2PR04MB541; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR04MB541; 4:kkVYOdY+D59eRQeijkazHjmCiji5NSO5xNXPWe/6bKG?= =?us-ascii?Q?nvj+MQbBGRlIaA3r4zfGSVfIoiciahnF8yvz4noxC6o0DoQ+zrh9trw6NgDH?= =?us-ascii?Q?+nUcismEKsq8Q5alQ0QXQ56kqJHokJsTsDhkZpx2idswpi2vxucNL/rYEaUo?= =?us-ascii?Q?cWr53etqOjOjMUW6d+1cq0ggwHeJXHyBx+4f5s9LoQGslEfCc9sVvuMuKCkN?= =?us-ascii?Q?SBiBc1Cg61FQ/jXUI42lLCeU9MRPduKlw2Nd6/vwKKNToGU7KnL91cg3/ufq?= =?us-ascii?Q?8/2aS9AJqbX0INi3K8hcLc57SGQudkYDUhXKFx8upD0dvS15zcjC+Kz8r6V9?= =?us-ascii?Q?jI/6Y4F80CS8EeVD66dX3daYZWssQ3KoNP3Xkc81PjRbEMrlWTlE00etvQUa?= =?us-ascii?Q?iMflwE5P4FJSgZzMj0toW68cg5+2kHBxaYwFAc1vQDxEA2vbOjuNMa8KqgjX?= =?us-ascii?Q?x10n3PosEuMx5eSTFJWi3R+Uf4wvUim/zkM79AnZNe9XyCTLx7opEMgwxIH8?= =?us-ascii?Q?HjdDJ3p/L65xaYFYaL/ILGn3g1w+GafM4R1+V0gGslhmH/Tj0WpzVfCwJARJ?= =?us-ascii?Q?hU8jnFc5a8vCEz/y6+pvipM/VvZv6nSFTGsXGqbG5DBQVSLcR5kswcdbeL9d?= =?us-ascii?Q?UCYEvPBDynDuaZrkJWsAy4JchAbjOq/PHRiYFOixmdH0UE7WgNQul0O2N4eO?= =?us-ascii?Q?YGRSD19wM9iyTFtmlSkw8OgNSFGKP1lrOIK2cC9+OdOW3itHc7bFIBujxNZn?= =?us-ascii?Q?2agRYl5fp+bTIt02NA5C0Qaiui34uFrbvwdd0LArMBtWDn+Wy0kd8ZX4O7v4?= =?us-ascii?Q?10g+xU58LamkVT3hEe0106pzlWUPiwHiWONWoMOuIrYZcNZl2G9ge2BC065u?= =?us-ascii?Q?9GRP7YlNdI6WTrBG5LweTfpfC+R9iIKqwwn3PhQY55gsKOGMcVaksWxJurzn?= =?us-ascii?Q?KJPK7ihRTiFAgFAVxZuLrZNss+QJHBA4IY+pC/uPPK9xpdMTgzOoLG66rvHA?= =?us-ascii?Q?TImw/upnHFSlzdNlGCUxzPAnXrg+kjSpKU7W1mdGHrPFMShWtaRxCWrrQB28?= =?us-ascii?Q?ZXdy19VUEvrwlF+grCNTq7OIwdI9AbvU+r9tZ2l+Pm4K/kxTi6/zWGKSrI8L?= =?us-ascii?Q?NJZDSa8DJNu6kyGItIz1YGO48VqrqELFBVJjfaSF2jop9nc4itk75R2QpD2J?= =?us-ascii?Q?xg7PIIZ39chK3/Hl6IwM/mdC4b3XjvR6Qy6yhLHXFZN/OGzY5ik+nshbLobX?= =?us-ascii?Q?9LR353z5EmzPdYijgs04V/IzSQ54HYSM9NFvfe9tMtX8hr44epuwjvixBAM3?= =?us-ascii?Q?3aIocU6pGBm1DH258Cg8=3D?= X-Forefront-PRVS: 0343AC1D30 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR04MB541; 23:MVLMImbUM+RVSFBV8BalRV7dM9aBWawiBjMsixFY+I?= =?us-ascii?Q?ainNmi9f4LyHuaogvtOQFsHXQ8cRvaZeF4LRcvkP5IzNZCMmFUtFQeRbN5un?= =?us-ascii?Q?4goESJ+smHLojT6td+zrgb5wlruLmjP1aOUTuPBoY1acKWriN4w6qagY+RBp?= =?us-ascii?Q?woPc5F6X/M5zollnOnvDf8Gfpn+G4CAIy0VN1JVNVZVCc11I5ulEIfM7hNpW?= =?us-ascii?Q?LuHfyvGhUWsDqxBdPa16w+dRCyiWeuneqP7gUfwaii+nHuSd232GdEPFGmnz?= =?us-ascii?Q?sFEjMGerdl0VI+vaL7crBcvzVW1w48TGxZoZCPyWpExciNXVcuezQtmPYewl?= =?us-ascii?Q?eEeoEmywN+9FMjfIYmNp5dLWdjVrWePB8UATREih/8uFyQD9URUMdK8NvHiw?= =?us-ascii?Q?GTlqdzjWLQLmRVX85jTw7n/SFXvDGxxPS6UbAAvBb8OiAspVzykmewEDoFa7?= =?us-ascii?Q?2dOZUsJ0VCU92T98y+48DWsBfsW8qo2g0MBU9DFmvksV96ueRuYd0y/MbLYx?= =?us-ascii?Q?F+KHRqrkvyD1hGk3G39eqsTnRznvOlzmxbaZk2FDzVvEHzmKnFs6TiYcSYxU?= =?us-ascii?Q?8bXJfs3w6JIfLc6jziI/mf/uCRulN0pvFN5mnkHkVSYfyXIcuHht3B4TjtOd?= =?us-ascii?Q?/D/c9JpAL0Oe7gg+Uue/IK8BaOUAtJsG3Hp4d+kRqA6DFppE2KTNjeVRM3TC?= =?us-ascii?Q?ZCXC7akrJkSbzNMeIkTtgp1tJ/2FaaEVAyHW6iG74LnyqZedL5r9r1NBnPHx?= =?us-ascii?Q?YFTEDn9GYWzTFeW4DT2OirqJTC1MoBp/9dWoiYjKe86hUXCn6NvhhgIch8Wb?= =?us-ascii?Q?NRrIJ6pS5g+FfBdeyDQyPrIE9f1SosvI7Zhaab5FWuXC7Bu4QvoUhw4RmA0U?= =?us-ascii?Q?v672wExdMsgA4spho7zyVnrnqtFXURkB7wkY1Jt8JtZXdpcj1PuxCgXILrZ7?= =?us-ascii?Q?zJkWTUjskxdE9CMNKyS+9u7IqCZaKnk1UWW9kWYY2Smzq/y4HVtEk4XRGps/?= =?us-ascii?Q?qRa9Xxpa29Q9jjmZzoSSLOsPekh1LGkSFEPV9ngeVTDVLSrf1AQGP6LFPwG4?= =?us-ascii?Q?Yi+FFH7ZAYu+HFv9Y9cfXRf0jtexzXta7Hgx2cFQDW7Euuirki0wos7lER1S?= =?us-ascii?Q?Z+8JhB0kqv2ln/mMZCNUC1Jq+MBo2drLnJfDZEGBTB/ruoEFJc83Nxb594FY?= =?us-ascii?Q?bX2lT5xPCjhws=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR04MB541; 6:QYtjRwgdQHWpG8tMI0LhvoMnf2FXLeDBYjBtC6W2BSH?= =?us-ascii?Q?cf2oyDTbA/sQADEFSC7UsJKKbDbmbESGX7yFE19Cs5+6mwkMkvYTAosJ4t7Z?= =?us-ascii?Q?EI51bbhBbYXUwz7HbMSz/8bGtPWwyUmTwFTlJ57DV2IvoC2T4GFixck74C62?= =?us-ascii?Q?kwNZt4iIYlGmQwTjTbTkcnvsD9/vtFwXEbtMsNJYDIGIwmAROMGiFm+eKwMB?= =?us-ascii?Q?rMEVas9ng3/8t9e6hpcgUn/ns30bwCR3dY2RIs0vIZasrd1mUQJirRlvUl+7?= =?us-ascii?Q?vDBRM5Y/JVZ2IRzMxokifk7+BnWKhMWnNRYOr+QO8T6Bpd84ytYROTmPwnXG?= =?us-ascii?Q?6UBpfQvm48jHp4l0g/1AeTnTA/Wf9m65FGkUi1KKMpqJ80r9AukOjPPflGTb?= =?us-ascii?Q?D6Q4cZHfpOxXwDdKwgX14iat3lPe3vJgT5W6Tq7VyoXPlL4nTLw0wUqMl2gX?= =?us-ascii?Q?Yrjxzdask1GZYIQLZUUwsZYgD8TuDZP1GuSYCViQ7QgQ3QBH/F5aMDsKYEFI?= =?us-ascii?Q?ni3qb1xL7wNmSsvzFV6x+R94PhTL2XebITYSbiXHdX22EePe4Ls6kNRENxJo?= =?us-ascii?Q?dR3u5XACZn+ceA5/JJfT4BFKV46YZ324hufPqxuBbOgzlkeXxjJAK4jcO3QE?= =?us-ascii?Q?Uw5pxCizQAI8PlxhgsRijOPkh1som2pAN+UAw+8CX0NEBeaVO0fZl5DnkczV?= =?us-ascii?Q?PnIezvK1hhR6sSAd9vCa/Wc8akueQATQaBeFHFFMJBiMjGlvSi8vzWOhicml?= =?us-ascii?Q?c/muFNcYgqE0+jrtsDA/iCKktWP/Z0uRFRztCxl9Ez847uPJ4BCb1D3bToUA?= =?us-ascii?Q?sjej5Xe9WttSk+hFa1tlN0a501FKWcz3MnkbncjnNEcVeR0X7GlDHJFcFIkW?= =?us-ascii?Q?P+2CpOOnx3i22u6THwDeyvXeioIYB0TYy+YOpVFIJ2zzpHqCIYR6d2lW/aaK?= =?us-ascii?Q?KqXCmMi1l42FspKjBTffphSxfFb2m2vFt7migxppiESLvczcOypVBpJ64hH8?= =?us-ascii?Q?mguBC1ineJsZKDwMIY62J?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR04MB541; 5:tSyQ4c65l/jVK+u+eaZ64O+vfRNpu1I/vavW5UhjiYJYtUhtIsGry4zrsbERfZkJmb396ELVA4y+IwBWVJ958wE53wlIr3qZRfFDzXNyLZtnNe3kh5pEZeZSdX+dbhUoqy9LngDv4cCf5FYOs7lZ3hOXLueDk1AcNU3OGOQ+algytuuSL+IoH8G8PuqaVkX4yxE/qMr7HjkDmAiwZpmuHCreezQVmOpGOu6rviDBUnenj2v6SMfczlNFJcBJMsgMJsNBXyJuR6HV+iLLlZ7Jimc1MCf5pRKSVV9D25QY4EuJOysUmiECzx19o91UWfKzbQO/ga+jt/78jXTN2omEQU5tR86G/XK4S+D+l2bk12tC/I5nrSurWxeXgbuMe6kY1wyzzX6PhZKDyGjDJL7piQiyj+0uF96swke0kUOYaEPLvwYqwIyPUr8l3dcosJ3ZPfK5Rvs8s2Bp3qbcH37lST843t2+frTNVG8dyswXEJDD/lizkXs8sWAPPtP7aU/i; 24:Yg/swszcfFVnkAy+cLAlMJqRQ3xPXdtJ0P79fbNhxg9RUsEG0DnAxrlgt+gfyM0lUdZqnmTsSia16KPvIDXcNHx69apoUwIWdw0H71/GK0c= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR04MB541; 7:1IeOyhlfQHDJAZlrPEwNxWttc8fPhJNghTCo1uSn8TjkdC2/zQHP8/Fh0Nupzsyinhi4ptiAAC1n9C76T5e3r+rYycC00YiuQwfVcgvKE0nC6PcqDH7Ph7iMBoamNDw8wCJvnnLIYPfzGuhaUCrDvW0yNTaucLoKAJkqra5EC1mgPyEiGTeS6lR+xG9YLumJowbmFcYcmsHScrDhQAyBP/x59q9rPmDhE0+M4KwYUolqTedVvRpUYHcUznCElvEEAMYTNMDkPUHL8tbFUeDI5EFQEqSWhM4sX6CC4XXRxUcy1DF/P/3WbbAsGwJwrFoff0n6HAaOJvU5ta+7ks+9QmmMCxajVXpr5S9Q3FGv2RTfMmL6STWyhOocqIh/fnAo3omAMc4PoLnrx5FEUZArmeP3kShe4knnvWDnX1xfcMEhjZsj6qg3lsRc+lCW/prcBy/H/brO80LOedRFrlwUgx2X48UjgtB//hCYA3CMnJPb5OW6PfJailO4plY264cCCYL22JR7FOdycrE0P0PQG/i0+yXLF8rWVy0D5wUdDWhxVdWxz1LSO5rwQeVI0hGMw/7BlvFXyia/mK4AsKEMC3IZedMoBLV/x3PrbbTd0xzj9Kv+Nt+CSa2zPbzDXIsBOLbpDU3eeriynEiEJgERRjAjIj7ubz/5G6eWUYoJmTLtZg7xrFmaN3eam4Mxb1py56lWGiLDVEz5Lrz2ab0bpFO2iPtrmJFfCckS22uaTEdniBUbFsZLDzXxZybqJkzD46fcqcPCX3jrcATsA1TNDkOGuEE/nLE5lQV14x8R7Vc= X-Microsoft-Exchange-Diagnostics: 1; DM2PR04MB541; 20:mz74sAh9ROKQtA+KrGGAZhxskbufUQ8gi4VKlx6aEQU2/Rbc4VSCQzwc0yFmLS5JVgv35TBvwQZRQ0AHhEjPXflYmnJp7ATBZhII+d/JvUSwpoVNW6fGRkmhfgP8Rg+R+XmKSnEerxFHg0AHxTPDxkd+u7VXmj7LMAdMqN/jPIY= X-OriginatorOrg: wdc.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jun 2017 22:08:15.0151 (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.21]; Helo=[milsmgep15.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR04MB541 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 From: Bart Van Assche Instead of explicitly calling scsi_req_init() after blk_get_request(), call that function from inside blk_get_request(). Add an .initialize_rq_fn() callback function to the block drivers that need it. Merge the IDE .init_rq_fn() function into .initialize_rq_fn() because it is too small to keep it as a separate function. Keep the scsi_req_init() call in ide_prep_sense() because it follows a blk_rq_init() call. References: commit 82ed4db499b8 ("block: split scsi_request out of struct request") Signed-off-by: Bart Van Assche Reviewed-by: Christoph Hellwig Cc: Hannes Reinecke Cc: Omar Sandoval Cc: Nicholas Bellinger Reviewed-by: Hannes Reinecke --- block/bsg.c | 1 - block/scsi_ioctl.c | 3 --- drivers/block/pktcdvd.c | 1 - drivers/cdrom/cdrom.c | 1 - drivers/ide/ide-atapi.c | 1 - drivers/ide/ide-cd.c | 1 - drivers/ide/ide-cd_ioctl.c | 1 - drivers/ide/ide-devsets.c | 1 - drivers/ide/ide-disk.c | 1 - drivers/ide/ide-ioctls.c | 2 -- drivers/ide/ide-park.c | 2 -- drivers/ide/ide-pm.c | 2 -- drivers/ide/ide-probe.c | 6 +++--- drivers/ide/ide-tape.c | 1 - drivers/ide/ide-taskfile.c | 1 - drivers/scsi/osd/osd_initiator.c | 2 -- drivers/scsi/osst.c | 1 - drivers/scsi/scsi_error.c | 1 - drivers/scsi/scsi_lib.c | 10 +++++++++- drivers/scsi/scsi_transport_sas.c | 6 ++++++ drivers/scsi/sg.c | 2 -- drivers/scsi/st.c | 1 - drivers/target/target_core_pscsi.c | 2 -- fs/nfsd/blocklayout.c | 1 - 24 files changed, 18 insertions(+), 33 deletions(-) diff --git a/block/bsg.c b/block/bsg.c index 59d02dd31b0c..37663b664666 100644 --- a/block/bsg.c +++ b/block/bsg.c @@ -236,7 +236,6 @@ bsg_map_hdr(struct bsg_device *bd, struct sg_io_v4 *hdr, fmode_t has_write_perm) rq = blk_get_request(q, op, GFP_KERNEL); if (IS_ERR(rq)) return rq; - scsi_req_init(rq); ret = blk_fill_sgv4_hdr_rq(q, rq, hdr, bd, has_write_perm); if (ret) diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c index 4a294a5f7fab..f96c51f5df40 100644 --- a/block/scsi_ioctl.c +++ b/block/scsi_ioctl.c @@ -326,7 +326,6 @@ static int sg_io(struct request_queue *q, struct gendisk *bd_disk, if (IS_ERR(rq)) return PTR_ERR(rq); req = scsi_req(rq); - scsi_req_init(rq); if (hdr->cmd_len > BLK_MAX_CDB) { req->cmd = kzalloc(hdr->cmd_len, GFP_KERNEL); @@ -456,7 +455,6 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode, goto error_free_buffer; } req = scsi_req(rq); - scsi_req_init(rq); cmdlen = COMMAND_SIZE(opcode); @@ -542,7 +540,6 @@ static int __blk_send_generic(struct request_queue *q, struct gendisk *bd_disk, rq = blk_get_request(q, REQ_OP_SCSI_OUT, __GFP_RECLAIM); if (IS_ERR(rq)) return PTR_ERR(rq); - scsi_req_init(rq); rq->timeout = BLK_DEFAULT_SG_TIMEOUT; scsi_req(rq)->cmd[0] = cmd; scsi_req(rq)->cmd[4] = data; diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 26c04baae967..8ef703ccc4b6 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c @@ -708,7 +708,6 @@ static int pkt_generic_packet(struct pktcdvd_device *pd, struct packet_command * REQ_OP_SCSI_OUT : REQ_OP_SCSI_IN, __GFP_RECLAIM); if (IS_ERR(rq)) return PTR_ERR(rq); - scsi_req_init(rq); if (cgc->buflen) { ret = blk_rq_map_kern(q, rq, cgc->buffer, cgc->buflen, diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c index ff19cfc587f0..e36d160c458f 100644 --- a/drivers/cdrom/cdrom.c +++ b/drivers/cdrom/cdrom.c @@ -2201,7 +2201,6 @@ static int cdrom_read_cdda_bpc(struct cdrom_device_info *cdi, __u8 __user *ubuf, break; } req = scsi_req(rq); - scsi_req_init(rq); ret = blk_rq_map_user(q, rq, NULL, ubuf, len, GFP_KERNEL); if (ret) { diff --git a/drivers/ide/ide-atapi.c b/drivers/ide/ide-atapi.c index d7a49dcfa85e..37f61acf5a35 100644 --- a/drivers/ide/ide-atapi.c +++ b/drivers/ide/ide-atapi.c @@ -93,7 +93,6 @@ int ide_queue_pc_tail(ide_drive_t *drive, struct gendisk *disk, int error; rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, __GFP_RECLAIM); - scsi_req_init(rq); ide_req(rq)->type = ATA_PRIV_MISC; rq->special = (char *)pc; diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c index d55e44ed82b5..81e18f9628d0 100644 --- a/drivers/ide/ide-cd.c +++ b/drivers/ide/ide-cd.c @@ -438,7 +438,6 @@ int ide_cd_queue_pc(ide_drive_t *drive, const unsigned char *cmd, rq = blk_get_request(drive->queue, write ? REQ_OP_DRV_OUT : REQ_OP_DRV_IN, __GFP_RECLAIM); - scsi_req_init(rq); memcpy(scsi_req(rq)->cmd, cmd, BLK_MAX_CDB); ide_req(rq)->type = ATA_PRIV_PC; rq->rq_flags |= rq_flags; diff --git a/drivers/ide/ide-cd_ioctl.c b/drivers/ide/ide-cd_ioctl.c index 55cd736c39c6..9d26c9737e21 100644 --- a/drivers/ide/ide-cd_ioctl.c +++ b/drivers/ide/ide-cd_ioctl.c @@ -304,7 +304,6 @@ int ide_cdrom_reset(struct cdrom_device_info *cdi) int ret; rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, __GFP_RECLAIM); - scsi_req_init(rq); ide_req(rq)->type = ATA_PRIV_MISC; rq->rq_flags = RQF_QUIET; blk_execute_rq(drive->queue, cd->disk, rq, 0); diff --git a/drivers/ide/ide-devsets.c b/drivers/ide/ide-devsets.c index 9b69c32ee560..ef7c8c43a380 100644 --- a/drivers/ide/ide-devsets.c +++ b/drivers/ide/ide-devsets.c @@ -166,7 +166,6 @@ int ide_devset_execute(ide_drive_t *drive, const struct ide_devset *setting, return setting->set(drive, arg); rq = blk_get_request(q, REQ_OP_DRV_IN, __GFP_RECLAIM); - scsi_req_init(rq); ide_req(rq)->type = ATA_PRIV_MISC; scsi_req(rq)->cmd_len = 5; scsi_req(rq)->cmd[0] = REQ_DEVSET_EXEC; diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c index 7c06237f3479..241983da5fc4 100644 --- a/drivers/ide/ide-disk.c +++ b/drivers/ide/ide-disk.c @@ -478,7 +478,6 @@ static int set_multcount(ide_drive_t *drive, int arg) return -EBUSY; rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, __GFP_RECLAIM); - scsi_req_init(rq); ide_req(rq)->type = ATA_PRIV_TASKFILE; drive->mult_req = arg; diff --git a/drivers/ide/ide-ioctls.c b/drivers/ide/ide-ioctls.c index 8c0d17297a7a..3661abb16a5f 100644 --- a/drivers/ide/ide-ioctls.c +++ b/drivers/ide/ide-ioctls.c @@ -126,7 +126,6 @@ static int ide_cmd_ioctl(ide_drive_t *drive, unsigned long arg) struct request *rq; rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, __GFP_RECLAIM); - scsi_req_init(rq); ide_req(rq)->type = ATA_PRIV_TASKFILE; blk_execute_rq(drive->queue, NULL, rq, 0); err = scsi_req(rq)->result ? -EIO : 0; @@ -224,7 +223,6 @@ static int generic_drive_reset(ide_drive_t *drive) int ret = 0; rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, __GFP_RECLAIM); - scsi_req_init(rq); ide_req(rq)->type = ATA_PRIV_MISC; scsi_req(rq)->cmd_len = 1; scsi_req(rq)->cmd[0] = REQ_DRIVE_RESET; diff --git a/drivers/ide/ide-park.c b/drivers/ide/ide-park.c index 94e3107f59b9..1f264d5d3f3f 100644 --- a/drivers/ide/ide-park.c +++ b/drivers/ide/ide-park.c @@ -32,7 +32,6 @@ static void issue_park_cmd(ide_drive_t *drive, unsigned long timeout) spin_unlock_irq(&hwif->lock); rq = blk_get_request(q, REQ_OP_DRV_IN, __GFP_RECLAIM); - scsi_req_init(rq); scsi_req(rq)->cmd[0] = REQ_PARK_HEADS; scsi_req(rq)->cmd_len = 1; ide_req(rq)->type = ATA_PRIV_MISC; @@ -48,7 +47,6 @@ static void issue_park_cmd(ide_drive_t *drive, unsigned long timeout) * timeout has expired, so power management will be reenabled. */ rq = blk_get_request(q, REQ_OP_DRV_IN, GFP_NOWAIT); - scsi_req_init(rq); if (IS_ERR(rq)) goto out; diff --git a/drivers/ide/ide-pm.c b/drivers/ide/ide-pm.c index 08b54bb3b705..544f02d673ca 100644 --- a/drivers/ide/ide-pm.c +++ b/drivers/ide/ide-pm.c @@ -19,7 +19,6 @@ int generic_ide_suspend(struct device *dev, pm_message_t mesg) memset(&rqpm, 0, sizeof(rqpm)); rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, __GFP_RECLAIM); - scsi_req_init(rq); ide_req(rq)->type = ATA_PRIV_PM_SUSPEND; rq->special = &rqpm; rqpm.pm_step = IDE_PM_START_SUSPEND; @@ -91,7 +90,6 @@ int generic_ide_resume(struct device *dev) memset(&rqpm, 0, sizeof(rqpm)); rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, __GFP_RECLAIM); - scsi_req_init(rq); ide_req(rq)->type = ATA_PRIV_PM_RESUME; rq->rq_flags |= RQF_PREEMPT; rq->special = &rqpm; diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c index b3f85250dea9..c60e5ffc9231 100644 --- a/drivers/ide/ide-probe.c +++ b/drivers/ide/ide-probe.c @@ -741,12 +741,12 @@ static void ide_port_tune_devices(ide_hwif_t *hwif) } } -static int ide_init_rq(struct request_queue *q, struct request *rq, gfp_t gfp) +static void ide_initialize_rq(struct request *rq) { struct ide_request *req = blk_mq_rq_to_pdu(rq); + scsi_req_init(rq); req->sreq.sense = req->sense; - return 0; } /* @@ -771,7 +771,7 @@ static int ide_init_queue(ide_drive_t *drive) return 1; q->request_fn = do_ide_request; - q->init_rq_fn = ide_init_rq; + q->initialize_rq_fn = ide_initialize_rq; q->cmd_size = sizeof(struct ide_request); queue_flag_set_unlocked(QUEUE_FLAG_SCSI_PASSTHROUGH, q); if (blk_init_allocated_queue(q) < 0) { diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 4d062c568777..fd57e8ccc47a 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c @@ -855,7 +855,6 @@ static int idetape_queue_rw_tail(ide_drive_t *drive, int cmd, int size) BUG_ON(size < 0 || size % tape->blk_size); rq = blk_get_request(drive->queue, REQ_OP_DRV_IN, __GFP_RECLAIM); - scsi_req_init(rq); ide_req(rq)->type = ATA_PRIV_MISC; scsi_req(rq)->cmd[13] = cmd; rq->rq_disk = tape->disk; diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c index ab1a32cdcb0a..4efe4c6e956c 100644 --- a/drivers/ide/ide-taskfile.c +++ b/drivers/ide/ide-taskfile.c @@ -433,7 +433,6 @@ int ide_raw_taskfile(ide_drive_t *drive, struct ide_cmd *cmd, u8 *buf, rq = blk_get_request(drive->queue, (cmd->tf_flags & IDE_TFLAG_WRITE) ? REQ_OP_DRV_OUT : REQ_OP_DRV_IN, __GFP_RECLAIM); - scsi_req_init(rq); ide_req(rq)->type = ATA_PRIV_TASKFILE; /* diff --git a/drivers/scsi/osd/osd_initiator.c b/drivers/scsi/osd/osd_initiator.c index 1e69a43b279d..ca45bf6d2bdb 100644 --- a/drivers/scsi/osd/osd_initiator.c +++ b/drivers/scsi/osd/osd_initiator.c @@ -1574,7 +1574,6 @@ static struct request *_make_request(struct request_queue *q, bool has_write, flags); if (IS_ERR(req)) return req; - scsi_req_init(req); for_each_bio(bio) { struct bio *bounce_bio = bio; @@ -1619,7 +1618,6 @@ static int _init_blk_request(struct osd_request *or, ret = PTR_ERR(req); goto out; } - scsi_req_init(req); or->in.req = or->request->next_rq = req; } } else if (has_in) diff --git a/drivers/scsi/osst.c b/drivers/scsi/osst.c index d54689c9216e..929ee7e88120 100644 --- a/drivers/scsi/osst.c +++ b/drivers/scsi/osst.c @@ -373,7 +373,6 @@ static int osst_execute(struct osst_request *SRpnt, const unsigned char *cmd, return DRIVER_ERROR << 24; rq = scsi_req(req); - scsi_req_init(req); req->rq_flags |= RQF_QUIET; SRpnt->bio = NULL; diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index 44904f41924c..304a7158540f 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c @@ -1903,7 +1903,6 @@ static void scsi_eh_lock_door(struct scsi_device *sdev) if (IS_ERR(req)) return; rq = scsi_req(req); - scsi_req_init(req); rq->cmd[0] = ALLOW_MEDIUM_REMOVAL; rq->cmd[1] = 0; diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index fb18ed284e55..5e7895d76998 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -250,7 +250,6 @@ int scsi_execute(struct scsi_device *sdev, const unsigned char *cmd, if (IS_ERR(req)) return ret; rq = scsi_req(req); - scsi_req_init(req); if (bufflen && blk_rq_map_kern(sdev->request_queue, req, buffer, bufflen, __GFP_RECLAIM)) @@ -1117,6 +1116,13 @@ int scsi_init_io(struct scsi_cmnd *cmd) } EXPORT_SYMBOL(scsi_init_io); +/* Called from inside blk_get_request() */ +static void scsi_initialize_rq(struct request *rq) +{ + scsi_req_init(rq); +} + +/* Called after a request has been started. */ void scsi_init_command(struct scsi_device *dev, struct scsi_cmnd *cmd) { void *buf = cmd->sense_buffer; @@ -2124,6 +2130,7 @@ struct request_queue *scsi_alloc_queue(struct scsi_device *sdev) q->request_fn = scsi_request_fn; q->init_rq_fn = scsi_init_rq; q->exit_rq_fn = scsi_exit_rq; + q->initialize_rq_fn = scsi_initialize_rq; if (blk_init_allocated_queue(q) < 0) { blk_cleanup_queue(q); @@ -2148,6 +2155,7 @@ static const struct blk_mq_ops scsi_mq_ops = { #endif .init_request = scsi_init_request, .exit_request = scsi_exit_request, + .initialize_rq_fn = scsi_initialize_rq, .map_queues = scsi_map_queues, }; diff --git a/drivers/scsi/scsi_transport_sas.c b/drivers/scsi/scsi_transport_sas.c index cc970c811bcb..ae55be2b2385 100644 --- a/drivers/scsi/scsi_transport_sas.c +++ b/drivers/scsi/scsi_transport_sas.c @@ -213,6 +213,11 @@ static void sas_host_release(struct device *dev) blk_cleanup_queue(q); } +static void sas_initialize_rq(struct request *rq) +{ + scsi_req_init(rq); +} + static int sas_bsg_initialize(struct Scsi_Host *shost, struct sas_rphy *rphy) { struct request_queue *q; @@ -230,6 +235,7 @@ static int sas_bsg_initialize(struct Scsi_Host *shost, struct sas_rphy *rphy) q = blk_alloc_queue(GFP_KERNEL); if (!q) return -ENOMEM; + q->initialize_rq_fn = sas_initialize_rq; q->cmd_size = sizeof(struct scsi_request); if (rphy) { diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index f3387c6089c5..21225d62b0c1 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c @@ -1732,8 +1732,6 @@ sg_start_req(Sg_request *srp, unsigned char *cmd) } req = scsi_req(rq); - scsi_req_init(rq); - if (hp->cmd_len > BLK_MAX_CDB) req->cmd = long_cmdp; memcpy(req->cmd, cmd, hp->cmd_len); diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index 6b1c4ac54e66..8e5013d9cad4 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c @@ -549,7 +549,6 @@ static int st_scsi_execute(struct st_request *SRpnt, const unsigned char *cmd, if (IS_ERR(req)) return DRIVER_ERROR << 24; rq = scsi_req(req); - scsi_req_init(req); req->rq_flags |= RQF_QUIET; mdata->null_mapped = 1; diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c index 323ab47645d0..ceec0211e84e 100644 --- a/drivers/target/target_core_pscsi.c +++ b/drivers/target/target_core_pscsi.c @@ -992,8 +992,6 @@ pscsi_execute_cmd(struct se_cmd *cmd) goto fail; } - scsi_req_init(req); - if (sgl) { ret = pscsi_map_sg(cmd, sgl, sgl_nents, req); if (ret) diff --git a/fs/nfsd/blocklayout.c b/fs/nfsd/blocklayout.c index 47ed19c53f2e..c862c2489df0 100644 --- a/fs/nfsd/blocklayout.c +++ b/fs/nfsd/blocklayout.c @@ -232,7 +232,6 @@ static int nfsd4_scsi_identify_device(struct block_device *bdev, goto out_free_buf; } req = scsi_req(rq); - scsi_req_init(rq); error = blk_rq_map_kern(q, rq, buf, bufflen, GFP_KERNEL); if (error)