diff options
author | Tejun Heo <htejun@gmail.com> | 2006-05-19 21:07:05 +0900 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-05-20 00:39:08 -0400 |
commit | f8bbfc247efb0e5fa69094614380768ce79afe17 (patch) | |
tree | 726b8eb9d41b5f7036c987b80282b90440a295ed /drivers/scsi/libata-scsi.c | |
parent | a20f33ffde8ba5fb27666aa1e228a45b7e3b8dcb (diff) |
[PATCH] SCSI: make scsi_implement_eh() generic API for SCSI transports
libata implemented a feature to schedule EH without an associated EH
by manipulating shost->host_eh_scheduled in ata_scsi_schedule_eh()
directly. Move this function to scsi_error.c and rename it to
scsi_schedule_eh(). It is now an exported API for SCSI transports and
exported via new header file drivers/scsi/scsi_transport_api.h
This patch also de-export scsi_eh_wakeup() which was exported
specifically for ata_scsi_schedule_eh().
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/scsi/libata-scsi.c')
-rw-r--r-- | drivers/scsi/libata-scsi.c | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/drivers/scsi/libata-scsi.c b/drivers/scsi/libata-scsi.c index f036ae4b8af..2007b4b6e1b 100644 --- a/drivers/scsi/libata-scsi.c +++ b/drivers/scsi/libata-scsi.c @@ -2745,27 +2745,3 @@ void ata_scsi_scan_host(struct ata_port *ap) scsi_scan_target(&ap->host->shost_gendev, 0, i, 0, 0); } } - -/** - * ata_schedule_scsi_eh - schedule EH for SCSI host - * @shost: SCSI host to invoke error handling on. - * - * Schedule SCSI EH without scmd. This is a hack. - * - * LOCKING: - * spin_lock_irqsave(host_set lock) - **/ -void ata_schedule_scsi_eh(struct Scsi_Host *shost) -{ - unsigned long flags; - - spin_lock_irqsave(shost->host_lock, flags); - - if (scsi_host_set_state(shost, SHOST_RECOVERY) == 0 || - scsi_host_set_state(shost, SHOST_CANCEL_RECOVERY) == 0) { - shost->host_eh_scheduled++; - scsi_eh_wakeup(shost); - } - - spin_unlock_irqrestore(shost->host_lock, flags); -} |