Messages in this thread | | | Date | Thu, 1 Nov 2007 04:02:44 -0400 | From | "Jaya Kumar" <> | Subject | Re: vm_ops.page_mkwrite() fails with vmalloc on 2.6.23 |
| |
On Oct 30, 2007 11:47 AM, Hugh Dickins <hugh@veritas.com> wrote: > > I don't understand why you suggested an anon_vma, nor why Jaya is > suggesting a private list. All vmas mapping /dev/fb0 will be kept > in the prio_tree rooted in its struct address_space (__vma_link_file > in mm/mmap.c). And page_mkclean gets page_mkclean_file to walk that > very tree. The missing part is just the setting of page->mapping to > point to that struct address_space (and clearing it before finally > freeing the pages), and the setting of page->index as you described. > Isn't it?
Oops, sorry that I missed that. Now I understand. I think:
page->mapping = vma->vm_file->f_mapping page->index = ((addr - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff
at nopage time and then before the driver vfrees, I'll clear mapping for all those pages.
Thanks, jaya - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |