From 31d3e90aabded5295f99969845f243a3d1533fab Mon Sep 17 00:00:00 2001 From: Mike Snitzer Date: Tue, 6 Jul 2010 16:47:28 -0400 Subject: [PATCH 7/8] block: disallow FS recursion from sb_issue_discard allocation BZ 610054 Filesystems can call sb_issue_discard on a memory reclaim path (e.g. ext4 calls sb_issue_discard during journal commit). Use GFP_NOFS in sb_issue_discard to avoid recursing back into the FS. Reported-by: Mikulas Patocka Signed-off-by: Mike Snitzer --- include/linux/blkdev.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 84a6f00..124e007 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -1033,7 +1033,7 @@ static inline int sb_issue_discard(struct super_block *sb, { block <<= (sb->s_blocksize_bits - 9); nr_blocks <<= (sb->s_blocksize_bits - 9); - return blkdev_issue_discard(sb->s_bdev, block, nr_blocks, GFP_KERNEL, + return blkdev_issue_discard(sb->s_bdev, block, nr_blocks, GFP_NOFS, DISCARD_FL_BARRIER); } -- 1.6.6.1