|
@@ -1490,13 +1490,14 @@ SYSCALL_DEFINE1(old_mmap, struct mmap_arg_struct __user *, arg)
|
|
|
int vma_wants_writenotify(struct vm_area_struct *vma)
|
|
|
{
|
|
|
vm_flags_t vm_flags = vma->vm_flags;
|
|
|
+ const struct vm_operations_struct *vm_ops = vma->vm_ops;
|
|
|
|
|
|
/* If it was private or non-writable, the write bit is already clear */
|
|
|
if ((vm_flags & (VM_WRITE|VM_SHARED)) != ((VM_WRITE|VM_SHARED)))
|
|
|
return 0;
|
|
|
|
|
|
/* The backer wishes to know when pages are first written to? */
|
|
|
- if (vma->vm_ops && vma->vm_ops->page_mkwrite)
|
|
|
+ if (vm_ops && (vm_ops->page_mkwrite || vm_ops->pfn_mkwrite))
|
|
|
return 1;
|
|
|
|
|
|
/* The open routine did something to the protections that pgprot_modify
|