summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2003-09-09 10:20:33 -0700
committerLinus Torvalds <torvalds@home.osdl.org>2003-09-09 10:20:33 -0700
commitbe98a9cda529bb6d415e5c28ffea4d38a4484a90 (patch)
treebb57935e01afd78781018b3ed6d0dbc0cd8ed7c5 /include/linux
parent5335712e5238e6088f705a4707a9c35bc01e7250 (diff)
[PATCH] remap file pages MAP_NONBLOCK fix
From: Rajesh Venkatasubramanian <vrajesh@eecs.umich.edu> The remap_file_pages system call with MAP_NONBLOCK flag does not install file-ptes when the required pages are not found in the page cache. Modify the populate functions to install file-ptes if the mapping is non-linear and the required pages are not found in the page cache. Patch is for test4-mm6. Compiles and boots. Patch tested using the programs at: http://www-personal.engin.umich.edu/~vrajesh/linux/remap-file-pages/
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/mm.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 9f9743146b54..e7ad98ea59b7 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -432,6 +432,7 @@ extern pmd_t *FASTCALL(__pmd_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned lo
extern pte_t *FASTCALL(pte_alloc_kernel(struct mm_struct *mm, pmd_t *pmd, unsigned long address));
extern pte_t *FASTCALL(pte_alloc_map(struct mm_struct *mm, pmd_t *pmd, unsigned long address));
extern int install_page(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, struct page *page, pgprot_t prot);
+extern int install_file_pte(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, unsigned long pgoff, pgprot_t prot);
extern int handle_mm_fault(struct mm_struct *mm,struct vm_area_struct *vma, unsigned long address, int write_access);
extern int make_pages_present(unsigned long addr, unsigned long end);
extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);