qla2xxx: Check + fail when npiv_vports_inuse exists in shutdown
authorNicholas Bellinger <nab@linux-iscsi.org>
Thu, 20 Feb 2014 01:50:22 +0000 (17:50 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Thu, 20 Feb 2014 21:01:17 +0000 (13:01 -0800)
commit3c231bdae1e7c8d366eeb133980b81dff2e1e809
tree4a029b1b2435b516f843f952bb44fce900c2e2e2
parentddb95145a38eb37b236d4e00f43a75d067922dda
qla2xxx: Check + fail when npiv_vports_inuse exists in shutdown

This patch adds an check to qlt_stop_phase1() to avoid shutdown
when the base_vha contains a non-zero fc_host->npiv_vports_inuse
count.

This includes holding qla_tgt_mutex in qlt_stop_phase1() between
the fc_host->npiv_vports_inuse check + setting of tgt->tgt_stop to
avoid a possible race between qlt_lport_register() -> tcm_qla2xxx
-> tcm_qla2xxx_lport_register_npiv_cb() calling fc_vport_create().

Cc: Sawan Chandak <sawan.chandak@qlogic.com>
Cc: Quinn Tran <quinn.tran@qlogic.com>
Cc: Saurav Kashyap <saurav.kashyap@qlogic.com>
Cc: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/scsi/qla2xxx/qla_target.c
drivers/scsi/qla2xxx/qla_target.h