diff options
author | Tejun Heo <htejun@gmail.com> | 2006-01-22 23:09:37 -0500 |
---|---|---|
committer | Jeff Garzik <jgarzik@pobox.com> | 2006-01-26 22:36:28 -0500 |
commit | a72ec4ce6d3ae92e76baf5b2c65cc26e5e775e83 (patch) | |
tree | f5a177cc30c9b39d8ae7dcad29d03d27534b9f78 /include/linux/libata.h | |
parent | 041c5fc33cb7ed4fe5322585a611fb6e29a05d3a (diff) |
[PATCH] libata: implement and apply ata_eh_qc_complete/retry()
Implement ata_eh_qc_complete/retry() using scsi_eh_finish_cmd() and
scsi_eh_flush_done_q(). This removes all eh scsicmd finish hacks from
low level drivers.
This change was first suggested by Jeff Garzik.
Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
Diffstat (limited to 'include/linux/libata.h')
-rw-r--r-- | include/linux/libata.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/libata.h b/include/linux/libata.h index b1ea2f98bfbb..576788de962a 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -398,6 +398,7 @@ struct ata_port { | |||
398 | unsigned long pio_task_timeout; | 398 | unsigned long pio_task_timeout; |
399 | 399 | ||
400 | u32 msg_enable; | 400 | u32 msg_enable; |
401 | struct list_head eh_done_q; | ||
401 | 402 | ||
402 | void *private_data; | 403 | void *private_data; |
403 | }; | 404 | }; |
@@ -490,6 +491,8 @@ extern int ata_scsi_detect(struct scsi_host_template *sht); | |||
490 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); | 491 | extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg); |
491 | extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); | 492 | extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)); |
492 | extern int ata_scsi_error(struct Scsi_Host *host); | 493 | extern int ata_scsi_error(struct Scsi_Host *host); |
494 | extern void ata_eh_qc_complete(struct ata_queued_cmd *qc); | ||
495 | extern void ata_eh_qc_retry(struct ata_queued_cmd *qc); | ||
493 | extern int ata_scsi_release(struct Scsi_Host *host); | 496 | extern int ata_scsi_release(struct Scsi_Host *host); |
494 | extern unsigned int ata_host_intr(struct ata_port *ap, struct ata_queued_cmd *qc); | 497 | extern unsigned int ata_host_intr(struct ata_port *ap, struct ata_queued_cmd *qc); |
495 | extern int ata_scsi_device_resume(struct scsi_device *); | 498 | extern int ata_scsi_device_resume(struct scsi_device *); |