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)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 5 Jul 2010 18:10:31 +0000 (11:10 -0700)
commit 3842e835490cdf17013b30a788f6311bdcfd0571 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/ata/libata-sff.c

index 2ae15c3b22a7356ba89f08005b761d6e74f5b6f5..776a89599448331bae591b3986a429608d7ad4e0 100644 (file)
@@ -893,7 +893,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;