mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
libbe: bail out early if the zfs kmod isn't loaded
As noted in the comment, we already know the rest of libbe_init() will fail because there's no pool imported. Avoid the side effect by checking beforehand and bailing out early. With this, freebsd-update(8) should no longer trigger a load of the zfs kmod just because it runs `bectl check`. Reviewed by: jwmaag_gmail.com, rew Differential Revision: https://reviews.freebsd.org/D36188
This commit is contained in:
parent
a146207d66
commit
2f700ca965
1 changed files with 11 additions and 0 deletions
|
|
@ -29,6 +29,7 @@
|
|||
__FBSDID("$FreeBSD$");
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/module.h>
|
||||
#include <sys/mount.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/ucred.h>
|
||||
|
|
@ -119,6 +120,16 @@ libbe_init(const char *root)
|
|||
lbh = NULL;
|
||||
poolname = pos = NULL;
|
||||
|
||||
/*
|
||||
* If the zfs kmod's not loaded then the later libzfs_init() will load
|
||||
* the module for us, but that's not desirable for a couple reasons. If
|
||||
* the module's not loaded, there's no pool imported and we're going to
|
||||
* fail anyways. We also don't really want libbe consumers to have that
|
||||
* kind of side-effect (module loading) in the general case.
|
||||
*/
|
||||
if (modfind("zfs") < 0)
|
||||
goto err;
|
||||
|
||||
if ((lbh = calloc(1, sizeof(libbe_handle_t))) == NULL)
|
||||
goto err;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue