[PATCH] libata-eh-fw: update ata_exec_internal() for new EH
authorTejun Heo <htejun@gmail.com>
Mon, 15 May 2006 11:58:14 +0000 (20:58 +0900)
committerTejun Heo <htejun@gmail.com>
Mon, 15 May 2006 11:58:14 +0000 (20:58 +0900)
commitd95a717f579e81061830a308125c89f5858f740a
treeefa4b35ffcd1f8f3eabe5cb27ffc128313378064
parentad9e27624479bd167dd7eac0cea4bb3ad13bc926
[PATCH] libata-eh-fw: update ata_exec_internal() for new EH

Update ata_exec_internal() such that it uses new EH framework.
->post_internal_cmd() is always invoked regardless of completion
status.  Also, when ata_exec_internal() detects a timeout condition
and new EH is in place, it freezes the port as timeout for normal
commands would do.

Note that ata_port_flush_task() is called regardless of
wait_for_completion status.  This is necessary as exceptions unrelated
to the qc can abort the qc, in which case PIO task could still be
running after the wait for completion returns.

Signed-off-by: Tejun Heo <htejun@gmail.com>
drivers/scsi/libata-core.c