aboutsummaryrefslogtreecommitdiffstats
path: root/include/scsi
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2006-05-18 21:31:42 -0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-05-20 10:36:17 -0400
commit656cffc95f0cb8211aa75eaca249e6ff4f59ec83 (patch)
tree7b10e224ef3ac140570101ed98c918949863995b /include/scsi
parent790f39a2d5f03623b027f340b945f135d006ceba (diff)
[SCSI] iscsi: fix command requeues during iscsi recovery
Do not flush queues then block session. This will cause commands to needlessly swing around on us and remove goofy recovery_failed field and replace with state value. And do not start recovery from within the host reset function. This causeis too many problems becuase open-iscsi was desinged to call out to userspace then have userpscae decide if we should go into recovery or kill the session. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'include/scsi')
-rw-r--r--include/scsi/libiscsi.h3
-rw-r--r--include/scsi/scsi_transport_iscsi.h2
2 files changed, 2 insertions, 3 deletions
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h
index 2dba929a2a05..17b28f08b692 100644
--- a/include/scsi/libiscsi.h
+++ b/include/scsi/libiscsi.h
@@ -210,7 +210,6 @@ struct iscsi_session {
210 * - mgmtpool, * 210 * - mgmtpool, *
211 * - r2tpool */ 211 * - r2tpool */
212 int state; /* session state */ 212 int state; /* session state */
213 int recovery_failed;
214 struct list_head item; 213 struct list_head item;
215 int conn_cnt; 214 int conn_cnt;
216 int age; /* counts session re-opens */ 215 int age; /* counts session re-opens */
@@ -241,8 +240,6 @@ iscsi_session_setup(struct iscsi_transport *, struct scsi_transport_template *,
241 int, int, uint32_t, uint32_t *); 240 int, int, uint32_t, uint32_t *);
242extern void iscsi_session_teardown(struct iscsi_cls_session *); 241extern void iscsi_session_teardown(struct iscsi_cls_session *);
243extern struct iscsi_session *class_to_transport_session(struct iscsi_cls_session *); 242extern struct iscsi_session *class_to_transport_session(struct iscsi_cls_session *);
244extern void iscsi_start_session_recovery(struct iscsi_session *,
245 struct iscsi_conn *, int);
246extern void iscsi_session_recovery_timedout(struct iscsi_cls_session *); 243extern void iscsi_session_recovery_timedout(struct iscsi_cls_session *);
247 244
248#define session_to_cls(_sess) \ 245#define session_to_cls(_sess) \
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h
index c9e9475c6dff..92129b97d31e 100644
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -173,6 +173,8 @@ struct iscsi_cls_conn {
173#define ISCSI_STATE_LOGGED_IN 2 173#define ISCSI_STATE_LOGGED_IN 2
174#define ISCSI_STATE_FAILED 3 174#define ISCSI_STATE_FAILED 3
175#define ISCSI_STATE_TERMINATE 4 175#define ISCSI_STATE_TERMINATE 4
176#define ISCSI_STATE_IN_RECOVERY 5
177#define ISCSI_STATE_RECOVERY_FAILED 6
176 178
177struct iscsi_cls_session { 179struct iscsi_cls_session {
178 struct list_head sess_list; /* item in session_list */ 180 struct list_head sess_list; /* item in session_list */