summaryrefslogtreecommitdiffstats
path: root/fs/gfs2
diff options
context:
space:
mode:
authorOleg Drokin <green@linuxhacker.ru>2015-02-01 22:59:54 -0500
committerSteven Whitehouse <swhiteho@redhat.com>2015-02-04 09:58:41 +0000
commit7456a37d55ced3928fd96615fde0dd739985f0dc (patch)
treee16021d877d8b6a1b022031710721a2d977627dd /fs/gfs2
parent45094a58b1f56fd5942545659f7c1829ae4520eb (diff)
downloadlinux-7456a37d55ced3928fd96615fde0dd739985f0dc.tar.gz
linux-7456a37d55ced3928fd96615fde0dd739985f0dc.tar.bz2
linux-7456a37d55ced3928fd96615fde0dd739985f0dc.zip
GFS2: use __vmalloc GFP_NOFS for fs-related allocations.
leaf_dealloc uses vzalloc as a fallback to kzalloc(GFP_NOFS), so it clearly does not want any shrinker activity within the fs itself. convert vzalloc into __vmalloc(GFP_NOFS|__GFP_ZERO) to better achieve this goal. Signed-off-by: Oleg Drokin <green@linuxhacker.ru> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2')
-rw-r--r--fs/gfs2/dir.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/gfs2/dir.c b/fs/gfs2/dir.c
index c5a34f09e228..6371192961e2 100644
--- a/fs/gfs2/dir.c
+++ b/fs/gfs2/dir.c
@@ -1896,7 +1896,8 @@ static int leaf_dealloc(struct gfs2_inode *dip, u32 index, u32 len,
ht = kzalloc(size, GFP_NOFS | __GFP_NOWARN);
if (ht == NULL)
- ht = vzalloc(size);
+ ht = __vmalloc(size, GFP_NOFS | __GFP_NOWARN | __GFP_ZERO,
+ PAGE_KERNEL);
if (!ht)
return -ENOMEM;