diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/scsi/iscsi_if.h | 7 | ||||
-rw-r--r-- | include/scsi/iscsi_proto.h | 2 | ||||
-rw-r--r-- | include/scsi/scsi_transport_iscsi.h | 7 |
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 | ||
60 | enum iscsi_tgt_dscvr { | 63 | enum 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 { | |||
206 | struct iscsi_host { | 207 | struct 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); |
216 | extern int iscsi_add_session(struct iscsi_cls_session *session, | 219 | extern int iscsi_add_session(struct iscsi_cls_session *session, |
217 | unsigned int target_id); | 220 | unsigned int target_id); |
218 | extern int iscsi_if_create_session_done(struct iscsi_cls_conn *conn); | 221 | extern int iscsi_session_event(struct iscsi_cls_session *session, |
219 | extern int iscsi_if_destroy_session_done(struct iscsi_cls_conn *conn); | 222 | enum iscsi_uevent_e event); |
220 | extern struct iscsi_cls_session *iscsi_create_session(struct Scsi_Host *shost, | 223 | extern 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); |