瀏覽代碼

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 18 年之前
父節點
當前提交
4f34337b1f
共有 1 個文件被更改,包括 4 次插入0 次删除
  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");