aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi_transport_iscsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/scsi_transport_iscsi.c')
-rw-r--r--drivers/scsi/scsi_transport_iscsi.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
index ad897df36615..ea3892e7e0f7 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -30,7 +30,7 @@
30#include <scsi/scsi_transport_iscsi.h> 30#include <scsi/scsi_transport_iscsi.h>
31#include <scsi/iscsi_if.h> 31#include <scsi/iscsi_if.h>
32 32
33#define ISCSI_SESSION_ATTRS 21 33#define ISCSI_SESSION_ATTRS 22
34#define ISCSI_CONN_ATTRS 13 34#define ISCSI_CONN_ATTRS 13
35#define ISCSI_HOST_ATTRS 4 35#define ISCSI_HOST_ATTRS 4
36 36
@@ -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
634void iscsi_block_session(struct iscsi_cls_session *session) 636void 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,
@@ -1759,6 +1760,7 @@ iscsi_session_attr(password_in, ISCSI_PARAM_PASSWORD_IN, 1);
1759iscsi_session_attr(fast_abort, ISCSI_PARAM_FAST_ABORT, 0); 1760iscsi_session_attr(fast_abort, ISCSI_PARAM_FAST_ABORT, 0);
1760iscsi_session_attr(abort_tmo, ISCSI_PARAM_ABORT_TMO, 0); 1761iscsi_session_attr(abort_tmo, ISCSI_PARAM_ABORT_TMO, 0);
1761iscsi_session_attr(lu_reset_tmo, ISCSI_PARAM_LU_RESET_TMO, 0); 1762iscsi_session_attr(lu_reset_tmo, ISCSI_PARAM_LU_RESET_TMO, 0);
1763iscsi_session_attr(tgt_reset_tmo, ISCSI_PARAM_TGT_RESET_TMO, 0);
1762iscsi_session_attr(ifacename, ISCSI_PARAM_IFACE_NAME, 0); 1764iscsi_session_attr(ifacename, ISCSI_PARAM_IFACE_NAME, 0);
1763iscsi_session_attr(initiatorname, ISCSI_PARAM_INITIATOR_NAME, 0) 1765iscsi_session_attr(initiatorname, ISCSI_PARAM_INITIATOR_NAME, 0)
1764 1766
@@ -2000,6 +2002,7 @@ iscsi_register_transport(struct iscsi_transport *tt)
2000 SETUP_SESSION_RD_ATTR(fast_abort, ISCSI_FAST_ABORT); 2002 SETUP_SESSION_RD_ATTR(fast_abort, ISCSI_FAST_ABORT);
2001 SETUP_SESSION_RD_ATTR(abort_tmo, ISCSI_ABORT_TMO); 2003 SETUP_SESSION_RD_ATTR(abort_tmo, ISCSI_ABORT_TMO);
2002 SETUP_SESSION_RD_ATTR(lu_reset_tmo,ISCSI_LU_RESET_TMO); 2004 SETUP_SESSION_RD_ATTR(lu_reset_tmo,ISCSI_LU_RESET_TMO);
2005 SETUP_SESSION_RD_ATTR(tgt_reset_tmo,ISCSI_TGT_RESET_TMO);
2003 SETUP_SESSION_RD_ATTR(ifacename, ISCSI_IFACE_NAME); 2006 SETUP_SESSION_RD_ATTR(ifacename, ISCSI_IFACE_NAME);
2004 SETUP_SESSION_RD_ATTR(initiatorname, ISCSI_INITIATOR_NAME); 2007 SETUP_SESSION_RD_ATTR(initiatorname, ISCSI_INITIATOR_NAME);
2005 SETUP_PRIV_SESSION_RD_ATTR(recovery_tmo); 2008 SETUP_PRIV_SESSION_RD_ATTR(recovery_tmo);