aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/target/target_core_alua.c
diff options
context:
space:
mode:
authorNicholas Bellinger <nab@daterainc.com>2013-08-22 18:35:45 -0400
committerNicholas Bellinger <nab@linux-iscsi.org>2013-09-10 19:48:42 -0400
commit89c12cc925a7d0982dc53b743a42108acc76aef4 (patch)
tree8b923abc646a3ea8f14ab0e792ac68b20a1ce021 /drivers/target/target_core_alua.c
parentd9ea32bff2c55d4cd4654f1e98d269a758f34534 (diff)
target: Avoid non-existent tg_pt_gp_mem in target_alua_state_check
This patch adds an check for a non-existent port->sep_alua_tg_pt_gp_mem within target_alua_state_check(), which is not present for internally dispatched EXTENDED_COPY WRITE I/O to the destination target port. Cc: Christoph Hellwig <hch@lst.de> Cc: Hannes Reinecke <hare@suse.de> Cc: Martin Petersen <martin.petersen@oracle.com> Cc: Chris Mason <chris.mason@fusionio.com> Cc: Roland Dreier <roland@purestorage.com> Cc: Zach Brown <zab@redhat.com> Cc: James Bottomley <JBottomley@Parallels.com> Cc: Nicholas Bellinger <nab@linux-iscsi.org> Signed-off-by: Nicholas Bellinger <nab@daterainc.com>
Diffstat (limited to 'drivers/target/target_core_alua.c')
-rw-r--r--drivers/target/target_core_alua.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/target/target_core_alua.c b/drivers/target/target_core_alua.c
index 5403186e4777..ea928c4d8854 100644
--- a/drivers/target/target_core_alua.c
+++ b/drivers/target/target_core_alua.c
@@ -557,6 +557,9 @@ target_alua_state_check(struct se_cmd *cmd)
557 * a ALUA logical unit group. 557 * a ALUA logical unit group.
558 */ 558 */
559 tg_pt_gp_mem = port->sep_alua_tg_pt_gp_mem; 559 tg_pt_gp_mem = port->sep_alua_tg_pt_gp_mem;
560 if (!tg_pt_gp_mem)
561 return 0;
562
560 spin_lock(&tg_pt_gp_mem->tg_pt_gp_mem_lock); 563 spin_lock(&tg_pt_gp_mem->tg_pt_gp_mem_lock);
561 tg_pt_gp = tg_pt_gp_mem->tg_pt_gp; 564 tg_pt_gp = tg_pt_gp_mem->tg_pt_gp;
562 out_alua_state = atomic_read(&tg_pt_gp->tg_pt_gp_alua_access_state); 565 out_alua_state = atomic_read(&tg_pt_gp->tg_pt_gp_alua_access_state);