|
@@ -2273,16 +2273,11 @@ static int wp_pfn_shared(struct vm_fault *vmf, pte_t orig_pte)
|
|
|
struct vm_area_struct *vma = vmf->vma;
|
|
|
|
|
|
if (vma->vm_ops && vma->vm_ops->pfn_mkwrite) {
|
|
|
- struct vm_fault vmf2 = {
|
|
|
- .page = NULL,
|
|
|
- .pgoff = vmf->pgoff,
|
|
|
- .address = vmf->address,
|
|
|
- .flags = FAULT_FLAG_WRITE | FAULT_FLAG_MKWRITE,
|
|
|
- };
|
|
|
int ret;
|
|
|
|
|
|
pte_unmap_unlock(vmf->pte, vmf->ptl);
|
|
|
- ret = vma->vm_ops->pfn_mkwrite(vma, &vmf2);
|
|
|
+ vmf->flags |= FAULT_FLAG_MKWRITE;
|
|
|
+ ret = vma->vm_ops->pfn_mkwrite(vma, vmf);
|
|
|
if (ret & VM_FAULT_ERROR)
|
|
|
return ret;
|
|
|
vmf->pte = pte_offset_map_lock(vma->vm_mm, vmf->pmd,
|