aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/migrate.h
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2007-05-07 23:37:51 -0400
committerPaul Mackerras <paulus@samba.org>2007-05-07 23:37:51 -0400
commit02bbc0f09c90cefdb2837605c96a66c5ce4ba2e1 (patch)
tree04ef573cd4de095c500c9fc3477f4278c0b36300 /include/linux/migrate.h
parent7487a2245b8841c77ba9db406cf99a483b9334e9 (diff)
parent5b94f675f57e4ff16c8fda09088d7480a84dcd91 (diff)
Merge branch 'linux-2.6'
Diffstat (limited to 'include/linux/migrate.h')
-rw-r--r--include/linux/migrate.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/include/linux/migrate.h b/include/linux/migrate.h
index 75e55dcdeb18..e10a90a93b5d 100644
--- a/include/linux/migrate.h
+++ b/include/linux/migrate.h
@@ -2,18 +2,29 @@
2#define _LINUX_MIGRATE_H 2#define _LINUX_MIGRATE_H
3 3
4#include <linux/mm.h> 4#include <linux/mm.h>
5#include <linux/mempolicy.h>
6#include <linux/pagemap.h>
5 7
6typedef struct page *new_page_t(struct page *, unsigned long private, int **); 8typedef struct page *new_page_t(struct page *, unsigned long private, int **);
7 9
10#ifdef CONFIG_MIGRATION
8/* Check if a vma is migratable */ 11/* Check if a vma is migratable */
9static inline int vma_migratable(struct vm_area_struct *vma) 12static inline int vma_migratable(struct vm_area_struct *vma)
10{ 13{
11 if (vma->vm_flags & (VM_IO|VM_HUGETLB|VM_PFNMAP|VM_RESERVED)) 14 if (vma->vm_flags & (VM_IO|VM_HUGETLB|VM_PFNMAP|VM_RESERVED))
12 return 0; 15 return 0;
16 /*
17 * Migration allocates pages in the highest zone. If we cannot
18 * do so then migration (at least from node to node) is not
19 * possible.
20 */
21 if (vma->vm_file &&
22 gfp_zone(mapping_gfp_mask(vma->vm_file->f_mapping))
23 < policy_zone)
24 return 0;
13 return 1; 25 return 1;
14} 26}
15 27
16#ifdef CONFIG_MIGRATION
17extern int isolate_lru_page(struct page *p, struct list_head *pagelist); 28extern int isolate_lru_page(struct page *p, struct list_head *pagelist);
18extern int putback_lru_pages(struct list_head *l); 29extern int putback_lru_pages(struct list_head *l);
19extern int migrate_page(struct address_space *, 30extern int migrate_page(struct address_space *,
@@ -28,6 +39,8 @@ extern int migrate_vmas(struct mm_struct *mm,
28 const nodemask_t *from, const nodemask_t *to, 39 const nodemask_t *from, const nodemask_t *to,
29 unsigned long flags); 40 unsigned long flags);
30#else 41#else
42static inline int vma_migratable(struct vm_area_struct *vma)
43 { return 0; }
31 44
32static inline int isolate_lru_page(struct page *p, struct list_head *list) 45static inline int isolate_lru_page(struct page *p, struct list_head *list)
33 { return -ENOSYS; } 46 { return -ENOSYS; }