diff options
Diffstat (limited to 'drivers/s390/scsi/zfcp_erp.c')
| -rw-r--r-- | drivers/s390/scsi/zfcp_erp.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c index fdc9b4352a6..e50ea465bc2 100644 --- a/drivers/s390/scsi/zfcp_erp.c +++ b/drivers/s390/scsi/zfcp_erp.c @@ -880,6 +880,7 @@ static int zfcp_erp_port_strategy_open_common(struct zfcp_erp_action *act)  				zfcp_port_put(port);  			return ZFCP_ERP_CONTINUES;  		} +		/* fall through */  	case ZFCP_ERP_STEP_NAMESERVER_LOOKUP:  		if (!port->d_id)  			return ZFCP_ERP_FAILED; @@ -894,8 +895,13 @@ static int zfcp_erp_port_strategy_open_common(struct zfcp_erp_action *act)  				act->step = ZFCP_ERP_STEP_PORT_CLOSING;  				return ZFCP_ERP_CONTINUES;  			} -		/* fall through otherwise */  		} +		if (port->d_id && !(p_status & ZFCP_STATUS_COMMON_NOESC)) { +			port->d_id = 0; +			_zfcp_erp_port_reopen(port, 0, "erpsoc1", NULL); +			return ZFCP_ERP_EXIT; +		} +		/* fall through otherwise */  	}  	return ZFCP_ERP_FAILED;  }  |