diff options
Diffstat (limited to 'drivers/s390')
-rw-r--r-- | drivers/s390/scsi/zfcp_erp.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c index c663eb2ecf32..5a71b73211df 100644 --- a/drivers/s390/scsi/zfcp_erp.c +++ b/drivers/s390/scsi/zfcp_erp.c | |||
@@ -141,9 +141,13 @@ static int zfcp_erp_required_act(int want, struct zfcp_adapter *adapter, | |||
141 | if (!(p_status & ZFCP_STATUS_COMMON_UNBLOCKED)) | 141 | if (!(p_status & ZFCP_STATUS_COMMON_UNBLOCKED)) |
142 | need = ZFCP_ERP_ACTION_REOPEN_PORT; | 142 | need = ZFCP_ERP_ACTION_REOPEN_PORT; |
143 | /* fall through */ | 143 | /* fall through */ |
144 | case ZFCP_ERP_ACTION_REOPEN_PORT: | ||
145 | case ZFCP_ERP_ACTION_REOPEN_PORT_FORCED: | 144 | case ZFCP_ERP_ACTION_REOPEN_PORT_FORCED: |
146 | p_status = atomic_read(&port->status); | 145 | p_status = atomic_read(&port->status); |
146 | if (!(p_status & ZFCP_STATUS_COMMON_OPEN)) | ||
147 | need = ZFCP_ERP_ACTION_REOPEN_PORT; | ||
148 | /* fall through */ | ||
149 | case ZFCP_ERP_ACTION_REOPEN_PORT: | ||
150 | p_status = atomic_read(&port->status); | ||
147 | if (p_status & ZFCP_STATUS_COMMON_ERP_INUSE) | 151 | if (p_status & ZFCP_STATUS_COMMON_ERP_INUSE) |
148 | return 0; | 152 | return 0; |
149 | a_status = atomic_read(&adapter->status); | 153 | a_status = atomic_read(&adapter->status); |