libata: don't flush dcache on slab pages
authorSebastian Andrzej Siewior <sebastian@breakpoint.cc>
Sun, 21 Mar 2010 21:52:23 +0000 (22:52 +0100)
committerJeff Garzik <jgarzik@redhat.com>
Fri, 14 May 2010 21:50:05 +0000 (17:50 -0400)
page_mapping() check this via VM_BUG_ON(PageSlab(page)) so we bug here
with the according debuging turned on.

Future TODO: replace this with a flush_dcache_page_for_pio() API

Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Cc: stable@kernel.org
drivers/ata/libata-sff.c

index b7f7f8557fee2445566c3722567b82b8ac07c3f0..c0a90543889657212331d516f128536aec201083 100644 (file)
@@ -919,7 +919,7 @@ static void ata_pio_sector(struct ata_queued_cmd *qc)
                                       do_write);
        }
 
-       if (!do_write)
+       if (!do_write && !PageSlab(page))
                flush_dcache_page(page);
 
        qc->curbytes += qc->sect_size;