target: Make standard INQUIRY return 'not connected' for tpg_virt_lun0
authorNicholas Bellinger <nab@linux-iscsi.org>
Wed, 27 Jul 2011 00:48:43 +0000 (17:48 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Mon, 22 Aug 2011 19:25:35 +0000 (19:25 +0000)
commit052605c6caa3e1edf8eee8fe5fe6d53f5721f39a
tree87997618fff7f63a4c5bef8a6a093d522d424266
parenteb39d34004888afcc0a44d9c36383cd69fa3b3b9
target: Make standard INQUIRY return 'not connected' for tpg_virt_lun0

This patch changes target_emulate_inquiry_std() to set the 'not connected'
(0x35) bit in standard INQUIRY response data when we are processing a
request to a virtual LUN=0 mapping from struct se_device *g_lun0_dev that
have been setup for us in transport_lookup_cmd_lun().

This addresses an issue where qla2xxx FC clients need to be able
to create demo-mode I_T FC Nexuses by default, but should not be
exposing the default set of TPG LUNs to all FC clients.  This includes
adding an new optional target_core_fabric_ops->tpg_check_demo_mode_login_only()
caller to allow demo_mode nexuses to skip the old default of bulding
a demo-mode MappedLUNs list via core_tpg_add_node_to_devs().

(roland: Add missing tpg_check_demo_mode_login_only check in core_dev_add_lun)

Reported-by: Roland Dreier <roland@purestorage.com>
Cc: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: Nicholas Bellinger <nab@risingtidesystems.com>
drivers/target/target_core_cdb.c
drivers/target/target_core_device.c
drivers/target/target_core_tpg.c
include/target/target_core_fabric_ops.h