[PATCH] libata-eh-fw: use special reserved tag and qc for internal commands
authorTejun Heo <htejun@gmail.com>
Mon, 15 May 2006 11:58:02 +0000 (20:58 +0900)
committerTejun Heo <htejun@gmail.com>
Mon, 15 May 2006 11:58:02 +0000 (20:58 +0900)
commit2ab7db1ff1d64a2ba389d0692d532f42a15f1f72
treec676e2796896e6856fda6cc6598d5670d06b5c1c
parentdc2b3515868a254b3d653d77844bff93c5d4c095
[PATCH] libata-eh-fw: use special reserved tag and qc for internal commands

New EH may issue internal commands to recover from error while failed
qc's are still hanging around.  To allow such usage, reserve tag
ATA_MAX_QUEUE-1 for internal command.  This also makes it easy to tell
whether a qc is for internal command or not.  ata_tag_internal() test
implements this test.

To avoid breaking existing drivers, ata_exec_internal() uses
ATA_TAG_INTERNAL only for drivers which implement ->error_handler.
For drivers using old EH, tag 0 is used.  Note that this makes
ata_tag_internal() test valid only when ->error_handler is
implemented.  This is okay as drivers on old EH should not and does
not have any reason to use ata_tag_internal().

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