Make XFS use block_page_mkwrite
Subsystems (2)
PATCH 1/1 Make XFS use block_page_mkwrite
Implement ->page_mkwrite in XFS.
Signed-off-by Dave Chinner <[email protected]>
--- fs/xfs/linux-2.6/xfs_file.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
fs/xfs/linux-2.6/xfs_file.c +16 -0
@@ -446,6 +446,20 @@ xfs_file_open_exec( }#endif /* HAVE_FOP_OPEN_EXEC */ +/* +* mmap()d file has taken write protection fault and is being made +* writable. We can set the page state up correctly for a writable +* page, which means we can do correct delalloc accounting (ENOSPC +* checking!) and unwritten extent mapping. +*/ +STATIC int +xfs_vm_page_mkwrite ( +struct vm_area_struct *vma, +struct page *page) +{ +return block_page_mkwrite (vma, page, xfs_get_blocks); +} +const struct file_operations xfs_file_operations = { .llseek = generic_file_llseek, .read = do_sync_read,
@@ -503,12 +517,14 @@ const struct file_operations xfs_dir_filstatic struct vm_operations_struct xfs_file_vm_ops = { .nopage = filemap_nopage, .populate = filemap_populate, + .page_mkwrite = xfs_vm_page_mkwrite, }; #ifdef HAVE_DMAPI static struct vm_operations_struct xfs_dmapi_file_vm_ops = { .nopage = xfs_vm_nopage, .populate = filemap_populate, + .page_mkwrite = xfs_vm_page_mkwrite, #ifdef HAVE_VMOP_MPROTECT .mprotect = xfs_vm_mprotect, #endif