Procházet zdrojové kódy

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>
Alan Cox před 18 roky
rodič
revize
4f34337b1f
1 změnil soubory, kde provedl 4 přidání a 0 odebrání
  1. 4 0
      drivers/ata/libata-core.c

+ 4 - 0
drivers/ata/libata-core.c

@@ -5906,6 +5906,10 @@ int ata_flush_cache(struct ata_device *dev)
 	else
 		cmd = ATA_CMD_FLUSH;
 
+	/* This is wrong. On a failed flush we get back the LBA of the lost
+	   sector and we should (assuming it wasn't aborted as unknown) issue
+	   a further flush command to continue the writeback until it 
+	   does not error */
 	err_mask = ata_do_simple_cmd(dev, cmd);
 	if (err_mask) {
 		ata_dev_printk(dev, KERN_ERR, "failed to flush cache\n");