diff options
-rw-r--r-- | drivers/scsi/scsi_transport_iscsi.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c index dc04ca124a69..ea3892e7e0f7 100644 --- a/drivers/scsi/scsi_transport_iscsi.c +++ b/drivers/scsi/scsi_transport_iscsi.c | |||
@@ -627,8 +627,10 @@ static void __iscsi_block_session(struct work_struct *work) | |||
627 | spin_unlock_irqrestore(&session->lock, flags); | 627 | spin_unlock_irqrestore(&session->lock, flags); |
628 | scsi_target_block(&session->dev); | 628 | scsi_target_block(&session->dev); |
629 | ISCSI_DBG_TRANS_SESSION(session, "Completed SCSI target blocking\n"); | 629 | ISCSI_DBG_TRANS_SESSION(session, "Completed SCSI target blocking\n"); |
630 | queue_delayed_work(iscsi_eh_timer_workq, &session->recovery_work, | 630 | if (session->recovery_tmo >= 0) |
631 | session->recovery_tmo * HZ); | 631 | queue_delayed_work(iscsi_eh_timer_workq, |
632 | &session->recovery_work, | ||
633 | session->recovery_tmo * HZ); | ||
632 | } | 634 | } |
633 | 635 | ||
634 | void iscsi_block_session(struct iscsi_cls_session *session) | 636 | void iscsi_block_session(struct iscsi_cls_session *session) |
@@ -1348,8 +1350,7 @@ iscsi_set_param(struct iscsi_transport *transport, struct iscsi_uevent *ev) | |||
1348 | switch (ev->u.set_param.param) { | 1350 | switch (ev->u.set_param.param) { |
1349 | case ISCSI_PARAM_SESS_RECOVERY_TMO: | 1351 | case ISCSI_PARAM_SESS_RECOVERY_TMO: |
1350 | sscanf(data, "%d", &value); | 1352 | sscanf(data, "%d", &value); |
1351 | if (value != 0) | 1353 | session->recovery_tmo = value; |
1352 | session->recovery_tmo = value; | ||
1353 | break; | 1354 | break; |
1354 | default: | 1355 | default: |
1355 | err = transport->set_param(conn, ev->u.set_param.param, | 1356 | err = transport->set_param(conn, ev->u.set_param.param, |