From: Trond Myklebust Date: Tue, 12 May 2009 06:23:52 +0000 (+1000) Subject: NFS: Close page_mkwrite() races X-Git-Tag: v2.6.27.24~15 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=71cf4edb1d866d69773bce35f9761d1973b671c9;p=pandora-kernel.git NFS: Close page_mkwrite() races commit 7fdf523067666b0eaff330f362401ee50ce187c4 upstream Follow up to Nick Piggin's patches to ensure that nfs_vm_page_mkwrite returns with the page lock held, and sets the VM_FAULT_LOCKED flag. See http://bugzilla.kernel.org/show_bug.cgi?id=12913 Signed-off-by: Trond Myklebust Signed-off-by: Linus Torvalds Cc: Nick Piggin Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/nfs/file.c b/fs/nfs/file.c index a7c9f7b3ac1b..4a57a0f9a2ac 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c @@ -478,10 +478,10 @@ static int nfs_vm_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf) ret = nfs_updatepage(filp, page, 0, pagelen); out_unlock: + if (!ret) + return VM_FAULT_LOCKED; unlock_page(page); - if (ret) - ret = VM_FAULT_SIGBUS; - return ret; + return VM_FAULT_SIGBUS; } static struct vm_operations_struct nfs_file_vm_ops = {