aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_fsf.c
diff options
context:
space:
mode:
authorChristof Schmitt <christof.schmitt@de.ibm.com>2009-03-02 07:08:54 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-03-12 13:58:18 -0400
commita5b11dda12ed7e3a79180b10ad6209a40a02989f (patch)
tree57196bdb6f2c48a5e6f12a5d1129b57c1e393c3f /drivers/s390/scsi/zfcp_fsf.c
parent77c019768f0607c36e25bec11ce3e1eabef09277 (diff)
[SCSI] zfcp: Remove some port flags
PORT_PHYS_CLOSING is only set and cleared, but not actually used for status checking. PORT_INVALID_WWPN is set when the GID_PN request does not return a d_id for a remote port, e.g. when a remote port has been unplugged. For this case, the d_id is zero. In the erp we can check the d_id and use the normal escalation procedure that gives up after three retries and remove the special case. PORT_NO_WWPN is unused: Each port in the remote port list has a valid wwpn. The WKA ports are now tracked outside the port list. Remove the PORT_NO_WWPN flag, since this is no longer set for any port. Acked-by: Swen Schillig <swen@vnet.ibm.com> Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'drivers/s390/scsi/zfcp_fsf.c')
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index babe1b8ba25e..638cd5a2919d 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -1712,7 +1712,7 @@ static void zfcp_fsf_close_physical_port_handler(struct zfcp_fsf_req *req)
1712 struct zfcp_unit *unit; 1712 struct zfcp_unit *unit;
1713 1713
1714 if (req->status & ZFCP_STATUS_FSFREQ_ERROR) 1714 if (req->status & ZFCP_STATUS_FSFREQ_ERROR)
1715 goto skip_fsfstatus; 1715 return;
1716 1716
1717 switch (header->fsf_status) { 1717 switch (header->fsf_status) {
1718 case FSF_PORT_HANDLE_NOT_VALID: 1718 case FSF_PORT_HANDLE_NOT_VALID:
@@ -1752,8 +1752,6 @@ static void zfcp_fsf_close_physical_port_handler(struct zfcp_fsf_req *req)
1752 &unit->status); 1752 &unit->status);
1753 break; 1753 break;
1754 } 1754 }
1755skip_fsfstatus:
1756 atomic_clear_mask(ZFCP_STATUS_PORT_PHYS_CLOSING, &port->status);
1757} 1755}
1758 1756
1759/** 1757/**
@@ -1789,8 +1787,6 @@ int zfcp_fsf_close_physical_port(struct zfcp_erp_action *erp_action)
1789 req->erp_action = erp_action; 1787 req->erp_action = erp_action;
1790 req->handler = zfcp_fsf_close_physical_port_handler; 1788 req->handler = zfcp_fsf_close_physical_port_handler;
1791 erp_action->fsf_req = req; 1789 erp_action->fsf_req = req;
1792 atomic_set_mask(ZFCP_STATUS_PORT_PHYS_CLOSING,
1793 &erp_action->port->status);
1794 1790
1795 zfcp_fsf_start_erp_timer(req); 1791 zfcp_fsf_start_erp_timer(req);
1796 retval = zfcp_fsf_req_send(req); 1792 retval = zfcp_fsf_req_send(req);