vfs: start hiding vfsmount guts series

Almost all fields of struct vfsmount are used only by core VFS (and
a fairly small part of it, at that).  The plan: embed struct vfsmount
into struct mount, making the latter visible only to core parts of VFS.
Then move fields from vfsmount to mount, eventually leaving only
mnt_root/mnt_sb/mnt_flags in struct vfsmount.  Filesystem code still
gets pointers to struct vfsmount and remains unchanged; all such
pointers go to struct vfsmount embedded into the instances of struct
mount allocated by fs/namespace.c.  When fs/namespace.c et.al. get
a pointer to vfsmount, they turn it into pointer to mount (using
container_of) and work with that.

This is the first part of series; struct mount is introduced,
allocation switched to using it.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - __lookup_mnt() result

switch __lookup_mnt() to returning struct mount *; callers adjusted.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - __propagate_umount() argument

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - namespace.c internal iterators

next_mnt() return value, first argument
skip_mnt_tree() return value and argument

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Conflicts:
	fs/namespace.c
vfs: spread struct mount - attach_mnt/detach_mnt

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - commit_tree

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - mount group id handling

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - attach_recursive_mnt

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - tree_contains_unbindable

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - alloc_vfsmnt/free_vfsmnt/mnt_alloc_id/mnt_free_id

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - change_mnt_propagation/set_mnt_shared

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - clone_mnt/copy_tree result

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount to remaining users of ->mnt_hash

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: the first spoils - mnt_hash moved

taken out of struct vfsmount into struct mount

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - umount_tree argument

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - shrink_submounts/select_submounts

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - clone_mnt/copy_tree argument

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount mnt_set_mountpoint child argument

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - do_umount/propagate_mount_busy

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
vfs: spread struct mount - mnt_has_parent

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>