diff options
author | Tejun Heo <htejun@gmail.com> | 2006-05-19 08:07:05 -0400 |
---|---|---|
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 f036ae4b8afb..2007b4b6e1b4 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) | |||
2745 | scsi_scan_target(&ap->host->shost_gendev, 0, i, 0, 0); | 2745 | scsi_scan_target(&ap->host->shost_gendev, 0, i, 0, 0); |
2746 | } | 2746 | } |
2747 | } | 2747 | } |
2748 | |||
2749 | /** | ||
2750 | * ata_schedule_scsi_eh - schedule EH for SCSI host | ||
2751 | * @shost: SCSI host to invoke error handling on. | ||
2752 | * | ||
2753 | * Schedule SCSI EH without scmd. This is a hack. | ||
2754 | * | ||
2755 | * LOCKING: | ||
2756 | * spin_lock_irqsave(host_set lock) | ||
2757 | **/ | ||
2758 | void ata_schedule_scsi_eh(struct Scsi_Host *shost) | ||
2759 | { | ||
2760 | unsigned long flags; | ||
2761 | |||
2762 | spin_lock_irqsave(shost->host_lock, flags); | ||
2763 | |||
2764 | if (scsi_host_set_state(shost, SHOST_RECOVERY) == 0 || | ||
2765 | scsi_host_set_state(shost, SHOST_CANCEL_RECOVERY) == 0) { | ||
2766 | shost->host_eh_scheduled++; | ||
2767 | scsi_eh_wakeup(shost); | ||
2768 | } | ||
2769 | |||
2770 | spin_unlock_irqrestore(shost->host_lock, flags); | ||
2771 | } | ||