[<prev] [next>] [day] [month] [year] [list]
Message-ID: <5139DB90.5090302@gmail.com>
Date: Fri, 08 Mar 2013 20:37:36 +0800
From: Shuge <shugelinux@...il.com>
To: linux-kernel@...r.kernel.org, linux-mm@...ck.org,
linux-ext4@...r.kernel.org
CC: Kevin <kevin@...winneretch.com>, Jan Kara <jack@...e.cz>,
Theodore Ts'o <tytso@....edu>, Jens Axboe <axboe@...nel.dk>
Subject: [PATCH] bounce:fix bug, avoid to flush dcache on slab page from jbd2.
The bounce accept slab pages from jbd2, and flush dcache on them.
When enabling VM_DEBUG, it will tigger VM_BUG_ON in page_mapping().
So, check PageSlab to avoid it in __blk_queue_bounce().
Bug URL: http://lkml.org/lkml/2013/3/7/56
Signed-off-by: shuge <shuge@...winnertech.com>
---
mm/bounce.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/mm/bounce.c b/mm/bounce.c
index 4e9ae72..f352c03 100644
--- a/mm/bounce.c
+++ b/mm/bounce.c
@@ -214,7 +214,8 @@ static void __blk_queue_bounce(struct request_queue
*q, struct bio **bio_orig,
if (rw == WRITE) {
char *vto, *vfrom;
- flush_dcache_page(from->bv_page);
+ if (unlikely(!PageSlab(from->bv_page)))
+ flush_dcache_page(from->bv_page);
vto = page_address(to->bv_page) + to->bv_offset;
vfrom = kmap(from->bv_page) + from->bv_offset;
memcpy(vto, vfrom, to->bv_len);
--
1.7.9.5
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists