Commit:     ea125892a17f43919c726777ed1e4929d41e7984
Parent:     8d98a690f58e0d6ecf424b7ca84488475cf87bd9
Author:     Christoph Lameter <[EMAIL PROTECTED]>
AuthorDate: Wed May 16 22:11:21 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Thu May 17 05:23:06 2007 -0700

    Fix page allocation flags in grow_dev_page()
    grow_dev_page() simply passes GFP_NOFS to find_or_create_page.  This means
    the allocation of radix tree nodes is done with GFP_NOFS and the allocation
    of a new page is done using GFP_NOFS.
    The mapping has a flags field that contains the necessary allocation flags
    for the page cache allocation.  These need to be consulted in order to get
    DMA and HIGHMEM allocations etc right.  And yes a blockdev could be
    allowing Highmem allocations if its a ramdisk.
    Cc: Hugh Dickins <[EMAIL PROTECTED]>
    Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
 fs/buffer.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/fs/buffer.c b/fs/buffer.c
index 3deeb88..49590d5 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -981,7 +981,8 @@ grow_dev_page(struct block_device *bdev, sector_t block,
        struct page *page;
        struct buffer_head *bh;
-       page = find_or_create_page(inode->i_mapping, index, GFP_NOFS);
+       page = find_or_create_page(inode->i_mapping, index,
+               mapping_gfp_mask(inode->i_mapping) & ~__GFP_FS);
        if (!page)
                return NULL;
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to