Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit edca4a38 authored by Mike Snitzer's avatar Mike Snitzer Committed by Jens Axboe
Browse files

block: disallow FS recursion from sb_issue_discard allocation



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: default avatarMikulas Patocka <mpatocka@redhat.com>
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
Signed-off-by: default avatarJens Axboe <jaxboe@fusionio.com>
parent f6c4c8e1
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -933,7 +933,7 @@ static inline int sb_issue_discard(struct super_block *sb,
{
{
	block <<= (sb->s_blocksize_bits - 9);
	block <<= (sb->s_blocksize_bits - 9);
	nr_blocks <<= (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,
				   BLKDEV_IFL_WAIT | BLKDEV_IFL_BARRIER);
				   BLKDEV_IFL_WAIT | BLKDEV_IFL_BARRIER);
}
}