aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata/libata-core.c
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2007-08-08 09:30:31 -0400
committerJeff Garzik <jeff@garzik.org>2007-10-12 14:55:32 -0400
commit4f34337b1f6f7c1e0f2e3c938eb9eadd340593fe (patch)
tree71ab64c2bf8addb4b6de341957b03ac0ee84915f /drivers/ata/libata-core.c
parent50a99018787aa1aed812e09ad5b27647475656a0 (diff)
libata: Note that our cache flush code needs fixing up
Remembered this while doing auditing and code review versus the specs Signed-off-by: Alan Cox <alan@redhat.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/ata/libata-core.c')
-rw-r--r--drivers/ata/libata-core.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index d2141a04fff1..c0f3c78a2be0 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -5906,6 +5906,10 @@ int ata_flush_cache(struct ata_device *dev)
5906 else 5906 else
5907 cmd = ATA_CMD_FLUSH; 5907 cmd = ATA_CMD_FLUSH;
5908 5908
5909 /* This is wrong. On a failed flush we get back the LBA of the lost
5910 sector and we should (assuming it wasn't aborted as unknown) issue
5911 a further flush command to continue the writeback until it
5912 does not error */
5909 err_mask = ata_do_simple_cmd(dev, cmd); 5913 err_mask = ata_do_simple_cmd(dev, cmd);
5910 if (err_mask) { 5914 if (err_mask) {
5911 ata_dev_printk(dev, KERN_ERR, "failed to flush cache\n"); 5915 ata_dev_printk(dev, KERN_ERR, "failed to flush cache\n");