diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 5a97bcfe03e5e0d25b78d8122a6695f8d1c66acc..ec7e27d00bc6878a1b9ba6f8f2c4ba24c4cd9b28 100644 --- a/fs/nfs/file.c +++ b/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); 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 = {