diff options
| author | Andrew Morton <akpm@osdl.org> | 2003-09-09 10:20:33 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.osdl.org> | 2003-09-09 10:20:33 -0700 |
| commit | be98a9cda529bb6d415e5c28ffea4d38a4484a90 (patch) | |
| tree | bb57935e01afd78781018b3ed6d0dbc0cd8ed7c5 /include/linux | |
| parent | 5335712e5238e6088f705a4707a9c35bc01e7250 (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.h | 1 |
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); |
