target/pscsi: Only emulate REPORT_LUNS for passthrough
authorNicholas Bellinger <nab@linux-iscsi.org>
Wed, 30 May 2012 21:47:18 +0000 (14:47 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Tue, 17 Jul 2012 00:28:40 +0000 (17:28 -0700)
This patch changes back the pSCSI backend to follow pre 3.6-queue code to
passthrough SPC-3 persistent reservations + SPC-2 legacy reservation
handling to the underlying LLD / physical hardware.

For folks who really need this for their own SPC-3 emulation logic, avoid
changing the functionality of this beyond what is exported for REPORT_LUNS
for existing code, and to avoid problems with SPC-3 PR/ALUA as INQUIRY
EVPD=0x83 emulation needs to be in place in order for this to work as
expected with spc_parse_cdb() code..

Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_pscsi.c

index 9a776cc03d67d92ea405b6175f11607f0efb9f1e..cb4c6b1195d4da801c627063f5f9ae3852c0be85 100644 (file)
@@ -1061,18 +1061,12 @@ static int pscsi_parse_cdb(struct se_cmd *cmd)
        pscsi_clear_cdb_lun(cdb);
 
        /*
-        * For REPORT LUNS we always need to emulate the respone, and for everything
-        * related to persistent reservations and ALUA we might optionally use our
-        * handlers before passing on the command to the physical hardware.
+        * For REPORT LUNS we always need to emulate the response, for everything
+        * else the default for pSCSI is to pass the command to the underlying
+        * LLD / physical hardware.
         */
        switch (cdb[0]) {
        case REPORT_LUNS:
-       case PERSISTENT_RESERVE_IN:
-       case PERSISTENT_RESERVE_OUT:
-       case RELEASE:
-       case RELEASE_10:
-       case RESERVE:
-       case RESERVE_10:
                ret = spc_parse_cdb(cmd, &dummy_size);
                if (ret)
                        return ret;