On Thu, 17 May 2007, Andrew Morton wrote:
On Thu, 17 May 2007 11:12:03 +0100 (IST) Mel Gorman <[EMAIL PROTECTED]> wrote:--- linux-2.6.22-rc1-mm1-025_gfphighuser/fs/buffer.c 2007-05-16 22:55:50.000000000 +0100 +++ linux-2.6.22-rc1-mm1-030_pagecache_mark/fs/buffer.c 2007-05-16 23:07:30.000000000 +0100 @@ -1009,7 +1009,7 @@ grow_dev_page(struct block_device *bdev, struct buffer_head *bh; page = find_or_create_page(inode->i_mapping, index, - GFP_NOFS|__GFP_RECLAIMABLE); + GFP_NOFS_PAGECACHE); if (!page) return NULL;I ended up with page = find_or_create_page(inode->i_mapping, index, (mapping_gfp_mask(inode->i_mapping) & ~__GFP_FS)|__GFP_MOVABLE); here.
That looks like it'll work fine with respects to grouping by mobility but there is a slight functional difference worth noting. Specifically, the old code did not obey cpuset limits because __GFP_HARDWALL was not set. This change gets it's GFP mask from bdget() calling mapping_set_gfp_mask() which is GFP_USER and so will obey CPUSET limits. This new version looks more correct.
-- Mel Gorman Part-time Phd Student Linux Technology Center University of Limerick IBM Dublin Software Lab - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

