[SCSI] qla4xxx: do not reuse session when connecting to different target port
authorMike Christie <michaelc@cs.wisc.edu>
Fri, 16 Jan 2009 18:36:52 +0000 (12:36 -0600)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Sun, 25 Jan 2009 13:55:13 +0000 (07:55 -0600)
commit41bbdbebbbe7e06871d25f51c2eb1d6466bb9e5f
treed457ba5ef266100b75e85af89ddc0eb622978d1f
parent2f5899a39dcffb404c9a3d06ad438aff3e03bf04
[SCSI] qla4xxx: do not reuse session when connecting to different target port

qla4xxx does not check the I_T nexus values correctly
so it ends up creating one session to the target. If
a portal should disappear or they should be reported
in different order the driver will think it is already
logged in when it could now be speaking to a different
target portal or accessing it through a different
initiator port (iscsi initiator port is not tied to
hardware and is just the initiator name plus isid
so you could end up with multiple ports through one
host).

This patch has the driver check the iscsi scsi port
values when matching sessions (we do not check
the initiator name because that is static). It results
in a portal from each target portal group getting
logged into instead of just one per target. In the future
the firmware should hopefully send us notification of other
sessions that are created to other portals within the
same tpgt and the sessions should have different isids.

Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/qla4xxx/ql4_def.h
drivers/scsi/qla4xxx/ql4_init.c