[Devel] [RFC PATCH] kmod: add ability to swap root in usermode helper

Oleg Nesterov oleg at redhat.com
Mon May 20 06:57:16 PDT 2013


On 05/20, Stanislav Kinsbursky wrote:
>
> Usermode helper executes all binaries in global "init" root context. This
> doesn't allow to call to call the binary from other root (for example in a
> container).
> Currently, containerized NFS server requires an ability to execute a binary in
> a other context, than "init" root (UMH is used for client recovery tracking).
> This patch adds root swap to ____call_usermodehelper(), if non-NULL root was
> passed as a part of subprocess_info data,

Why do we need the new member/arguments?

> @@ -215,6 +216,9 @@ static int ____call_usermodehelper(void *data)
>  	 */
>  	set_user_nice(current, 0);
>
> +	if (sub_info->root)
> +		set_fs_root(current->fs, sub_info->root);

Can't subprocess_info->init() do this? You can pass root as ->data.

IOW, unless I missed something, nfs can do this without any changes
in kmod.c.

Oleg.




More information about the Devel mailing list