aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristof Schmitt <christof.schmitt@de.ibm.com>2008-03-10 11:18:54 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-04-07 13:15:44 -0400
commit5c815d1501a9ce84578cb3ec64c9d31ef91e3de2 (patch)
treefa00c38d575e33ebab427a8047cc7c6dddcb2967
parent2505873afe510d8db05665684c056ac8f0b24563 (diff)
[SCSI] zfcp: Fix handling for boxed port after physical close
When a FSF physical close returns the status boxed, this means that another system already closed the port. For our system this is the same status as in the good path, we have to send the normal close. So, set the status for the boxed response to the same as for the good status. Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: Martin Peschke <mp3@de.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 0dff05840ee2..2ed3c7b48882 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -2968,6 +2968,13 @@ zfcp_fsf_close_physical_port_handler(struct zfcp_fsf_req *fsf_req)
2968 zfcp_erp_port_boxed(port); 2968 zfcp_erp_port_boxed(port);
2969 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR | 2969 fsf_req->status |= ZFCP_STATUS_FSFREQ_ERROR |
2970 ZFCP_STATUS_FSFREQ_RETRY; 2970 ZFCP_STATUS_FSFREQ_RETRY;
2971
2972 /* can't use generic zfcp_erp_modify_port_status because
2973 * ZFCP_STATUS_COMMON_OPEN must not be reset for the port */
2974 atomic_clear_mask(ZFCP_STATUS_PORT_PHYS_OPEN, &port->status);
2975 list_for_each_entry(unit, &port->unit_list_head, list)
2976 atomic_clear_mask(ZFCP_STATUS_COMMON_OPEN,
2977 &unit->status);
2971 break; 2978 break;
2972 2979
2973 case FSF_ADAPTER_STATUS_AVAILABLE: 2980 case FSF_ADAPTER_STATUS_AVAILABLE: