diff options
Diffstat (limited to 'drivers/scsi/scsi_transport_iscsi.c')
-rw-r--r-- | drivers/scsi/scsi_transport_iscsi.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c index ad897df36615..1e6d4793542c 100644 --- a/drivers/scsi/scsi_transport_iscsi.c +++ b/drivers/scsi/scsi_transport_iscsi.c | |||
@@ -22,6 +22,7 @@ | |||
22 | */ | 22 | */ |
23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
24 | #include <linux/mutex.h> | 24 | #include <linux/mutex.h> |
25 | #include <linux/slab.h> | ||
25 | #include <net/tcp.h> | 26 | #include <net/tcp.h> |
26 | #include <scsi/scsi.h> | 27 | #include <scsi/scsi.h> |
27 | #include <scsi/scsi_host.h> | 28 | #include <scsi/scsi_host.h> |
@@ -30,7 +31,7 @@ | |||
30 | #include <scsi/scsi_transport_iscsi.h> | 31 | #include <scsi/scsi_transport_iscsi.h> |
31 | #include <scsi/iscsi_if.h> | 32 | #include <scsi/iscsi_if.h> |
32 | 33 | ||
33 | #define ISCSI_SESSION_ATTRS 21 | 34 | #define ISCSI_SESSION_ATTRS 22 |
34 | #define ISCSI_CONN_ATTRS 13 | 35 | #define ISCSI_CONN_ATTRS 13 |
35 | #define ISCSI_HOST_ATTRS 4 | 36 | #define ISCSI_HOST_ATTRS 4 |
36 | 37 | ||
@@ -627,8 +628,10 @@ static void __iscsi_block_session(struct work_struct *work) | |||
627 | spin_unlock_irqrestore(&session->lock, flags); | 628 | spin_unlock_irqrestore(&session->lock, flags); |
628 | scsi_target_block(&session->dev); | 629 | scsi_target_block(&session->dev); |
629 | ISCSI_DBG_TRANS_SESSION(session, "Completed SCSI target blocking\n"); | 630 | ISCSI_DBG_TRANS_SESSION(session, "Completed SCSI target blocking\n"); |
630 | queue_delayed_work(iscsi_eh_timer_workq, &session->recovery_work, | 631 | if (session->recovery_tmo >= 0) |
631 | session->recovery_tmo * HZ); | 632 | queue_delayed_work(iscsi_eh_timer_workq, |
633 | &session->recovery_work, | ||
634 | session->recovery_tmo * HZ); | ||
632 | } | 635 | } |
633 | 636 | ||
634 | void iscsi_block_session(struct iscsi_cls_session *session) | 637 | void iscsi_block_session(struct iscsi_cls_session *session) |
@@ -1348,8 +1351,7 @@ iscsi_set_param(struct iscsi_transport *transport, struct iscsi_uevent *ev) | |||
1348 | switch (ev->u.set_param.param) { | 1351 | switch (ev->u.set_param.param) { |
1349 | case ISCSI_PARAM_SESS_RECOVERY_TMO: | 1352 | case ISCSI_PARAM_SESS_RECOVERY_TMO: |
1350 | sscanf(data, "%d", &value); | 1353 | sscanf(data, "%d", &value); |
1351 | if (value != 0) | 1354 | session->recovery_tmo = value; |
1352 | session->recovery_tmo = value; | ||
1353 | break; | 1355 | break; |
1354 | default: | 1356 | default: |
1355 | err = transport->set_param(conn, ev->u.set_param.param, | 1357 | err = transport->set_param(conn, ev->u.set_param.param, |
@@ -1759,6 +1761,7 @@ iscsi_session_attr(password_in, ISCSI_PARAM_PASSWORD_IN, 1); | |||
1759 | iscsi_session_attr(fast_abort, ISCSI_PARAM_FAST_ABORT, 0); | 1761 | iscsi_session_attr(fast_abort, ISCSI_PARAM_FAST_ABORT, 0); |
1760 | iscsi_session_attr(abort_tmo, ISCSI_PARAM_ABORT_TMO, 0); | 1762 | iscsi_session_attr(abort_tmo, ISCSI_PARAM_ABORT_TMO, 0); |
1761 | iscsi_session_attr(lu_reset_tmo, ISCSI_PARAM_LU_RESET_TMO, 0); | 1763 | iscsi_session_attr(lu_reset_tmo, ISCSI_PARAM_LU_RESET_TMO, 0); |
1764 | iscsi_session_attr(tgt_reset_tmo, ISCSI_PARAM_TGT_RESET_TMO, 0); | ||
1762 | iscsi_session_attr(ifacename, ISCSI_PARAM_IFACE_NAME, 0); | 1765 | iscsi_session_attr(ifacename, ISCSI_PARAM_IFACE_NAME, 0); |
1763 | iscsi_session_attr(initiatorname, ISCSI_PARAM_INITIATOR_NAME, 0) | 1766 | iscsi_session_attr(initiatorname, ISCSI_PARAM_INITIATOR_NAME, 0) |
1764 | 1767 | ||
@@ -2000,6 +2003,7 @@ iscsi_register_transport(struct iscsi_transport *tt) | |||
2000 | SETUP_SESSION_RD_ATTR(fast_abort, ISCSI_FAST_ABORT); | 2003 | SETUP_SESSION_RD_ATTR(fast_abort, ISCSI_FAST_ABORT); |
2001 | SETUP_SESSION_RD_ATTR(abort_tmo, ISCSI_ABORT_TMO); | 2004 | SETUP_SESSION_RD_ATTR(abort_tmo, ISCSI_ABORT_TMO); |
2002 | SETUP_SESSION_RD_ATTR(lu_reset_tmo,ISCSI_LU_RESET_TMO); | 2005 | SETUP_SESSION_RD_ATTR(lu_reset_tmo,ISCSI_LU_RESET_TMO); |
2006 | SETUP_SESSION_RD_ATTR(tgt_reset_tmo,ISCSI_TGT_RESET_TMO); | ||
2003 | SETUP_SESSION_RD_ATTR(ifacename, ISCSI_IFACE_NAME); | 2007 | SETUP_SESSION_RD_ATTR(ifacename, ISCSI_IFACE_NAME); |
2004 | SETUP_SESSION_RD_ATTR(initiatorname, ISCSI_INITIATOR_NAME); | 2008 | SETUP_SESSION_RD_ATTR(initiatorname, ISCSI_INITIATOR_NAME); |
2005 | SETUP_PRIV_SESSION_RD_ATTR(recovery_tmo); | 2009 | SETUP_PRIV_SESSION_RD_ATTR(recovery_tmo); |