Wrapfs: port to new user_namespace and mmap APIs
New struct user_namespace arg is now passed to many VFS ops. See details
here: https://lwn.net/Articles/842423. Like eCryptfs, we can't currently
stack on top of idmapped file systems, so check for it at mount and
prohibit. Instead, we use the default init_user_ns global
Also at mount, we prohibit mount on top of another wrapfs mount, due to
known incompatibilities.
mmap ops ->fault and ->page_mkwrite take a different vma struct with some
const args, so extract the right fields as needed.
Signed-off-by: Andrew Burford <aburford@cs.stonybrook.edu>
Signed-off-by: Erez Zadok <ezk@cs.stonybrook.edu>