NFS nfs_vm_page_mkwrite: Don't freeze me, Bro...
authorTrond Myklebust <trond.myklebust@primarydata.com>
Thu, 23 Jun 2016 15:09:04 +0000 (11:09 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Tue, 5 Jul 2016 23:11:08 +0000 (19:11 -0400)
Prevent filesystem freezes while handling the write page fault.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/file.c

index 0e9b4a068f13ebebc4a4e076fc2e5d1a90b96ab9..039d58790629e1c8e6a993c0b8dec616647a854d 100644 (file)
@@ -569,6 +569,8 @@ static int nfs_vm_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
                filp, filp->f_mapping->host->i_ino,
                (long long)page_offset(page));
 
+       sb_start_pagefault(inode->i_sb);
+
        /* make sure the cache has finished storing the page */
        nfs_fscache_wait_on_page_write(NFS_I(inode), page);
 
@@ -595,6 +597,7 @@ static int nfs_vm_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
 out_unlock:
        unlock_page(page);
 out:
+       sb_end_pagefault(inode->i_sb);
        return ret;
 }