aboutsummaryrefslogtreecommitdiffstats
path: root/include/scsi
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2007-12-13 13:43:30 -0500
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-01-11 19:28:35 -0500
commitf6d5180c78780d63b0577edeb3ce41eeb3e93eea (patch)
tree95eb44fb84dd7659f816c5f1166c1ae7e2301f5f /include/scsi
parent2697478903d0ad8bdbf868b1346ae4b891662bb1 (diff)
[SCSI] libiscsi: fix nop handling
During root boot and shutdown the target could send us nops. At this time iscsid cannot be running, so the target will drop the session and the boot or shutdown will hang. To handle this and allow us to better control when to check the network this patch moves the nop handling to the kernel. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'include/scsi')
-rw-r--r--include/scsi/iscsi_if.h11
-rw-r--r--include/scsi/libiscsi.h8
2 files changed, 19 insertions, 0 deletions
diff --git a/include/scsi/iscsi_if.h b/include/scsi/iscsi_if.h
index 8a4426df6c3a..e19e58423166 100644
--- a/include/scsi/iscsi_if.h
+++ b/include/scsi/iscsi_if.h
@@ -244,6 +244,12 @@ enum iscsi_param {
244 ISCSI_PARAM_PASSWORD_IN, 244 ISCSI_PARAM_PASSWORD_IN,
245 245
246 ISCSI_PARAM_FAST_ABORT, 246 ISCSI_PARAM_FAST_ABORT,
247 ISCSI_PARAM_ABORT_TMO,
248 ISCSI_PARAM_LU_RESET_TMO,
249 ISCSI_PARAM_HOST_RESET_TMO,
250
251 ISCSI_PARAM_PING_TMO,
252 ISCSI_PARAM_RECV_TMO,
247 /* must always be last */ 253 /* must always be last */
248 ISCSI_PARAM_MAX, 254 ISCSI_PARAM_MAX,
249}; 255};
@@ -275,6 +281,11 @@ enum iscsi_param {
275#define ISCSI_PASSWORD (1 << ISCSI_PARAM_PASSWORD) 281#define ISCSI_PASSWORD (1 << ISCSI_PARAM_PASSWORD)
276#define ISCSI_PASSWORD_IN (1 << ISCSI_PARAM_PASSWORD_IN) 282#define ISCSI_PASSWORD_IN (1 << ISCSI_PARAM_PASSWORD_IN)
277#define ISCSI_FAST_ABORT (1 << ISCSI_PARAM_FAST_ABORT) 283#define ISCSI_FAST_ABORT (1 << ISCSI_PARAM_FAST_ABORT)
284#define ISCSI_ABORT_TMO (1 << ISCSI_PARAM_ABORT_TMO)
285#define ISCSI_LU_RESET_TMO (1 << ISCSI_PARAM_LU_RESET_TMO)
286#define ISCSI_HOST_RESET_TMO (1 << ISCSI_PARAM_HOST_RESET_TMO)
287#define ISCSI_PING_TMO (1 << ISCSI_PARAM_PING_TMO)
288#define ISCSI_RECV_TMO (1 << ISCSI_PARAM_RECV_TMO)
278 289
279/* iSCSI HBA params */ 290/* iSCSI HBA params */
280enum iscsi_host_param { 291enum iscsi_host_param {
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h
index d68f74523f2e..889f51fabab9 100644
--- a/include/scsi/libiscsi.h
+++ b/include/scsi/libiscsi.h
@@ -148,6 +148,12 @@ struct iscsi_conn {
148 * conn_stop() flag: stop to recover, stop to terminate 148 * conn_stop() flag: stop to recover, stop to terminate
149 */ 149 */
150 int stop_stage; 150 int stop_stage;
151 struct timer_list transport_timer;
152 unsigned long last_recv;
153 unsigned long last_ping;
154 int ping_timeout;
155 int recv_timeout;
156 struct iscsi_mgmt_task *ping_mtask;
151 157
152 /* iSCSI connection-wide sequencing */ 158 /* iSCSI connection-wide sequencing */
153 uint32_t exp_statsn; 159 uint32_t exp_statsn;
@@ -238,6 +244,8 @@ struct iscsi_session {
238 uint32_t queued_cmdsn; 244 uint32_t queued_cmdsn;
239 245
240 /* configuration */ 246 /* configuration */
247 int abort_timeout;
248 int lu_reset_timeout;
241 int initial_r2t_en; 249 int initial_r2t_en;
242 unsigned max_r2t; 250 unsigned max_r2t;
243 int imm_data_en; 251 int imm_data_en;