[Devel] [PATCH RH8 08/10] nfsd: disable UMH client tracking in nested net namespaces

Konstantin Khorenko khorenko at virtuozzo.com
Tue Jun 1 20:19:55 MSK 2021


On 05/26/2021 05:56 PM, Andrey Zhadchenko wrote:
> From: Vasily Averin <vvs at virtuozzo.com>
>
> UMH client tracking uses usermodehelper to execute some userspace binary.
> In mainline it works for init_net only, but in vz7 skinsbursky@ enabled
> it in Containers by using per-Container UHM call. Unfortunately it does
> not work in nested network namespaces, neither on host nor inside Containers.
>
> This patch disables UMH client tracking in nested network namespaces,
> and adjusts warning message generated on such attempts.
>
> https://jira.sw.ru/browse/PSBM-90024
>
> Signed-off-by: Vasliy Averin <vvs at virtuozzo.com>
> Reviewed-by: Konstantin Khorenko <khorenko at virtuozzo.com>
>
> (cherry-picked from e4af0cdd639de846dc8381e7978b4670a1897e17)
> Signed-off-by: Andrey Zhadchenko <andrey.zhadchenko at virtuozzo.com>
>
> diff --git a/fs/nfsd/nfs4recover.c b/fs/nfsd/nfs4recover.c
> index cb947b7..023bf24 100644
> --- a/fs/nfsd/nfs4recover.c
> +++ b/fs/nfsd/nfs4recover.c
> @@ -1871,6 +1871,14 @@ struct cld_upcall {
>  	struct nfsd_net *nn = net_generic(net, nfsd_net_id);
>  	char *grace_start = nfsd4_cltrack_grace_start(nn->boot_time);
>
> +	if (!net_eq(net, get_exec_env()->ve_netns)) {

ve_struct.ve_netns is obsoleted, the patch is to be reworked

> +		pr_warn("NFSD: attempt to initialize umh client tracking "
> +			"in Container %s netns %u ignored.\n",
> +			get_exec_env()->ve_name, net->proc_inum);
> +		kfree(grace_start);
> +		return -EINVAL;
> +	}
> +
>  	ret = nfsd4_umh_cltrack_upcall("init", NULL, grace_start, NULL);
>  	kfree(grace_start);
>  	if (!ret)
>


More information about the Devel mailing list