aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_def.h
diff options
context:
space:
mode:
authorSwen Schillig <swen@vnet.ibm.com>2009-11-24 10:53:58 -0500
committerJames Bottomley <James.Bottomley@suse.de>2009-12-04 13:02:01 -0500
commitecf0c7721b104c0ce9c8ca534c911f6310cf92a8 (patch)
tree639032b36bcbbe905c98c6f0b3b521dc2f0b1806 /drivers/s390/scsi/zfcp_def.h
parent0a55256d158c18e4821c248a295b7f8f4423660f (diff)
[SCSI] zfcp: Replace global config_lock with local list locks
The global config_lock was used to protect the configuration organized in independent lists. It is not necessary to have a lock on driver level for this purpose. This patch replaces the global config_lock with a set of local list locks. Signed-off-by: Swen Schillig <swen@vnet.ibm.com> Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/s390/scsi/zfcp_def.h')
-rw-r--r--drivers/s390/scsi/zfcp_def.h9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/s390/scsi/zfcp_def.h b/drivers/s390/scsi/zfcp_def.h
index 7da2fad8f51..e45a08d6c98 100644
--- a/drivers/s390/scsi/zfcp_def.h
+++ b/drivers/s390/scsi/zfcp_def.h
@@ -461,7 +461,8 @@ struct zfcp_adapter {
461 u32 hardware_version; /* of FCP channel */ 461 u32 hardware_version; /* of FCP channel */
462 u16 timer_ticks; /* time int for a tick */ 462 u16 timer_ticks; /* time int for a tick */
463 struct Scsi_Host *scsi_host; /* Pointer to mid-layer */ 463 struct Scsi_Host *scsi_host; /* Pointer to mid-layer */
464 struct list_head port_list_head; /* remote port list */ 464 struct list_head port_list; /* remote port list */
465 rwlock_t port_list_lock; /* port list lock */
465 unsigned long req_no; /* unique FSF req number */ 466 unsigned long req_no; /* unique FSF req number */
466 struct list_head *req_list; /* list of pending reqs */ 467 struct list_head *req_list; /* list of pending reqs */
467 spinlock_t req_list_lock; /* request list lock */ 468 spinlock_t req_list_lock; /* request list lock */
@@ -504,7 +505,8 @@ struct zfcp_port {
504 wait_queue_head_t remove_wq; /* can be used to wait for 505 wait_queue_head_t remove_wq; /* can be used to wait for
505 refcount drop to zero */ 506 refcount drop to zero */
506 struct zfcp_adapter *adapter; /* adapter used to access port */ 507 struct zfcp_adapter *adapter; /* adapter used to access port */
507 struct list_head unit_list_head; /* head of logical unit list */ 508 struct list_head unit_list; /* head of logical unit list */
509 rwlock_t unit_list_lock; /* unit list lock */
508 atomic_t status; /* status of this remote port */ 510 atomic_t status; /* status of this remote port */
509 u64 wwnn; /* WWNN if known */ 511 u64 wwnn; /* WWNN if known */
510 u64 wwpn; /* WWPN */ 512 u64 wwpn; /* WWPN */
@@ -601,9 +603,6 @@ struct zfcp_fsf_req {
601struct zfcp_data { 603struct zfcp_data {
602 struct scsi_host_template scsi_host_template; 604 struct scsi_host_template scsi_host_template;
603 struct scsi_transport_template *scsi_transport_template; 605 struct scsi_transport_template *scsi_transport_template;
604 rwlock_t config_lock; /* serialises changes
605 to adapter/port/unit
606 lists */
607 struct mutex config_mutex; 606 struct mutex config_mutex;
608 struct kmem_cache *gpn_ft_cache; 607 struct kmem_cache *gpn_ft_cache;
609 struct kmem_cache *qtcb_cache; 608 struct kmem_cache *qtcb_cache;