mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-10 15:10:38 +00:00
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>
This commit is contained in:
parent
b4348f32da
commit
7fdf523067
@ -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)
|
return VM_FAULT_SIGBUS;
|
||||||
ret = VM_FAULT_SIGBUS;
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct vm_operations_struct nfs_file_vm_ops = {
|
static struct vm_operations_struct nfs_file_vm_ops = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user