aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs')
-rw-r--r--fs/xfs/linux-2.6/xfs_file.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c
index cbcd40c8c2a0..b4c936485d11 100644
--- a/fs/xfs/linux-2.6/xfs_file.c
+++ b/fs/xfs/linux-2.6/xfs_file.c
@@ -413,6 +413,20 @@ xfs_file_open_exec(
413} 413}
414#endif /* HAVE_FOP_OPEN_EXEC */ 414#endif /* HAVE_FOP_OPEN_EXEC */
415 415
416/*
417 * mmap()d file has taken write protection fault and is being made
418 * writable. We can set the page state up correctly for a writable
419 * page, which means we can do correct delalloc accounting (ENOSPC
420 * checking!) and unwritten extent mapping.
421 */
422STATIC int
423xfs_vm_page_mkwrite(
424 struct vm_area_struct *vma,
425 struct page *page)
426{
427 return block_page_mkwrite(vma, page, xfs_get_blocks);
428}
429
416const struct file_operations xfs_file_operations = { 430const struct file_operations xfs_file_operations = {
417 .llseek = generic_file_llseek, 431 .llseek = generic_file_llseek,
418 .read = do_sync_read, 432 .read = do_sync_read,
@@ -466,12 +480,14 @@ const struct file_operations xfs_dir_file_operations = {
466static struct vm_operations_struct xfs_file_vm_ops = { 480static struct vm_operations_struct xfs_file_vm_ops = {
467 .nopage = filemap_nopage, 481 .nopage = filemap_nopage,
468 .populate = filemap_populate, 482 .populate = filemap_populate,
483 .page_mkwrite = xfs_vm_page_mkwrite,
469}; 484};
470 485
471#ifdef CONFIG_XFS_DMAPI 486#ifdef CONFIG_XFS_DMAPI
472static struct vm_operations_struct xfs_dmapi_file_vm_ops = { 487static struct vm_operations_struct xfs_dmapi_file_vm_ops = {
473 .nopage = xfs_vm_nopage, 488 .nopage = xfs_vm_nopage,
474 .populate = filemap_populate, 489 .populate = filemap_populate,
490 .page_mkwrite = xfs_vm_page_mkwrite,
475#ifdef HAVE_VMOP_MPROTECT 491#ifdef HAVE_VMOP_MPROTECT
476 .mprotect = xfs_vm_mprotect, 492 .mprotect = xfs_vm_mprotect,
477#endif 493#endif