summaryrefslogtreecommitdiffstats
path: root/include/acpi
diff options
context:
space:
mode:
authorMichal Hocko <mhocko@suse.cz>2014-12-29 20:30:35 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-01-29 17:40:46 -0800
commit513c66820333a2cc7b54eaa6a7b5c34f6ffaf770 (patch)
treecb32c8623c58662257bd88bdacddbf34b44a3df1 /include/acpi
parent8326fa8ec22f770a900bfe869e7ced22fd42f3e8 (diff)
downloadlinux-stable-513c66820333a2cc7b54eaa6a7b5c34f6ffaf770.tar.gz
linux-stable-513c66820333a2cc7b54eaa6a7b5c34f6ffaf770.tar.bz2
linux-stable-513c66820333a2cc7b54eaa6a7b5c34f6ffaf770.zip
mm: get rid of radix tree gfp mask for pagecache_get_page
commit 45f87de57f8fad59302fd263dd81ffa4843b5b24 upstream. Commit 2457aec63745 ("mm: non-atomically mark page accessed during page cache allocation where possible") has added a separate parameter for specifying gfp mask for radix tree allocations. Not only this is less than optimal from the API point of view because it is error prone, it is also buggy currently because grab_cache_page_write_begin is using GFP_KERNEL for radix tree and if fgp_flags doesn't contain FGP_NOFS (mostly controlled by fs by AOP_FLAG_NOFS flag) but the mapping_gfp_mask has __GFP_FS cleared then the radix tree allocation wouldn't obey the restriction and might recurse into filesystem and cause deadlocks. This is the case for most filesystems unfortunately because only ext4 and gfs2 are using AOP_FLAG_NOFS. Let's simply remove radix_gfp_mask parameter because the allocation context is same for both page cache and for the radix tree. Just make sure that the radix tree gets only the sane subset of the mask (e.g. do not pass __GFP_WRITE). Long term it is more preferable to convert remaining users of AOP_FLAG_NOFS to use mapping_gfp_mask instead and simplify this interface even further. Reported-by: Dave Chinner <david@fromorbit.com> Signed-off-by: Michal Hocko <mhocko@suse.cz> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/acpi')
0 files changed, 0 insertions, 0 deletions