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.
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.
*/
extern int zpool_in_use(libzfs_handle_t *, int, pool_state_t *, char **,
return result;
}
-static int
+int
libzfs_run_process(const char *path, char *argv[])
{
pid_t pid;
return -1;
}
-static int
+int
libzfs_load_module(const char *module)
{
char *argv[4] = {"/sbin/modprobe", "-q", (char *)module, (char *)0};
if (libzfs_module_loaded(module))
return 0;
+
return libzfs_run_process("/sbin/modprobe", argv);
}