diff options
author | Volker Sameske <sameske@de.ibm.com> | 2006-08-02 05:05:16 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-08-06 12:31:00 -0400 |
commit | fea9d6c7bcd8ff1d60ff74f27ba483b3820b18a3 (patch) | |
tree | 9fd3c531809f5b7a275540e5467a59e50b6630b7 /drivers/s390/scsi/zfcp_def.h | |
parent | c2602c48b5ebde55b418ba252737bf60caa4bab0 (diff) |
[SCSI] zfcp: improve management of request IDs
Improve request handling. Use hash table to manage request IDs.
Signed-off-by: Volker Sameske <sameske@de.ibm.com>
Signed-off-by: Andreas Herrmann <aherrman@de.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/s390/scsi/zfcp_def.h')
-rw-r--r-- | drivers/s390/scsi/zfcp_def.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/drivers/s390/scsi/zfcp_def.h b/drivers/s390/scsi/zfcp_def.h index 2df512a18e2c..72293f3870b5 100644 --- a/drivers/s390/scsi/zfcp_def.h +++ b/drivers/s390/scsi/zfcp_def.h | |||
@@ -886,11 +886,11 @@ struct zfcp_adapter { | |||
886 | struct list_head port_remove_lh; /* head of ports to be | 886 | struct list_head port_remove_lh; /* head of ports to be |
887 | removed */ | 887 | removed */ |
888 | u32 ports; /* number of remote ports */ | 888 | u32 ports; /* number of remote ports */ |
889 | struct timer_list scsi_er_timer; /* SCSI err recovery watch */ | 889 | struct timer_list scsi_er_timer; /* SCSI err recovery watch */ |
890 | struct list_head fsf_req_list_head; /* head of FSF req list */ | 890 | atomic_t reqs_active; /* # active FSF reqs */ |
891 | spinlock_t fsf_req_list_lock; /* lock for ops on list of | 891 | unsigned long req_no; /* unique FSF req number */ |
892 | FSF requests */ | 892 | struct list_head *req_list; /* list of pending reqs */ |
893 | atomic_t fsf_reqs_active; /* # active FSF reqs */ | 893 | spinlock_t req_list_lock; /* request list lock */ |
894 | struct zfcp_qdio_queue request_queue; /* request queue */ | 894 | struct zfcp_qdio_queue request_queue; /* request queue */ |
895 | u32 fsf_req_seq_no; /* FSF cmnd seq number */ | 895 | u32 fsf_req_seq_no; /* FSF cmnd seq number */ |
896 | wait_queue_head_t request_wq; /* can be used to wait for | 896 | wait_queue_head_t request_wq; /* can be used to wait for |
@@ -986,6 +986,7 @@ struct zfcp_unit { | |||
986 | /* FSF request */ | 986 | /* FSF request */ |
987 | struct zfcp_fsf_req { | 987 | struct zfcp_fsf_req { |
988 | struct list_head list; /* list of FSF requests */ | 988 | struct list_head list; /* list of FSF requests */ |
989 | unsigned long req_id; /* unique request ID */ | ||
989 | struct zfcp_adapter *adapter; /* adapter request belongs to */ | 990 | struct zfcp_adapter *adapter; /* adapter request belongs to */ |
990 | u8 sbal_number; /* nr of SBALs free for use */ | 991 | u8 sbal_number; /* nr of SBALs free for use */ |
991 | u8 sbal_first; /* first SBAL for this request */ | 992 | u8 sbal_first; /* first SBAL for this request */ |