From patchwork Fri Mar 10 19:42:58 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: 9617875 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 8D69160415 for ; Fri, 10 Mar 2017 19:43:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6A95E2878E for ; Fri, 10 Mar 2017 19:43:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5D6C028793; Fri, 10 Mar 2017 19:43:33 +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 3878F2878E for ; Fri, 10 Mar 2017 19:43:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933515AbdCJTnc (ORCPT ); Fri, 10 Mar 2017 14:43:32 -0500 Received: from esa5.hgst.iphmx.com ([216.71.153.144]:3688 "EHLO esa5.hgst.iphmx.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755523AbdCJTn3 (ORCPT ); Fri, 10 Mar 2017 14:43:29 -0500 X-IronPort-AV: E=Sophos;i="5.36,142,1486396800"; d="scan'208";a="2275964" Received: from mail-bn3nam01lp0182.outbound.protection.outlook.com (HELO NAM01-BN3-obe.outbound.protection.outlook.com) ([216.32.180.182]) by ob1.hgst.iphmx.com with ESMTP; 11 Mar 2017 03:43:06 +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=CRLKuF6hI+vyIkyowe8LZbfYfky/qxoDTPBNC8CCNpM=; b=m7VwrHnPnqVOjwHmb5/miKgjNgHgTRY5nFvnFG/MC53+G+OBgjfa+caTQEDJIx/BIdfiIm5fyPpZL0CYzi9kT51fHIZR49rQ/KGrQKKGHtLXue/s+ggHBH+awdgEaRrPbmANjTSSONCXJmPKpCm3Ec4zgzFd6A7Ni4Z1bk+z2sk= Received: from BN3PR0401CA0035.namprd04.prod.outlook.com (10.162.159.173) by DM2PR04MB525.namprd04.prod.outlook.com (10.141.99.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.919.13; Fri, 10 Mar 2017 19:43:04 +0000 Received: from SN1NAM04FT008.eop-NAM04.prod.protection.outlook.com (2a01:111:f400:7e4c::203) by BN3PR0401CA0035.outlook.office365.com (2a01:111:e400:51d1::45) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.961.17 via Frontend Transport; Fri, 10 Mar 2017 19:43:04 +0000 Authentication-Results: spf=pass (sender IP is 74.221.232.54) smtp.mailfrom=sandisk.com; linux-iscsi.org; dkim=none (message not signed) header.d=none;linux-iscsi.org; dmarc=bestguesspass action=none header.from=sandisk.com; Received-SPF: Pass (protection.outlook.com: domain of sandisk.com designates 74.221.232.54 as permitted sender) receiver=protection.outlook.com; client-ip=74.221.232.54; helo=sacsmgep14.sandisk.com; Received: from sacsmgep14.sandisk.com (74.221.232.54) by SN1NAM04FT008.mail.protection.outlook.com (10.152.88.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.961.10 via Frontend Transport; Fri, 10 Mar 2017 19:43:03 +0000 X-AuditID: ac1c2133-9afff7000000c960-57-58c301c4e9c2 Received: from SACHUBIP02.sdcorp.global.sandisk.com (Unknown_Domain [172.28.1.254]) (using TLS with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by (Symantec Messaging Gateway) with SMTP id 9F.2E.51552.4C103C85; Fri, 10 Mar 2017 11:43:03 -0800 (PST) Received: from ULS-OP-MBXIP03.sdcorp.global.sandisk.com ([fe80::f9ec:1e1b:1439:62d8]) by SACHUBIP02.sdcorp.global.sandisk.com ([10.181.10.104]) with mapi id 14.03.0319.002; Fri, 10 Mar 2017 11:42:59 -0800 From: Bart Van Assche To: "Nicholas A. Bellinger" CC: target-devel Subject: [PATCH] target: Fix VERIFY and WRITE VERIFY command parsing Thread-Topic: [PATCH] target: Fix VERIFY and WRITE VERIFY command parsing Thread-Index: AdKZ1oU+/+e8LfU0ROqYUj3ATi5VpQ== Date: Fri, 10 Mar 2017 19:42:58 +0000 Message-ID: <1D08B61A9CF0974AA09887BE32D889DA0E2C0B@ULS-OP-MBXIP03.sdcorp.global.sandisk.com> Accept-Language: nl-NL, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.181.8.64] MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrALMWRmVeSWpSXmKPExsWyRobxn+5xxsMRBkeuy1q0rT7DaNG69C2T A5PH/e1HmDw+b5ILYIrisklJzcksSy3St0vgyvjy7iRzwVGZiqPHPzM1MB4T72Lk5JAQMJE4 NeELaxcjF4eQwBImiYnnrrKCJIQELjFK3N6YBWKzCRhJzJ6wh6WLkYNDRMBQ4sPRSpAws4C+ xIrVP9hAbGEBF4lv/9rBWkUEPCVmHnrBDFGuJ9E1kQckzCKgKvFsxQZGEJtXIFbi7b6LjCAl jAKyEi2vuSEmikvcejKfCeIyAYkle84zQ9iiEi8f/2MFKZcQkJe4ftoOolxHYsHuT2wQtrbE soWvmSGmC0qcnPmEZQKj8CwkU2chaZmFpGUWkpYFjCyrGMWKE5OLc9NTCwxN9IoT81Iyi7P1 kvNzNzGCw13ReAfjvw3uhxgFOBiVeHh3bD4UIcSaWFZcmXuIUYKDWUmE1/QvUIg3JbGyKrUo P76oNCe1+BCjNAeLkjhvzOypEUIC6YklqdmpqQWpRTBZJg5OqQbGnV92yQStSF/iPud8jW3r scvLggKXHjnUtHznfM5jfaptP67elpW5n7Dy0lHWr68z70vfYrBlc8ydaXqk/1xU5suFV/bN DDj49dCprOWxP9I+BTyVqNh7NyjeXS5u27JkCbtdqYGrNWVb/2aHRs29WdNY61asPXcui2bo 9gNSk11rv/fvvaNkpcRSnJFoqMVcVJwIABywT7hzAgAA X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:74.221.232.54; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(39410400002)(39850400002)(39450400003)(39840400002)(39860400002)(2980300002)(438002)(199003)(189002)(9170700003)(106466001)(46406003)(189998001)(102836003)(3846002)(6116002)(2900100001)(2920100001)(53936002)(50986999)(2906002)(47776003)(7736002)(305945005)(23726003)(54356999)(5660300001)(15650500001)(6916009)(86362001)(7696004)(356003)(50466002)(55846006)(4326008)(55016002)(97756001)(110136004)(38730400002)(8676002)(33656002)(81166006)(8936002)(8746002)(7099028)(217873001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM2PR04MB525; H:sacsmgep14.sandisk.com; FPR:; SPF:Pass; MLV:sfv; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; SN1NAM04FT008; 1:97mNEqVjSj0hzDuUlzgITFU2SFXKdRyQGQ7lja1UjYmFJDCOIQvdjQBipyu4KhDTnm0OKTX5eBQDXfeU42rjDQAJszEbRwC6MgnLyesz+fLGWZ1HwHdF2DYuGYP5S8l35aHuFTTnPJ3+wPp4NkPOhBlPA5f6VBekNNTYDC1BCtCFz7kUQhNtyNulLx0c4XauBMCzls++1mPXmlL/mIuoACbOn5+FelnLOIkxsIbyuTsw1vKS7a92AoZba1eU4VTZzqTAr24JPLP/A0pXqoDCZxzSPvKgiXu4OnL71jXr359VGLW3QBR/qNIGRwCqSW7KQdMW2hyiC6LSLCcegEI8qauWEC4lBljGVZGU6RK0uGHtTmX5Uo2TQoFwGy7431yJ0JjOYpOtLGv9obnVEmn3dlWGaJg+5g9Cq7npPkagT2CFigEb69TsOL2Kg9OnpKr2MNkzE2niExJFZcu7tIrXTphUunD5Hoj9+VsKf1Fj5GgjgTbfQioCMicSqugOKNvUbhFWeaWDkojhvnEFQ2FFaQ== X-MS-Office365-Filtering-Correlation-Id: fd274058-9c13-4eef-9c57-08d467edaae9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(8251501002); SRVR:DM2PR04MB525; X-Microsoft-Exchange-Diagnostics: 1; DM2PR04MB525; 3:0Yk2lXuJXU05eHBP0rZs2QeKvMfGQpSvh3OzRaSoO2HpG3o0kEM5br/ydKaZ+Tr6dFTJY+6PXk/16JSLHjEMg1P8ABzVYECxSO4kMdyaVNt5CGHK6PEnCTrzPHGVgkQrdQnfKDIcMyjO+bfbPBnU7unvtWnNsSNzQHFc2wPLisYpM+jsFpAoRPOkZnOqX2eufxuTtg4DbCGGYcGFjF5r+hDmMlvH4rI0uoETcX3Bg5rBt649qzQpTtRfU/KLlH/Fk8xg5XuRGUXscxSiJUzuRwknBHaJehruv9aTMGbd79R69YdvR+lYIck0Yt9W50YtVG2wYY5AwHkmBcJyJGPDzSNvn7qdz9qioYu2UdyN728eeO76+PyfOs2gtuOs5rCM7EjO0rSobdxYVUfGyp7Rfw==; 25:sI3IjpZMS69e3oCDVKrRy1lqtswjHnboDX2pB7uVl8ICB6qcgfJk3BI6a5fhsPpxmamCewTOeZW2sgIuRZmBiJugRBiLIGqHU1wAyuQBNbCKc47Ek6OnK62093Yo++kl03sPGxuCY+QYgge6LPpIFCs6qurR6WPNiHc1pNdqRlLTv0CLWbEK8Bwhq/7GxJGG8kNOTdfUmSVYk6wYeGki9uL23Jm7YIyJaNccU7NO/gTR2Uo9zXP6XlOVbOT9N5sfYdxxry93geEvzj0Sp2EpVkpu70gyCBVs6CqUN4JgY5x6f3QCCDfvDdlY02A/SWkhU4NOPuCg7SDSbkoLLljqh6TcdrYlFLvR0dCmlw98VVFSyZP9YsKut4uf/os5nfz4/GSiESpY2NGCedxUC+B/OyLg8I96jz0jCvp/Yn9NMVjCLRazpvlDlzPThdRXZiQ2R3/JURJbQ07Zxogm2sj0Fg== X-Microsoft-Exchange-Diagnostics: 1; DM2PR04MB525; 31:qmHVRAKuMi07YShtTlDQY067uBxX3j2iCEfDOyPVw5Yk95F8WVtz4Zd1kYQ8n1h3O4bMLdFXt73dhQJrenbUjkQYs0lQwm9fRlPqlt9ya1EbincIIhgRGq9phlKmARKdfDYonEOA/m4/w0XodVLXogNKAzQ28yYwFcFWBjwBWpJI/Bd12h0rfsmLSPY6R0DrPUNnYCrMGxS3pvz+h4UTAfEv/dmyzAk9FvJvUxJa7Xft2TpeWFQ41VYZesf26JEiCxpRcRjDfDfEMlZxjQRe6Q==; 20:fcEgoh9pugMr/M0WdA2GUISRdqCFhJulq78YG933brRX1RTiDU3jU+lrf8qUzcMMcZYTyzCKTss5/Mc2IAxXoWlUc8vsXZwWFhOD/vXB13abk+3+EUKhkY22BenJ1H4lhotOyXbdcGrr9Zl+Dt1qz5cCKmYuiCjNhGj4VPnILHBgxpJOJDxlTVUvA2TqrLrBCT836WSI1QEHBMUNiKTDjBRVxNO6DLm8KRrq5Mgv53c5QqSta1f/opDnG33zu5GiC076Qu0OMLbdjWYC/sUb4tSsHUSpArp9l35M3X0nEfqw/kecgicL+RZ1JxxWSNo877O3iJQ3qkQ3/pB1UxbBs0vYyrY8siWZZi1JS8k2wTws50hP10G0flScRVa3qJsOSiUnxuX5817xwDlsOYa43ng8PQ12iixUEqaoNOIeCq7tAEVADZt/53no4JHH4hKYanvtZ/DC32jKYnlLMM93HNCiX/AqreP/lWxwpo1xZwqJ5EDAXeWF9ELUOUa4rb3V WDCIPOUTBOUND: EOP-TRUE X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(42932892334569); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(13024025)(13023025)(13018025)(13016025)(3002001)(10201501046)(6055026)(6041248)(20161123560025)(20161123562025)(20161123555025)(20161123558025)(20161123564025)(6072148); SRVR:DM2PR04MB525; BCL:0; PCL:0; RULEID:; SRVR:DM2PR04MB525; X-Microsoft-Exchange-Diagnostics: 1; DM2PR04MB525; 4:vQI+0MfZVQk9kSbjwnzKhDXZUekFAt88icNZRK/1RYyxNDwwoK11sCriUT5uFqVxO2lHoAHicNhceLsga/NGC1hTx3ASXAzeYR/dIOIRRdAT5kLf88uWVdm/a2y/FhdHTWz5rq4rY0IhoOx8nkb1safQm7g0h0lxarjaY8I7hGMqMYmoRKEjLIMvj+zuUxvDNCQ67d0OmuqQLiwDteDOS1ut9WTfkLXGE7+UIHuiTA+ggEqTZTy3JC3YZvTYh/ue7BfOjEWEAWW1yIMpPoqqXwtwAs/mzE4LJaGNgmb9jcI/ePoQeSX2K3CIygBicqUnN5mSdhQ5kd9SnySXEkk/bphmE1mIsFYKDqYjHw86evoPxXfrkZDvjrZO3RaKbKcMbVs0CWYtan/jPOTIikItZBqe9gxWA+Mmt6WAimojN2JORBY3NF2TaPai6aTCYpiwMA1PTQAXuEkHFmIJP4gBQQf6TtuarfMUifOTOTgBzgRPzUU75/37npbdaVWQMFOZwaT+53kP9mmYQSMXK5HUqYwUZBsucFhF+E87qMgS5il8j3/GW1lq7KBBkBEy384MxDBrPeEhKaYAl6MUS0JuD5+V1BsuRFYdd+AF1BSm1OfXYtmPMwj60P++4gP2OBbBY3R8fOJ06rwWVcHLLMAnG3jkfyts4jdlS2XySbE26MSQ8cO6/oodlkmXmqyAqVwzRjGL4t43wTfLe79RJj7LnRkJzjyjuD1p21m3f7bNrmzE4F4HE6fhzcM2UHlTaHos X-Forefront-PRVS: 02426D11FE X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR04MB525; 23:PdMSnJhl4bldfflcrU8mRWD7ttDaI1XdhSX9IlebhI?= =?us-ascii?Q?+FtyOyjICL08xU6EuMNog2fKKCqnEVyPoryXJxkXtodFa7rz1zQqcqj7wMEw?= =?us-ascii?Q?3iiMSLBzzT6xB7BW1x4zYPRxSUU+I6l0PSAbp97VZFjJYZ/GjcNjZm7pRt0j?= =?us-ascii?Q?sZpkt7qZV5AEUc39chm1XlY9avoXsFSia2HzlWY4306DkSObwW0d2zIWKuG+?= =?us-ascii?Q?PaAIxztUtcy2vivbQajTRGA14ygmHlzHbeZV9gRXV7XgFU/auYYKOxNFkQAX?= =?us-ascii?Q?qNro8lKEOtFqIZtaOkgObq1rQl7mZXMu/4n3+a53+WAo5KZXfh2u4yoCJzQF?= =?us-ascii?Q?MInINs+po91QviKTyC8NKXJI95dw0BQZ8TeUdo6+b7+pxMsIl/LIMLDfWmwg?= =?us-ascii?Q?5mLAYrdWNtjvKuXu7qzsAcF3TgbMKwZEFBOyA4DpU0HsxKELYy2PNhUU2qmw?= =?us-ascii?Q?11MhZ4AtY1i8YIOSHiCTrQxjlvsspwWrNyoARA4MCuhxSvLESvfzmOmuOOGK?= =?us-ascii?Q?dWmCVa+4OJVlT8fhrC90yM7BzGov+vogHcaR1eBJoBhBD5V/mCqwD49Pi+2x?= =?us-ascii?Q?jaK4AB1m+cXYa8N5uziroJHzSOWALMB+/3ZVqZTYGsF+EFf7uCrRbIiNHLZT?= =?us-ascii?Q?b2P2VOaK+T7sj2suwIjDwztmAU5cmcXqQHfCyc11/ZwxobtDawPC/zKGAHZY?= =?us-ascii?Q?2i3J0mOLsIWqZJkiMlbHsWcITtc9gxCcZrmFBbGHoOvbYA0umgn6VaUdUtNZ?= =?us-ascii?Q?LEnGFjA+C0+Pt2rwbQubZGjwFgQFuEljuDGbKG4UuvzHVSYMESUryteUPx7o?= =?us-ascii?Q?e6Zht3JK1UzBVgI2IFKefBBr8N2gBIr+RAis4+QB6LGNuybuZLig7cGSJlDg?= =?us-ascii?Q?RU3eFqMKmdko3fFQstgRmkoL+JXeoXdlBMuQg2Pz0SpD+qc6Clbf20ZjfVs2?= =?us-ascii?Q?/q20E371XByEX6GYjgnx/CL0nGet76y2wnp/G5GKGLiUwPUv4F2QiuV9mLxi?= =?us-ascii?Q?PuCfBPsjqhspo3zovw0T2rKjfx417ttDluXr+yYna4+huP37cOOFmfsQXB0L?= =?us-ascii?Q?RmsD6AK7EiM2sRHbvAwjTsMuk/7e4NDoWfEFK6FJS5dHeeca1XZGmo2KGu1f?= =?us-ascii?Q?wPlUsj9kIj8s670WrvNHuCjwubuIr14EAhebkSvkIjKadMvHGCeA=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR04MB525; 6:9Q2i+9c179DaMCwvnuTMtCPpEzjiykXZGinR4jB75ApC4tTRIgv+Eto+uFqvXMqmX0xxl6EhopKcwFuYFGJmCOnOMArtR045FkayWvSrd/6g61BiXep3RORZYgxB1j6NNuCoJLgaFQkL+b2XzvRTq5vYa53FJ9C+ENHA7nV9f0LoRvMo4uNmA+q+B9yv9siqGnL+/mcEw4ccms3Cn5b5f/aNtyVAprtfikMKrJsk6jCH4Xbq6DRGzCScBPOtdKtU5B3C7lhXG/l7Hv0xf4670LvmU6zWciTXkGlr4gal9DJc6ab3HP1tSw5CftpLU0kfVRp/AvRTjny0FFuU0UsMSInGs465P81k5QauZT2K3Z/rwQLgS6y/3X2XZG85spcJjnnRbqA3XmjdMB3Z8EJB23BUQaSdoZQRgWEsUsCmDX0=; 5:HkbbeShKQIR2B+rrz63r3ZuFufxmWRjRIHbkhClBda+dBDxNfts+bqLrZaDJ1Wr4iNqNwR81lIuoFNMaLpt3zKq8ZW6XJ7bZc9ldj15aeYwbCg6TiLzgHi23/fIFQkQc4u+VfW7S589qh1UDuOJxtA==; 24:lus8qOqp/6OExCJVKsez0HObUE1Qmfffe2yOJdx44MpL3IeeMySLoes5DFnnphXkQ4A2Kxd2Oct2APV+0nvouJ6LCuZdINXFEykAmMl8f+U= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR04MB525; 7:yDuQdaSah6LsZIXft33UeoW05qOppeFycYQbYxxCVCFpcIQA31lq4BOxIBSs+BL9r3TxywDz3keWyNb3gJFJOihZmIZ4kuFfwF3GxcS7W+iax2PuIg6fVQlQSipz9LjhhO4b96UNwCEu2sjWmc+R2OShWq6SPlWUBaDH8JjKTMonFh6dKs2GuufRxFq2ViSH+Thzo3MGFHn/ImNXI22KqevoB0wUWhfEeJ45juVvrVUM210poF1osa3zOvHLWi62VNYVdpU7SzjkW+4O/cnRcXZC49pc6aD9ZZkK/J+4BfaXQ/7t1OqenGq5OfWr+dA0ewvUL77jRR8g5iAGjL6cIw==; 20:JRoi4m5p7jEVTScZahhtS/pnjMsWIgSTQlTt4CzTC3ImwYZ7Ya5zk3stE9jAuw1toG8BBr84+W2fTLwoYFj60IwuNz8AsbCu3vMV2oqu9nlLCIJXSysc9mf4p7sGMmBbGyu8g/ZXUEe1g0F4sfx6+z9rGvtfStI5qD3uP3h4KDE= X-OriginatorOrg: sandisk.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2017 19:43:03.6085 (UTC) X-MS-Exchange-CrossTenant-Id: b61c8803-16f3-4c35-9b17-6f65f441df86 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=b61c8803-16f3-4c35-9b17-6f65f441df86; Ip=[74.221.232.54]; Helo=[sacsmgep14.sandisk.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR04MB525 Sender: target-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: target-devel@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Use the value of the BYTCHK field to determine the size of the Data-Out buffer. For VERIFY, honor the VRPROTECT, DPO and FUA fields. This patch avoids that LIO complains about a mismatch between the expected transfer length and the SCSI CDB length if the value of the BYTCHK field is 0. Signed-off-by: Bart Van Assche --- drivers/target/target_core_sbc.c | 54 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 4 deletions(-) diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c index 68d8aef7ab78..0f6f98491f5c 100644 --- a/drivers/target/target_core_sbc.c +++ b/drivers/target/target_core_sbc.c @@ -828,6 +828,47 @@ sbc_check_dpofua(struct se_device *dev, struct se_cmd *cmd, unsigned char *cdb) return 0; } +/** + * sbc_parse_verify - parse VERIFY and WRITE VERIFY commands + * @cmd: (in) structure that describes the SCSI command to be parsed. + * @sectors: (out) Number of logical blocks on the storage medium that will be + * affected by the SCSI command. + * @bufflen: (out) Expected length of the SCSI Data-Out buffer. + */ +static sense_reason_t sbc_parse_verify(struct se_cmd *cmd, int *sectors, + u32 *bufflen) +{ + struct se_device *dev = cmd->se_dev; + u8 *cdb = cmd->t_task_cdb; + u8 bytchk = (cdb[1] >> 1) & 3; + sense_reason_t ret; + + *sectors = transport_get_sectors_10(cdb); + cmd->t_task_lba = transport_lba_32(cdb); + + if (sbc_check_dpofua(dev, cmd, cdb)) + return TCM_INVALID_CDB_FIELD; + + ret = sbc_check_prot(dev, cmd, cdb, *sectors, true); + if (ret) + return ret; + + switch (bytchk) { + case 0: + *bufflen = 0; + break; + case 1: + *bufflen = sbc_get_size(cmd, *sectors); + cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; + break; + default: + pr_err("Unsupported BYTCHK value %d for SCSI opcode %#x\n", + bytchk, cdb[0]); + return TCM_INVALID_CDB_FIELD; + } + return TCM_NO_SENSE; +} + sense_reason_t sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops) { @@ -895,7 +936,6 @@ sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops) cmd->execute_cmd = sbc_execute_rw; break; case WRITE_10: - case WRITE_VERIFY: sectors = transport_get_sectors_10(cdb); cmd->t_task_lba = transport_lba_32(cdb); @@ -909,6 +949,12 @@ sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops) cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; cmd->execute_cmd = sbc_execute_rw; break; + case WRITE_VERIFY: + ret = sbc_parse_verify(cmd, §ors, &size); + if (ret) + return ret; + cmd->execute_cmd = sbc_execute_rw; + goto check_lba; case WRITE_12: sectors = transport_get_sectors_12(cdb); cmd->t_task_lba = transport_lba_32(cdb); @@ -1105,9 +1151,9 @@ sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops) return ret; break; case VERIFY: - size = 0; - sectors = transport_get_sectors_10(cdb); - cmd->t_task_lba = transport_lba_32(cdb); + ret = sbc_parse_verify(cmd, §ors, &size); + if (ret) + return ret; cmd->execute_cmd = sbc_emulate_noop; goto check_lba; case REZERO_UNIT: