[SCSI] zfcp: Handle WWPN mismatch in PLOGI payload
authorChristof Schmitt <christof.schmitt@de.ibm.com>
Wed, 14 Oct 2009 09:00:43 +0000 (11:00 +0200)
committerJames Bottomley <James.Bottomley@suse.de>
Thu, 22 Oct 2009 00:38:45 +0000 (09:38 +0900)
commit934aeb587bab3173b6dec8e7717b909d8efc77b0
tree051a4836be95f529bf82914ba09847694d9673c2
parentd10c0858f618c20547d4eda8aee9c3afd91599cf
[SCSI] zfcp: Handle WWPN mismatch in PLOGI payload

For ports, zfcp gets the DID from the FC nameserver and tries to open
the port. If the open succeeds, zfcp compares the WWPN from the
nameserver with the WWPN in the PLOGI payload. In case of a mismatch,
zfcp assumes that the DID of the port just changed and we opened the
wrong port. This means that zfcp has to forget the DID, lookup the DID
again and retry.

This error case had a problem that zfcp forgets the DID, but never
looks up a new one, stalling the ERP in this case. Fix this by
triggering the DID lookup and properly exit from the ERP. The DID
lookup will trigger a new ERP action.

Also ensure when trying to open the port again with the new DID, first
close the open port, even in the NOESC case.

Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/s390/scsi/zfcp_erp.c
drivers/s390/scsi/zfcp_ext.h
drivers/s390/scsi/zfcp_fc.c