• T
    [PATCH] libata-eh-fw: use special reserved tag and qc for internal commands · 2ab7db1f
    Tejun Heo 提交于
    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: NTejun Heo <htejun@gmail.com>
    2ab7db1f
libata.h 29.4 KB