vdso && f_op->mremap (Was: special_mapping_fault() is broken)

Oleg Nesterov
2015-06-23T00:49:06Z

On 06/21, Oleg Nesterov wrote:
>
> Forgot to add Andy...

Add Pavel ;)

I never understood why ->mremap() lives in file_operations, not in
vm_operations_struct. To me vma->vm_file->f_op in move_vma() just
looks strange, vma->vm_ops->mremap(new_vma) looks "obviously better".

And afaics more useful. CRIU remaps vdso, but this does not update
mm->context.vdso. OK, probably this does not matter currently, CRIU
can't c/r the compat tasks, and 64-bit apps do not use context.vdso.
Afaics. Still, I think we might want to have special_mapping_remap()
and we can't do this because ->vm_file == NULL.

And perhaps other architectures can depend on the "correct" value
in >context.vdso more then x86, I dunno...

In short. Shouldn't we move ->mremap() to vm_operations_struct before
it has another user? We need to fix aio.c, but this is trivial.

No?

Oleg.