]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
GFS2: Change truncate page allocation to be GFP_NOFS
authorBob Peterson <rpeterso@redhat.com>
Mon, 19 Mar 2012 19:25:50 +0000 (15:25 -0400)
committerSteven Whitehouse <swhiteho@redhat.com>
Tue, 20 Mar 2012 11:05:00 +0000 (11:05 +0000)
This patch changes the page allocation in gfs2_block_truncate_page
and two others to GFP_NOFS to avoid deadlock in low-memory conditions.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/bmap.c
fs/gfs2/quota.c

index 14a704015970f825b0dec962cd546b94e232355b..197c5c47e57763c7f8c926be7e8c527463107c0e 100644 (file)
@@ -60,7 +60,7 @@ static int gfs2_unstuffer_page(struct gfs2_inode *ip, struct buffer_head *dibh,
        int release = 0;
 
        if (!page || page->index) {
-               page = grab_cache_page(inode->i_mapping, 0);
+               page = find_or_create_page(inode->i_mapping, 0, GFP_NOFS);
                if (!page)
                        return -ENOMEM;
                release = 1;
@@ -930,7 +930,7 @@ static int gfs2_block_truncate_page(struct address_space *mapping, loff_t from)
        struct page *page;
        int err;
 
-       page = grab_cache_page(mapping, index);
+       page = find_or_create_page(mapping, index, GFP_NOFS);
        if (!page)
                return 0;
 
index a45b21b039157f822d08ba3579f5606e60198977..4856c66640bf1462ac801590cc0752492372fd01 100644 (file)
@@ -681,7 +681,7 @@ static int gfs2_adjust_quota(struct gfs2_inode *ip, loff_t loc,
        ptr = qp;
        nbytes = sizeof(struct gfs2_quota);
 get_a_page:
-       page = grab_cache_page(mapping, index);
+       page = find_or_create_page(mapping, index, GFP_NOFS);
        if (!page)
                return -ENOMEM;