Open up libzfs_run_process/libzfs_load_module

Recently helper functions were added to libzfs_util to load a kernel
module or execute a process.  Initially this functionality was limited
to libzfs but it has become clear there will be other consumers.  This
change opens up the interface so it may be used where appropriate.
This commit is contained in:
Brian Behlendorf 2010-12-16 15:47:40 -08:00
parent 95c4cae39f
commit feb46b92a7
2 changed files with 9 additions and 2 deletions

View File

@ -672,6 +672,12 @@ extern int zfs_deleg_share_nfs(libzfs_handle_t *, char *, char *, char *,
extern void zfs_nicenum(uint64_t, char *, size_t); extern void zfs_nicenum(uint64_t, char *, size_t);
extern int zfs_nicestrtonum(libzfs_handle_t *, const char *, uint64_t *); extern int zfs_nicestrtonum(libzfs_handle_t *, const char *, uint64_t *);
/*
* Utility functions to run an external process.
*/
int libzfs_run_process(const char *, char **);
int libzfs_load_module(const char *);
/* /*
* Given a device or file, determine if it is part of a pool. * Given a device or file, determine if it is part of a pool.
*/ */

View File

@ -631,7 +631,7 @@ libzfs_module_loaded(const char *module)
return result; return result;
} }
static int int
libzfs_run_process(const char *path, char *argv[]) libzfs_run_process(const char *path, char *argv[])
{ {
pid_t pid; pid_t pid;
@ -657,13 +657,14 @@ libzfs_run_process(const char *path, char *argv[])
return -1; return -1;
} }
static int int
libzfs_load_module(const char *module) libzfs_load_module(const char *module)
{ {
char *argv[4] = {"/sbin/modprobe", "-q", (char *)module, (char *)0}; char *argv[4] = {"/sbin/modprobe", "-q", (char *)module, (char *)0};
if (libzfs_module_loaded(module)) if (libzfs_module_loaded(module))
return 0; return 0;
return libzfs_run_process("/sbin/modprobe", argv); return libzfs_run_process("/sbin/modprobe", argv);
} }