2010-08-01 Robert Millan <rmh@gnu.org>
Make it even harder to use uninitialized `libzfs_handle' (and make the interface a bit simpler). * include/grub/util/misc.h (grub_util_init_libzfs) (libzfs_handle): Remove. (grub_get_libzfs_handle): New prototype. * util/misc.c [HAVE_LIBZFS] (libzfs_handle): Add `static' attribute. (grub_util_init_libzfs): Remove. (grub_get_libzfs_handle): New function. * kern/emu/getroot.c (find_root_device_from_libzfs): Use grub_get_libzfs_handle() to obtain a libzfs handle instead of accessing `libzfs_handle' directly.
This commit is contained in:
parent
c882acc031
commit
f7abdefbdd
4 changed files with 27 additions and 12 deletions
14
util/misc.c
14
util/misc.c
|
@ -296,27 +296,27 @@ grub_util_init_nls (void)
|
|||
}
|
||||
|
||||
#ifdef HAVE_LIBZFS
|
||||
libzfs_handle_t *libzfs_handle;
|
||||
static libzfs_handle_t *libzfs_handle;
|
||||
|
||||
static void
|
||||
fini_libzfs (void)
|
||||
{
|
||||
libzfs_fini (libzfs_handle);
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
grub_util_init_libzfs (void)
|
||||
libzfs_handle_t *
|
||||
grub_get_libzfs_handle (void)
|
||||
{
|
||||
#ifdef HAVE_LIBZFS
|
||||
if (! libzfs_handle)
|
||||
{
|
||||
libzfs_handle = libzfs_init ();
|
||||
atexit (fini_libzfs);
|
||||
}
|
||||
#endif
|
||||
|
||||
return libzfs_handle;
|
||||
}
|
||||
#endif
|
||||
#endif /* HAVE_LIBZFS */
|
||||
#endif /* GRUB_UTIL */
|
||||
|
||||
int
|
||||
grub_dl_ref (grub_dl_t mod)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue