shmem support allocates pages for two purposes. Firstly, shmem_dir_alloc()
allocates pages to track swap vectors. These are not movable so this
patch clears all mobility-flags related to the allocation. Secondly,
shmem_alloc_pages() allocates pages on behalf of shmem_getpage(), whose
flags come from a file mapping which already sets the appropriate mobility
flags. These allocations do not need to be explicitly flagged so this patch
removes the unnecessary annotations.

Signed-off-by: Mel Gorman <[EMAIL PROTECTED]>
Acked-by: Andy Whitcroft <[EMAIL PROTECTED]>
Acked-by: Christoph Lameter <[EMAIL PROTECTED]>
---

 shmem.c |   11 ++++-------
 1 file changed, 4 insertions(+), 7 deletions(-)

diff -rup -X /usr/src/patchset-0.6/bin//dontdiff 
linux-2.6.22-rc1-mm1-010_biomovable/mm/shmem.c 
linux-2.6.22-rc1-mm1-012_shmem/mm/shmem.c
--- linux-2.6.22-rc1-mm1-010_biomovable/mm/shmem.c      2007-05-16 
10:54:18.000000000 +0100
+++ linux-2.6.22-rc1-mm1-012_shmem/mm/shmem.c   2007-05-16 23:02:37.000000000 
+0100
@@ -96,9 +96,9 @@ static inline struct page *shmem_dir_all
         * BLOCKS_PER_PAGE on indirect pages, assume PAGE_CACHE_SIZE:
         * might be reconsidered if it ever diverges from PAGE_SIZE.
         *
-        * __GFP_MOVABLE is masked out as swap vectors cannot move
+        * Mobility flags are masked out as swap vectors cannot move
         */
-       return alloc_pages((gfp_mask & ~__GFP_MOVABLE) | __GFP_ZERO,
+       return alloc_pages((gfp_mask & ~GFP_MOVABLE_MASK) | __GFP_ZERO,
                                PAGE_CACHE_SHIFT-PAGE_SHIFT);
 }
 
@@ -1054,9 +1054,7 @@ shmem_alloc_page(gfp_t gfp, struct shmem
        pvma.vm_policy = mpol_shared_policy_lookup(&info->policy, idx);
        pvma.vm_pgoff = idx;
        pvma.vm_end = PAGE_SIZE;
-       page = alloc_page_vma(
-                       set_migrateflags(gfp | __GFP_ZERO, __GFP_RECLAIMABLE),
-                                                               &pvma, 0);
+       page = alloc_page_vma(gfp | __GFP_ZERO, &pvma, 0);
        mpol_free(pvma.vm_policy);
        return page;
 }
@@ -1076,8 +1074,7 @@ shmem_swapin(struct shmem_inode_info *in
 static inline struct page *
 shmem_alloc_page(gfp_t gfp,struct shmem_inode_info *info, unsigned long idx)
 {
-       return alloc_page(
-                       set_migrateflags(gfp | __GFP_ZERO, __GFP_RECLAIMABLE));
+       return alloc_page(gfp | __GFP_ZERO);
 }
 #endif
 
-
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/

Reply via email to