diff options
author | Nicholas Bellinger <nab@linux-iscsi.org> | 2012-05-30 14:47:18 -0700 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2012-06-12 21:38:42 -0700 |
commit | e86487e035a33709e5161e50b93e7dce21853665 (patch) | |
tree | e7a0ac4e60e0323edab887eaa58074adcde286c8 | |
parent | dec1fb1a225fb0d0c2939977f49acbf32e630a8f (diff) | |
download | linux-e86487e035a33709e5161e50b93e7dce21853665.tar.gz linux-e86487e035a33709e5161e50b93e7dce21853665.tar.xz linux-e86487e035a33709e5161e50b93e7dce21853665.zip |
target/pscsi: Only emulate REPORT_LUNS for passthrough
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>
-rw-r--r-- | drivers/target/target_core_pscsi.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c index 9a776cc03d67..cb4c6b1195d4 100644 --- a/drivers/target/target_core_pscsi.c +++ b/drivers/target/target_core_pscsi.c @@ -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; |