[Devel] [PATCH RHEL8 COMMIT] ve/fs/namespace: allow submounts in non-init userns

Konstantin Khorenko khorenko at virtuozzo.com
Thu Mar 18 14:59:42 MSK 2021


Please disregard.

--
Best regards,

Konstantin Khorenko,
Virtuozzo Linux Kernel Team

On 03/18/2021 02:03 PM, Konstantin Khorenko wrote:
> The commit is pushed to "branch-rh8-4.18.0-240.1.1.vz8.5.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
> after rh8-4.18.0-240.1.1.vz8.5.8
> ------>
> commit 39aaf4f599374a1d54d6229e3c2076946f047c68
> Author: Konstantin Khorenko <khorenko at virtuozzo.com>
> Date:   Tue Jul 3 13:28:43 2018 +0300
>
>     ve/fs/namespace: allow submounts in non-init userns
>
>     Simple NFS mount inside a Container brings us to vfs_submount(), so if
>     we want to enable NFS inside a Container (read - in non-init userns), we
>     have to omit the check for init userns.
>
>     SyS_mount
>      do_mount
>       vfs_kern_mount
>        mount_fs
>         nfs_fs_mount
>          nfs4_try_mount
>           nfs_follow_remote_path
>            mount_subtree
>             vfs_path_lookup
>              do_path_lookup
>               filename_lookup
>                path_lookupat
>                 lookup_slow
>                  follow_managed
>                   nfs_d_automount
>                    nfs4_submount
>                     nfs_do_submount
>                      vfs_submount
>
>     https://jira.sw.ru/browse/PSBM-86277
>     Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>
>
>     https://jira.sw.ru/browse/PSBM-127234
>     (cherry picked from vz7 commit bc060d46276144f91a139b7d0acf384dcd0a4dde)
>     Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>
> ---
>  fs/namespace.c | 24 ++++++++++++++++++++++++
>  1 file changed, 24 insertions(+)
>
> diff --git a/fs/namespace.c b/fs/namespace.c
> index ecd4a56e21ad..d91622405adb 100644
> --- a/fs/namespace.c
> +++ b/fs/namespace.c
> @@ -983,12 +983,36 @@ struct vfsmount *
>  vfs_submount(const struct dentry *mountpoint, struct file_system_type *type,
>  	     const char *name, void *data)
>  {
> +#if 0
>  	/* Until it is worked out how to pass the user namespace
>  	 * through from the parent mount to the submount don't support
>  	 * unprivileged mounts with submounts.
>  	 */
> +	/* Simple NFS mount inside a Container brings us here, so if we want to
> +	 * enable NFS inside a Container (read - in non-init userns), we have
> +	 * to omit the check.
> +	 *  SyS_mount
> +	 *   do_mount
> +	 *    vfs_kern_mount
> +	 *     mount_fs
> +	 *      nfs_fs_mount
> +	 *       nfs4_try_mount
> +	 *        nfs_follow_remote_path
> +	 *         mount_subtree
> +	 *	    vfs_path_lookup
> +	 *	     do_path_lookup
> +	 *	      filename_lookup
> +	 *	       path_lookupat
> +	 *	        lookup_slow
> +	 *	         follow_managed
> +	 *	          nfs_d_automount
> +	 *	           nfs4_submount
> +	 *		    nfs_do_submount
> +	 *		     vfs_submount
> +	 */
>  	if (mountpoint->d_sb->s_user_ns != &init_user_ns)
>  		return ERR_PTR(-EPERM);
> +#endif
>
>  	return vfs_kern_mount(type, SB_SUBMOUNT, name, data);
>  }
> .
>


More information about the Devel mailing list