From: Hugh Dickins Date: Thu, 3 Apr 2008 22:35:22 +0000 (+0100) Subject: splice: use mapping_gfp_mask X-Git-Tag: MMI-PSA29.97-13-9~35746 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=4cd13504652d28e16bf186c6bb2bbb3725369383;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git splice: use mapping_gfp_mask The loop block driver is careful to mask __GFP_IO|__GFP_FS out of its mapping_gfp_mask, to avoid hangs under memory pressure. But nowadays it uses splice, usually going through __generic_file_splice_read. That must use mapping_gfp_mask instead of GFP_KERNEL to avoid those hangs. Signed-off-by: Hugh Dickins Cc: Jens Axboe Cc: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/fs/splice.c b/fs/splice.c index 0670c915cd35..a861bb318ac8 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -320,7 +320,7 @@ __generic_file_splice_read(struct file *in, loff_t *ppos, break; error = add_to_page_cache_lru(page, mapping, index, - GFP_KERNEL); + mapping_gfp_mask(mapping)); if (unlikely(error)) { page_cache_release(page); if (error == -EEXIST)