aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390
diff options
context:
space:
mode:
authorChristof Schmitt <christof.schmitt@de.ibm.com>2010-07-08 03:53:09 -0400
committerJames Bottomley <James.Bottomley@suse.de>2010-07-28 10:46:41 -0400
commit9c785d944e6fa7eef390c799b93e43243505780c (patch)
treeb17a4ef36212db7f2a5cc34081dd0f49ae829c61 /drivers/s390
parent835dc29887073eec7817559a07558f955383d099 (diff)
[SCSI] zfcp: Fail erp after timeout
After a timeout notification, do not try to run the erp strategy. Return from the erp with "failed" to possibly trigger a retry. Reviewed-by: Swen Schillig <swen@vnet.ibm.com> Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/s390')
-rw-r--r--drivers/s390/scsi/zfcp_erp.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/s390/scsi/zfcp_erp.c b/drivers/s390/scsi/zfcp_erp.c
index 03cd6365ed04..64471ba6ac09 100644
--- a/drivers/s390/scsi/zfcp_erp.c
+++ b/drivers/s390/scsi/zfcp_erp.c
@@ -1246,6 +1246,11 @@ static int zfcp_erp_strategy(struct zfcp_erp_action *erp_action)
1246 goto unlock; 1246 goto unlock;
1247 } 1247 }
1248 1248
1249 if (erp_action->status & ZFCP_STATUS_ERP_TIMEDOUT) {
1250 retval = ZFCP_ERP_FAILED;
1251 goto check_target;
1252 }
1253
1249 zfcp_erp_action_to_running(erp_action); 1254 zfcp_erp_action_to_running(erp_action);
1250 1255
1251 /* no lock to allow for blocking operations */ 1256 /* no lock to allow for blocking operations */
@@ -1278,6 +1283,7 @@ static int zfcp_erp_strategy(struct zfcp_erp_action *erp_action)
1278 goto unlock; 1283 goto unlock;
1279 } 1284 }
1280 1285
1286check_target:
1281 retval = zfcp_erp_strategy_check_target(erp_action, retval); 1287 retval = zfcp_erp_strategy_check_target(erp_action, retval);
1282 zfcp_erp_action_dequeue(erp_action); 1288 zfcp_erp_action_dequeue(erp_action);
1283 retval = zfcp_erp_strategy_statechange(erp_action, retval); 1289 retval = zfcp_erp_strategy_statechange(erp_action, retval);