lkml.org 
[lkml]   [2010]   [Jan]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] [5/9] SYSCTL: Add call_usermodehelper_cleanup()
    Date

    This is the same as call_usermodehelper(), but with an cleanup callback.
    Needed for some of the followon proc_rcu_string() users.

    This avoids open coding this.

    Signed-off-by: Andi Kleen <ak@linux.intel.com>

    ---
    include/linux/kmod.h | 11 ++++++++++-
    1 file changed, 10 insertions(+), 1 deletion(-)

    Index: linux-2.6.33-rc2-ak/include/linux/kmod.h
    ===================================================================
    --- linux-2.6.33-rc2-ak.orig/include/linux/kmod.h
    +++ linux-2.6.33-rc2-ak/include/linux/kmod.h
    @@ -72,7 +72,8 @@ int call_usermodehelper_exec(struct subp
    void call_usermodehelper_freeinfo(struct subprocess_info *info);

    static inline int
    -call_usermodehelper(char *path, char **argv, char **envp, enum umh_wait wait)
    +call_usermodehelper_cleanup(char *path, char **argv, char **envp, enum umh_wait wait,
    + void (*cleanup)(char **, char **))
    {
    struct subprocess_info *info;
    gfp_t gfp_mask = (wait == UMH_NO_WAIT) ? GFP_ATOMIC : GFP_KERNEL;
    @@ -80,10 +81,18 @@ call_usermodehelper(char *path, char **a
    info = call_usermodehelper_setup(path, argv, envp, gfp_mask);
    if (info == NULL)
    return -ENOMEM;
    + if (cleanup)
    + call_usermodehelper_setcleanup(info, cleanup);
    return call_usermodehelper_exec(info, wait);
    }

    static inline int
    +call_usermodehelper(char *path, char **argv, char **envp, enum umh_wait wait)
    +{
    + return call_usermodehelper_cleanup(path, argv, envp, wait, NULL);
    +}
    +
    +static inline int
    call_usermodehelper_keys(char *path, char **argv, char **envp,
    struct key *session_keyring, enum umh_wait wait)
    {

    \
     
     \ /
      Last update: 2010-01-05 03:19    [W:2.369 / U:0.164 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site