aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@xensource.com>2007-07-17 21:37:03 -0400
committerJeremy Fitzhardinge <jeremy@goop.org>2007-07-18 11:47:40 -0400
commit86313c488a6848b7ec2ba04e74f25f79dd32a0b7 (patch)
tree3b190f7afc338362470573b563f65a1eb83795ac /include
parent10a0a8d4e3f6bf2d077f94344441909abe670f5a (diff)
usermodehelper: Tidy up waiting
Rather than using a tri-state integer for the wait flag in call_usermodehelper_exec, define a proper enum, and use that. I've preserved the integer values so that any callers I've missed should still work OK. Signed-off-by: Jeremy Fitzhardinge <jeremy@xensource.com> Cc: James Bottomley <James.Bottomley@HansenPartnership.com> Cc: Randy Dunlap <randy.dunlap@oracle.com> Cc: Christoph Hellwig <hch@infradead.org> Cc: Andi Kleen <ak@suse.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Johannes Berg <johannes@sipsolutions.net> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Bjorn Helgaas <bjorn.helgaas@hp.com> Cc: Joel Becker <joel.becker@oracle.com> Cc: Tony Luck <tony.luck@intel.com> Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: Srivatsa Vaddagiri <vatsa@in.ibm.com> Cc: Oleg Nesterov <oleg@tv-sign.ru> Cc: David Howells <dhowells@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/kmod.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/include/linux/kmod.h b/include/linux/kmod.h
index c4cbe59d9c67..5dc13848891b 100644
--- a/include/linux/kmod.h
+++ b/include/linux/kmod.h
@@ -51,15 +51,21 @@ int call_usermodehelper_stdinpipe(struct subprocess_info *sub_info,
51void call_usermodehelper_setcleanup(struct subprocess_info *info, 51void call_usermodehelper_setcleanup(struct subprocess_info *info,
52 void (*cleanup)(char **argv, char **envp)); 52 void (*cleanup)(char **argv, char **envp));
53 53
54enum umh_wait {
55 UMH_NO_WAIT = -1, /* don't wait at all */
56 UMH_WAIT_EXEC = 0, /* wait for the exec, but not the process */
57 UMH_WAIT_PROC = 1, /* wait for the process to complete */
58};
59
54/* Actually execute the sub-process */ 60/* Actually execute the sub-process */
55int call_usermodehelper_exec(struct subprocess_info *info, int wait); 61int call_usermodehelper_exec(struct subprocess_info *info, enum umh_wait wait);
56 62
57/* Free the subprocess_info. This is only needed if you're not going 63/* Free the subprocess_info. This is only needed if you're not going
58 to call call_usermodehelper_exec */ 64 to call call_usermodehelper_exec */
59void call_usermodehelper_freeinfo(struct subprocess_info *info); 65void call_usermodehelper_freeinfo(struct subprocess_info *info);
60 66
61static inline int 67static inline int
62call_usermodehelper(char *path, char **argv, char **envp, int wait) 68call_usermodehelper(char *path, char **argv, char **envp, enum umh_wait wait)
63{ 69{
64 struct subprocess_info *info; 70 struct subprocess_info *info;
65 71
@@ -71,7 +77,7 @@ call_usermodehelper(char *path, char **argv, char **envp, int wait)
71 77
72static inline int 78static inline int
73call_usermodehelper_keys(char *path, char **argv, char **envp, 79call_usermodehelper_keys(char *path, char **argv, char **envp,
74 struct key *session_keyring, int wait) 80 struct key *session_keyring, enum umh_wait wait)
75{ 81{
76 struct subprocess_info *info; 82 struct subprocess_info *info;
77 83