+++ /dev/null
-From: Gerald Schaefer <geraldsc@de.ibm.com>
-Subject: zfcp: fix wka port processing
-References: bnc#518291,LTC#54673
-
-Symptom: Remote port cannot be opened.
-Problem: After an "open port" request for the WKA port did not
- return within half a second, the WKA port for the
- directory server remains in the state OPENING,
- preventing any succeeding request to open the port.
-Solution: Make sure to always update the WKA port status from the
- corresponding FSF handler and do not rely on the timeout
- in zfcp_wka_port_get.
-
-Acked-by: John Jolly <jjolly@suse.de>
----
-
- drivers/s390/scsi/zfcp_fc.c | 8 +++-----
- drivers/s390/scsi/zfcp_fsf.c | 4 ++--
- 2 files changed, 5 insertions(+), 7 deletions(-)
-
---- a/drivers/s390/scsi/zfcp_fc.c 2009-07-13 11:07:50.000000000 +0200
-+++ b/drivers/s390/scsi/zfcp_fc.c 2009-07-13 11:18:09.000000000 +0200
-@@ -56,11 +56,9 @@ static int zfcp_wka_port_get(struct zfcp
-
- mutex_unlock(&wka_port->mutex);
-
-- wait_event_timeout(
-- wka_port->completion_wq,
-- wka_port->status == ZFCP_WKA_PORT_ONLINE ||
-- wka_port->status == ZFCP_WKA_PORT_OFFLINE,
-- HZ >> 1);
-+ wait_event(wka_port->completion_wq,
-+ wka_port->status == ZFCP_WKA_PORT_ONLINE ||
-+ wka_port->status == ZFCP_WKA_PORT_OFFLINE);
-
- if (wka_port->status == ZFCP_WKA_PORT_ONLINE) {
- atomic_inc(&wka_port->refcount);
---- a/drivers/s390/scsi/zfcp_fsf.c 2009-07-13 11:07:50.000000000 +0200
-+++ b/drivers/s390/scsi/zfcp_fsf.c 2009-07-13 11:18:09.000000000 +0200
-@@ -1616,10 +1616,10 @@ static void zfcp_fsf_open_wka_port_handl
- case FSF_ACCESS_DENIED:
- wka_port->status = ZFCP_WKA_PORT_OFFLINE;
- break;
-- case FSF_PORT_ALREADY_OPEN:
-- break;
- case FSF_GOOD:
- wka_port->handle = header->port_handle;
-+ /* fall through */
-+ case FSF_PORT_ALREADY_OPEN:
- wka_port->status = ZFCP_WKA_PORT_ONLINE;
- }
- out: