Selaa lähdekoodia

NFS: Close page_mkwrite() races

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 <Trond.Myklebust@netapp.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Trond Myklebust 16 vuotta sitten
vanhempi
commit
7fdf523067
1 muutettua tiedostoa jossa 3 lisäystä ja 3 poistoa
  1. 3 3
      fs/nfs/file.c

+ 3 - 3
fs/nfs/file.c

@@ -517,10 +517,10 @@ static int nfs_vm_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
 
 
 	ret = nfs_updatepage(filp, page, 0, pagelen);
 	ret = nfs_updatepage(filp, page, 0, pagelen);
 out_unlock:
 out_unlock:
+	if (!ret)
+		return VM_FAULT_LOCKED;
 	unlock_page(page);
 	unlock_page(page);
-	if (ret)
-		ret = VM_FAULT_SIGBUS;
-	return ret;
+	return VM_FAULT_SIGBUS;
 }
 }
 
 
 static struct vm_operations_struct nfs_file_vm_ops = {
 static struct vm_operations_struct nfs_file_vm_ops = {