libata: flush is an IO command
authorTejun Heo <htejun@gmail.com>
Fri, 26 Oct 2007 06:53:59 +0000 (15:53 +0900)
committerJeff Garzik <jeff@garzik.org>
Tue, 30 Oct 2007 13:59:42 +0000 (09:59 -0400)
ATA_QCFLAG_IO is used to mark commands which are used to perform
regluar IO transfers via block layer.  These commands are assumed to
be valid and taken more seriously during error handling.  Cache flush
is used by regular IO path and necessary for data integrity.  Mark it
with ATA_QCFLAG_IO.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
drivers/ata/libata-scsi.c

index 93bd36c19690bd4013381131b84fa8d13671cfcc..6ef5ecb917ce36fbcef6a046200cd3ce3a6060fb 100644 (file)
@@ -1108,6 +1108,9 @@ static unsigned int ata_scsi_flush_xlat(struct ata_queued_cmd *qc)
        else
                tf->command = ATA_CMD_FLUSH;
 
+       /* flush is critical for IO integrity, consider it an IO command */
+       qc->flags |= ATA_QCFLAG_IO;
+
        return 0;
 }