From: Andrew Morton - We put a space between the linux/ includes and the asm/ includes. - Fix nasty "internal flags start at 20" thing - degnuify some conditionals Cc: Christoph Lameter Signed-off-by: Andrew Morton --- include/linux/mempolicy.h | 1 + mm/mempolicy.c | 37 ++++++++++++++----------------------- 2 files changed, 15 insertions(+), 23 deletions(-) diff -puN include/linux/mempolicy.h~swap-migration-v5-mpol_mf_move-interface-tweaks include/linux/mempolicy.h --- devel/include/linux/mempolicy.h~swap-migration-v5-mpol_mf_move-interface-tweaks 2005-11-14 22:26:24.000000000 -0800 +++ devel-akpm/include/linux/mempolicy.h 2005-11-14 22:26:24.000000000 -0800 @@ -24,6 +24,7 @@ #define MPOL_MF_STRICT (1<<0) /* Verify existing pages in the mapping */ #define MPOL_MF_MOVE (1<<1) /* Move pages owned by this process to conform to mapping */ #define MPOL_MF_MOVE_ALL (1<<2) /* Move every page to conform to mapping */ +#define MPOL_MF_INTERNAL (1<<3) /* Internal flags start here */ #ifdef __KERNEL__ diff -puN mm/mempolicy.c~swap-migration-v5-mpol_mf_move-interface-tweaks mm/mempolicy.c --- devel/mm/mempolicy.c~swap-migration-v5-mpol_mf_move-interface-tweaks 2005-11-14 22:26:24.000000000 -0800 +++ devel-akpm/mm/mempolicy.c 2005-11-14 22:26:24.000000000 -0800 @@ -84,11 +84,12 @@ #include #include #include + #include #include /* Internal MPOL_MF_xxx flags */ -#define MPOL_MF_DISCONTIG_OK (1<<20) /* Skip checks for continuous vmas */ +#define MPOL_MF_DISCONTIG_OK (MPOL_MF_INTERNAL << 0) /* Skip checks for continuous vmas */ static kmem_cache_t *policy_cache; static kmem_cache_t *sn_cache; @@ -216,20 +217,16 @@ static void migrate_page_add(struct vm_a /* * Avoid migrating a page that is shared by others and not writable. */ - if ((flags & MPOL_MF_MOVE_ALL) || - !page->mapping || - PageAnon(page) || + if ((flags & MPOL_MF_MOVE_ALL) || !page->mapping || PageAnon(page) || mapping_writably_mapped(page->mapping) || - single_mm_mapping(vma->vm_mm, page->mapping) - ) { + single_mm_mapping(vma->vm_mm, page->mapping)) { int rc = isolate_lru_page(page); if (rc == 1) list_add(&page->lru, pagelist); /* - * If the isolate attempt was not successful - * then we just encountered an unswappable - * page. Something must be wrong. + * If the isolate attempt was not successful then we just + * encountered an unswappable page. Something must be wrong. */ WARN_ON(rc == 0); } @@ -334,13 +331,8 @@ static inline int check_pgd_range(struct /* Check if a vma is migratable */ static inline int vma_migratable(struct vm_area_struct *vma) { - if (vma->vm_flags & ( - VM_LOCKED | - VM_IO | - VM_RESERVED | - VM_DENYWRITE | - VM_SHM - )) + if (vma->vm_flags & + (VM_LOCKED|VM_IO|VM_RESERVED|VM_DENYWRITE|VM_SHM)) return 0; return 1; } @@ -360,8 +352,7 @@ check_range(struct mm_struct *mm, unsign first = find_vma(mm, start); if (!first) return ERR_PTR(-EFAULT); - if (first->vm_flags & VM_RESERVED && - !(flags & MPOL_MF_DISCONTIG_OK)) + if (first->vm_flags & VM_RESERVED && !(flags & MPOL_MF_DISCONTIG_OK)) return ERR_PTR(-EACCES); prev = NULL; for (vma = first; vma && vma->vm_start < end; vma = vma->vm_next) { @@ -374,9 +365,9 @@ check_range(struct mm_struct *mm, unsign if (!is_vm_hugetlb_page(vma) && ((flags & MPOL_MF_STRICT) || ((flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) && - vma_migratable(vma) - ))) { + vma_migratable(vma)))) { unsigned long endvma = vma->vm_end; + if (endvma > end) endvma = end; if (vma->vm_start > start) @@ -458,7 +449,7 @@ long do_mbind(unsigned long start, unsig int err; LIST_HEAD(pagelist); - if ((flags & ~(unsigned long)(MPOL_MF_STRICT | MPOL_MF_MOVE | MPOL_MF_MOVE_ALL)) + if ((flags & ~(unsigned long)(MPOL_MF_STRICT|MPOL_MF_MOVE|MPOL_MF_MOVE_ALL)) || mode > MPOL_MAX) return -EINVAL; if ((flags & MPOL_MF_MOVE_ALL) && !capable(CAP_SYS_RESOURCE)) @@ -503,8 +494,8 @@ long do_mbind(unsigned long start, unsig err = mbind_range(vma, start, end, new); if (!list_empty(&pagelist)) migrate_pages(&pagelist, NULL); - if (!err && !list_empty(&pagelist) && (flags & MPOL_MF_STRICT)) - err = -EIO; + if (!err && !list_empty(&pagelist) && (flags & MPOL_MF_STRICT)) + err = -EIO; } if (!list_empty(&pagelist)) putback_lru_pages(&pagelist); _