Re: [RFC]md: using GFP_NOIO to allocate bio for flush request
From: Shaohua Li <shli@kernel.org>
Date: 2012-05-08 10:18:00
From: Shaohua Li <shli@kernel.org>
Date: 2012-05-08 10:18:00
On Mon, Apr 16, 2012 at 01:32:06PM +0800, Shaohua Li wrote:
flush request is issued in transaction commit code path usually, so looks using GFP_KERNEL to allocate memory for flush request bio falls into the classic deadlock issue. dm already gets it right.
ping!
Signed-off-by: Shaohua Li <redacted> --- drivers/md/md.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: linux/drivers/md/md.c ===================================================================--- linux.orig/drivers/md/md.c 2012-04-13 10:03:58.395497650 +0800 +++ linux/drivers/md/md.c 2012-04-13 10:04:37.445497882 +0800@@ -450,7 +450,7 @@ static void submit_flushes(struct work_s atomic_inc(&rdev->nr_pending); atomic_inc(&rdev->nr_pending); rcu_read_unlock(); - bi = bio_alloc_mddev(GFP_KERNEL, 0, mddev); + bi = bio_alloc_mddev(GFP_NOIO, 0, mddev); bi->bi_end_io = md_end_flush; bi->bi_private = rdev; bi->bi_bdev = rdev->bdev;