diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/blkdev.h | 5 | ||||
-rw-r--r-- | include/scsi/scsi_device.h | 5 | ||||
-rw-r--r-- | include/scsi/scsi_host.h | 10 |
3 files changed, 15 insertions, 5 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 70ac2860a605..ef1afc178c0a 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -355,8 +355,11 @@ struct request_queue | |||
355 | unsigned long queue_flags; | 355 | unsigned long queue_flags; |
356 | 356 | ||
357 | /* | 357 | /* |
358 | * protects queue structures from reentrancy | 358 | * protects queue structures from reentrancy. ->__queue_lock should |
359 | * _never_ be used directly, it is queue private. always use | ||
360 | * ->queue_lock. | ||
359 | */ | 361 | */ |
362 | spinlock_t __queue_lock; | ||
360 | spinlock_t *queue_lock; | 363 | spinlock_t *queue_lock; |
361 | 364 | ||
362 | /* | 365 | /* |
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index 07d974051b0c..c018020d9160 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h | |||
@@ -43,8 +43,9 @@ struct scsi_device { | |||
43 | struct list_head siblings; /* list of all devices on this host */ | 43 | struct list_head siblings; /* list of all devices on this host */ |
44 | struct list_head same_target_siblings; /* just the devices sharing same target id */ | 44 | struct list_head same_target_siblings; /* just the devices sharing same target id */ |
45 | 45 | ||
46 | volatile unsigned short device_busy; /* commands actually active on low-level */ | 46 | /* this is now protected by the request_queue->queue_lock */ |
47 | spinlock_t sdev_lock; /* also the request queue_lock */ | 47 | unsigned int device_busy; /* commands actually active on |
48 | * low-level. protected by queue_lock. */ | ||
48 | spinlock_t list_lock; | 49 | spinlock_t list_lock; |
49 | struct list_head cmd_list; /* queue of in use SCSI Command structures */ | 50 | struct list_head cmd_list; /* queue of in use SCSI Command structures */ |
50 | struct list_head starved_entry; | 51 | struct list_head starved_entry; |
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index 27f2c4e8943a..1cee1e100943 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h | |||
@@ -448,8 +448,14 @@ struct Scsi_Host { | |||
448 | wait_queue_head_t host_wait; | 448 | wait_queue_head_t host_wait; |
449 | struct scsi_host_template *hostt; | 449 | struct scsi_host_template *hostt; |
450 | struct scsi_transport_template *transportt; | 450 | struct scsi_transport_template *transportt; |
451 | volatile unsigned short host_busy; /* commands actually active on low-level */ | 451 | |
452 | volatile unsigned short host_failed; /* commands that failed. */ | 452 | /* |
453 | * The following two fields are protected with host_lock; | ||
454 | * however, eh routines can safely access during eh processing | ||
455 | * without acquiring the lock. | ||
456 | */ | ||
457 | unsigned int host_busy; /* commands actually active on low-level */ | ||
458 | unsigned int host_failed; /* commands that failed. */ | ||
453 | 459 | ||
454 | unsigned short host_no; /* Used for IOCTL_GET_IDLUN, /proc/scsi et al. */ | 460 | unsigned short host_no; /* Used for IOCTL_GET_IDLUN, /proc/scsi et al. */ |
455 | int resetting; /* if set, it means that last_reset is a valid value */ | 461 | int resetting; /* if set, it means that last_reset is a valid value */ |