/* create a new mount for userspace and request it to be added into the namespace's tree  */
static int do_new_mount(struct path *path, char *type, int flags, int mnt_flags, char *name, void *data)
/* create a new mount for userspace and request it to be added into the namespace's tree  */
static int do_new_mount(struct path *path, char *type, int flags, int mnt_flags, char *name, void *data)
{
	struct vfsmount *mnt;
	if (!type)
		return -EINVAL;
	if (!capable(CAP_SYS_ADMIN))
		return -EPERM;
	lock_kernel();
	mnt = do_kern_mount(type, flags, name, data);
	unlock_kernel();
	if (IS_ERR(mnt))
		return PTR_ERR(mnt);
	return do_add_mount(mnt, path, mnt_flags, NULL);
}