aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/scsi/iscsi_if.h7
-rw-r--r--include/scsi/iscsi_proto.h2
-rw-r--r--include/scsi/scsi_transport_iscsi.h7
3 files changed, 14 insertions, 2 deletions
diff --git a/include/scsi/iscsi_if.h b/include/scsi/iscsi_if.h
index bff0b1f7857b..8a4426df6c3a 100644
--- a/include/scsi/iscsi_if.h
+++ b/include/scsi/iscsi_if.h
@@ -49,12 +49,15 @@ enum iscsi_uevent_e {
49 49
50 ISCSI_UEVENT_TGT_DSCVR = UEVENT_BASE + 15, 50 ISCSI_UEVENT_TGT_DSCVR = UEVENT_BASE + 15,
51 ISCSI_UEVENT_SET_HOST_PARAM = UEVENT_BASE + 16, 51 ISCSI_UEVENT_SET_HOST_PARAM = UEVENT_BASE + 16,
52 ISCSI_UEVENT_UNBIND_SESSION = UEVENT_BASE + 17,
52 53
53 /* up events */ 54 /* up events */
54 ISCSI_KEVENT_RECV_PDU = KEVENT_BASE + 1, 55 ISCSI_KEVENT_RECV_PDU = KEVENT_BASE + 1,
55 ISCSI_KEVENT_CONN_ERROR = KEVENT_BASE + 2, 56 ISCSI_KEVENT_CONN_ERROR = KEVENT_BASE + 2,
56 ISCSI_KEVENT_IF_ERROR = KEVENT_BASE + 3, 57 ISCSI_KEVENT_IF_ERROR = KEVENT_BASE + 3,
57 ISCSI_KEVENT_DESTROY_SESSION = KEVENT_BASE + 4, 58 ISCSI_KEVENT_DESTROY_SESSION = KEVENT_BASE + 4,
59 ISCSI_KEVENT_UNBIND_SESSION = KEVENT_BASE + 5,
60 ISCSI_KEVENT_CREATE_SESSION = KEVENT_BASE + 6,
58}; 61};
59 62
60enum iscsi_tgt_dscvr { 63enum iscsi_tgt_dscvr {
@@ -156,6 +159,10 @@ struct iscsi_uevent {
156 uint32_t sid; 159 uint32_t sid;
157 uint32_t cid; 160 uint32_t cid;
158 } c_conn_ret; 161 } c_conn_ret;
162 struct msg_unbind_session {
163 uint32_t sid;
164 uint32_t host_no;
165 } unbind_session;
159 struct msg_recv_req { 166 struct msg_recv_req {
160 uint32_t sid; 167 uint32_t sid;
161 uint32_t cid; 168 uint32_t cid;
diff --git a/include/scsi/iscsi_proto.h b/include/scsi/iscsi_proto.h
index 6947082eee6d..318a909e7ae1 100644
--- a/include/scsi/iscsi_proto.h
+++ b/include/scsi/iscsi_proto.h
@@ -21,6 +21,8 @@
21#ifndef ISCSI_PROTO_H 21#ifndef ISCSI_PROTO_H
22#define ISCSI_PROTO_H 22#define ISCSI_PROTO_H
23 23
24#include <linux/types.h>
25
24#define ISCSI_DRAFT20_VERSION 0x00 26#define ISCSI_DRAFT20_VERSION 0x00
25 27
26/* default iSCSI listen port for incoming connections */ 28/* default iSCSI listen port for incoming connections */
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h
index b8d97bd20f6e..093b4036f8db 100644
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -186,6 +186,7 @@ struct iscsi_cls_session {
186 /* recovery fields */ 186 /* recovery fields */
187 int recovery_tmo; 187 int recovery_tmo;
188 struct delayed_work recovery_work; 188 struct delayed_work recovery_work;
189 struct work_struct unbind_work;
189 190
190 int target_id; 191 int target_id;
191 192
@@ -206,6 +207,8 @@ struct iscsi_cls_session {
206struct iscsi_host { 207struct iscsi_host {
207 struct list_head sessions; 208 struct list_head sessions;
208 struct mutex mutex; 209 struct mutex mutex;
210 struct workqueue_struct *unbind_workq;
211 char unbind_workq_name[KOBJ_NAME_LEN];
209}; 212};
210 213
211/* 214/*
@@ -215,8 +218,8 @@ extern struct iscsi_cls_session *iscsi_alloc_session(struct Scsi_Host *shost,
215 struct iscsi_transport *transport); 218 struct iscsi_transport *transport);
216extern int iscsi_add_session(struct iscsi_cls_session *session, 219extern int iscsi_add_session(struct iscsi_cls_session *session,
217 unsigned int target_id); 220 unsigned int target_id);
218extern int iscsi_if_create_session_done(struct iscsi_cls_conn *conn); 221extern int iscsi_session_event(struct iscsi_cls_session *session,
219extern int iscsi_if_destroy_session_done(struct iscsi_cls_conn *conn); 222 enum iscsi_uevent_e event);
220extern struct iscsi_cls_session *iscsi_create_session(struct Scsi_Host *shost, 223extern struct iscsi_cls_session *iscsi_create_session(struct Scsi_Host *shost,
221 struct iscsi_transport *t, 224 struct iscsi_transport *t,
222 unsigned int target_id); 225 unsigned int target_id);