On 05/22, Stanislav Kinsbursky wrote: > > +static int umh_set_fs_root(struct subprocess_info *info, struct cred *new) > +{ > + set_fs_root(current->fs, info->data); > + return 0; > +} > + > +/* > + * Call a usermode helper with a specific fs root. > + * > + * The caller must hold extra reference to it otherwise, because it will be > + * put on usermodehelper thread exit. > + */ > +int call_usermodehelper_root(char *path, char **argv, char **envp, > + struct path *root, int wait) > +{ > + struct subprocess_info *info; > + gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? GFP_ATOMIC : GFP_KERNEL; > + > + info = call_usermodehelper_setup(path, argv, envp, gfp_mask, > + umh_set_fs_root, NULL, root); > + if (info == NULL) > + return -ENOMEM; > + > + return call_usermodehelper_exec(info, wait); > +} > +EXPORT_SYMBOL(call_usermodehelper_root);
Of course, I can't ack the placement (and yes, it was me who argued that kmod.c is probably not the best place), but the patch looks fine. I am not sure the new helper actually needs "int wait" but this matches call_usermodehelper(). For what it's worth: Reviewed-by: Oleg Nesterov <o...@redhat.com> _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel