mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 11:11:45 -04:00
[SCSI] iscsi class: user device_for_each_child instead of duplicating session list
Currently we duplicate the list of sessions, because we were using the test for if a session was on the host list to indicate if the session was bound or unbound. We can instead use the target_id and fix up the class so that drivers like bnx2i do not have to manage the target id space. Signed-off-by: Mike Christie <[email protected]> Signed-off-by: James Bottomley <[email protected]>
This commit is contained in:
parent
2261ec3d68
commit
7970634b81
6 changed files with 104 additions and 37 deletions
|
|
@ -331,7 +331,7 @@ extern void iscsi_host_free(struct Scsi_Host *shost);
|
|||
*/
|
||||
extern struct iscsi_cls_session *
|
||||
iscsi_session_setup(struct iscsi_transport *, struct Scsi_Host *shost,
|
||||
uint16_t, int, uint32_t);
|
||||
uint16_t, int, uint32_t, unsigned int);
|
||||
extern void iscsi_session_teardown(struct iscsi_cls_session *);
|
||||
extern void iscsi_session_recovery_timedout(struct iscsi_cls_session *);
|
||||
extern int iscsi_set_param(struct iscsi_cls_conn *cls_conn,
|
||||
|
|
|
|||
|
|
@ -161,9 +161,10 @@ enum {
|
|||
ISCSI_SESSION_FREE,
|
||||
};
|
||||
|
||||
#define ISCSI_MAX_TARGET -1
|
||||
|
||||
struct iscsi_cls_session {
|
||||
struct list_head sess_list; /* item in session_list */
|
||||
struct list_head host_list;
|
||||
struct iscsi_transport *transport;
|
||||
spinlock_t lock;
|
||||
struct work_struct block_work;
|
||||
|
|
@ -175,7 +176,7 @@ struct iscsi_cls_session {
|
|||
int recovery_tmo;
|
||||
struct delayed_work recovery_work;
|
||||
|
||||
int target_id;
|
||||
unsigned int target_id;
|
||||
|
||||
int state;
|
||||
int sid; /* session id */
|
||||
|
|
@ -193,7 +194,6 @@ struct iscsi_cls_session {
|
|||
iscsi_dev_to_session(_stgt->dev.parent)
|
||||
|
||||
struct iscsi_cls_host {
|
||||
struct list_head sessions;
|
||||
atomic_t nr_scans;
|
||||
struct mutex mutex;
|
||||
struct workqueue_struct *scan_workq;
|
||||
|
|
|
|||
Loading…
Reference in a new issue