summaryrefslogtreecommitdiff
path: root/include/linux/libata.h
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2006-01-23 13:09:37 +0900
committerJeff Garzik <jgarzik@pobox.com>2006-01-26 22:36:28 -0500
commita72ec4ce6d3ae92e76baf5b2c65cc26e5e775e83 (patch)
treef5a177cc30c9b39d8ae7dcad29d03d27534b9f78 /include/linux/libata.h
parent041c5fc33cb7ed4fe5322585a611fb6e29a05d3a (diff)
downloadlwn-a72ec4ce6d3ae92e76baf5b2c65cc26e5e775e83.tar.gz
lwn-a72ec4ce6d3ae92e76baf5b2c65cc26e5e775e83.zip
[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.h3
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 {
unsigned long pio_task_timeout;
u32 msg_enable;
+ struct list_head eh_done_q;
void *private_data;
};
@@ -490,6 +491,8 @@ extern int ata_scsi_detect(struct scsi_host_template *sht);
extern int ata_scsi_ioctl(struct scsi_device *dev, int cmd, void __user *arg);
extern int ata_scsi_queuecmd(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *));
extern int ata_scsi_error(struct Scsi_Host *host);
+extern void ata_eh_qc_complete(struct ata_queued_cmd *qc);
+extern void ata_eh_qc_retry(struct ata_queued_cmd *qc);
extern int ata_scsi_release(struct Scsi_Host *host);
extern unsigned int ata_host_intr(struct ata_port *ap, struct ata_queued_cmd *qc);
extern int ata_scsi_device_resume(struct scsi_device *);