From: Andrew Morton nfi if this is correct. How am I supposed to know how to work out what to put in `copied' in write_end? Cc: Nick Piggin Cc: Trond Myklebust Signed-off-by: Andrew Morton --- fs/nfs/file.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff -puN fs/nfs/file.c~git-nfs-vs-nfs-convert-to-new-aops fs/nfs/file.c --- a/fs/nfs/file.c~git-nfs-vs-nfs-convert-to-new-aops +++ a/fs/nfs/file.c @@ -392,6 +392,7 @@ static int nfs_vm_page_mkwrite(struct vm struct file *filp = vma->vm_file; unsigned pagelen; int ret = -EINVAL; + void *fsdata; lock_page(page); if (page->mapping != vma->vm_file->f_path.dentry->d_inode->i_mapping) @@ -399,9 +400,13 @@ static int nfs_vm_page_mkwrite(struct vm pagelen = nfs_page_length(page); if (pagelen == 0) goto out_unlock; - ret = nfs_prepare_write(filp, page, 0, pagelen); + ret = nfs_write_begin(filp, page->mapping, + (loff_t)page->index << PAGE_CACHE_SHIFT, + pagelen, 0, &page, &fsdata); if (!ret) - ret = nfs_commit_write(filp, page, 0, pagelen); + ret = nfs_write_end(filp, page->mapping, + (loff_t)page->index << PAGE_CACHE_SHIFT, + pagelen, pagelen, page, fsdata); out_unlock: unlock_page(page); return ret; _