diff options
| author | Hannes Reinecke <hare@suse.de> | 2014-11-26 08:58:57 -0500 |
|---|---|---|
| committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2014-12-02 00:36:21 -0500 |
| commit | 506787a2c7daed45f0a213674ca706cbc83a9089 (patch) | |
| tree | d8734240e8977854cc1845d7fa173d76bc3d923c /drivers/target/loopback/tcm_loop.h | |
| parent | 4b2f57e5ced40e91cbf8886d7dc40a9474d2f5c0 (diff) | |
tcm_loop: Fix wrong I_T nexus association
tcm_loop has the I_T nexus associated with the HBA. This causes
commands to become misdirected if the HBA has more than one
target portal group; any command is then being sent to the
first target portal group instead of the correct one.
The nexus needs to be associated with the target portal group
instead.
Signed-off-by: Hannes Reinecke <hare@suse.de>
Cc: <stable@vger.kernel.org> # 3.0+
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/loopback/tcm_loop.h')
| -rw-r--r-- | drivers/target/loopback/tcm_loop.h | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/drivers/target/loopback/tcm_loop.h b/drivers/target/loopback/tcm_loop.h index 54c59d0b6608..6ae49f272ba6 100644 --- a/drivers/target/loopback/tcm_loop.h +++ b/drivers/target/loopback/tcm_loop.h | |||
| @@ -27,11 +27,6 @@ struct tcm_loop_tmr { | |||
| 27 | }; | 27 | }; |
| 28 | 28 | ||
| 29 | struct tcm_loop_nexus { | 29 | struct tcm_loop_nexus { |
| 30 | int it_nexus_active; | ||
| 31 | /* | ||
| 32 | * Pointer to Linux/SCSI HBA from linux/include/scsi_host.h | ||
| 33 | */ | ||
| 34 | struct scsi_host *sh; | ||
| 35 | /* | 30 | /* |
| 36 | * Pointer to TCM session for I_T Nexus | 31 | * Pointer to TCM session for I_T Nexus |
| 37 | */ | 32 | */ |
| @@ -51,6 +46,7 @@ struct tcm_loop_tpg { | |||
| 51 | atomic_t tl_tpg_port_count; | 46 | atomic_t tl_tpg_port_count; |
| 52 | struct se_portal_group tl_se_tpg; | 47 | struct se_portal_group tl_se_tpg; |
| 53 | struct tcm_loop_hba *tl_hba; | 48 | struct tcm_loop_hba *tl_hba; |
| 49 | struct tcm_loop_nexus *tl_nexus; | ||
| 54 | }; | 50 | }; |
| 55 | 51 | ||
| 56 | struct tcm_loop_hba { | 52 | struct tcm_loop_hba { |
| @@ -59,7 +55,6 @@ struct tcm_loop_hba { | |||
| 59 | struct se_hba_s *se_hba; | 55 | struct se_hba_s *se_hba; |
| 60 | struct se_lun *tl_hba_lun; | 56 | struct se_lun *tl_hba_lun; |
| 61 | struct se_port *tl_hba_lun_sep; | 57 | struct se_port *tl_hba_lun_sep; |
| 62 | struct tcm_loop_nexus *tl_nexus; | ||
| 63 | struct device dev; | 58 | struct device dev; |
| 64 | struct Scsi_Host *sh; | 59 | struct Scsi_Host *sh; |
| 65 | struct tcm_loop_tpg tl_hba_tpgs[TL_TPGS_PER_HBA]; | 60 | struct tcm_loop_tpg tl_hba_tpgs[TL_TPGS_PER_HBA]; |
