• Tejun Heo's avatar
    libata: relocate and fix post-command processing · 4dbfa39b
    Tejun Heo authored
    Some commands need post-processing after successful completion.  This
    was done in ata_scsi_qc_complete() till now but this has the following
    problems.
    
    * Post-command processing gets executed when qc is completed from EH.
      Some qc's are retried from EH with zero err_mask and thus triggers
      unnecessary/incorrect post-command processing.
    
    * Command post processing doesn't belong to SAT layer.
    
    * Link-wide revalidation was scheduled where device revalidation
      suffices.
    
    This patch moves post-command processing to success completion path of
    ata_qc_complete() which is travelled iff the command is going to be
    completed without passing through EH and updates post-command
    processing such that device-specific action is used.  While at it,
    restructure code a bit for readability.
    Signed-off-by: default avatarTejun Heo <htejun@gmail.com>
    Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
    4dbfa39b
libata-core.c 185 KB