vfs: more mnt_parent cleanups

a) mount --move is checking that ->mnt_parent is non-NULL before
looking if that parent happens to be shared; ->mnt_parent is never
NULL and it's not even an misspelled !mnt_has_parent()

b) pivot_root open-codes is_path_reachable(), poorly.

c) so does path_is_under(), while we are at it.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
diff --git a/fs/pnode.h b/fs/pnode.h
index 7f0c13a..723399e 100644
--- a/fs/pnode.h
+++ b/fs/pnode.h
@@ -42,4 +42,6 @@
 void release_mounts(struct list_head *);
 void umount_tree(struct vfsmount *, int, struct list_head *);
 struct vfsmount *copy_tree(struct vfsmount *, struct dentry *, int);
+bool is_path_reachable(struct vfsmount *, struct dentry *,
+			 const struct path *root);
 #endif /* _LINUX_PNODE_H */