mirror of
https://git.savannah.gnu.org/git/grub.git
synced 2026-10-23 15:49:23 +00:00
2010-08-15 Robert Millan <rmh@gnu.org>
* kern/emu/misc.c (grub_get_libzfs_handle): Handle libzfs_init() errors. * kern/emu/getroot.c (find_root_device_from_libzfs): Handle grub_get_libzfs_handle() errors.
This commit is contained in:
1 parent
f3710e088c
commit
729a0f2e0c
3 files changed
+16
-2
No files matched your search
@@ -1,3 +1,10 @@
|
|||||||
|
2010-08-15 Robert Millan <rmh@gnu.org>
|
||||||
|
|
||||||
|
* kern/emu/misc.c (grub_get_libzfs_handle): Handle libzfs_init()
|
||||||
|
errors.
|
||||||
|
* kern/emu/getroot.c (find_root_device_from_libzfs): Handle
|
||||||
|
grub_get_libzfs_handle() errors.
|
||||||
|
|
||||||
2010-08-14 Robert Millan <rmh@gnu.org>
|
2010-08-14 Robert Millan <rmh@gnu.org>
|
||||||
|
|
||||||
* kern/emu/misc.c (grub_find_zpool_from_dir): Abort function if
|
* kern/emu/misc.c (grub_find_zpool_from_dir): Abort function if
|
||||||
|
|||||||
+6
-1
@@ -188,11 +188,16 @@ find_root_device_from_libzfs (const char *dir)
|
|||||||
|
|
||||||
{
|
{
|
||||||
zpool_handle_t *zpool;
|
zpool_handle_t *zpool;
|
||||||
|
libzfs_handle_t *libzfs;
|
||||||
nvlist_t *nvlist;
|
nvlist_t *nvlist;
|
||||||
nvlist_t **nvlist_array;
|
nvlist_t **nvlist_array;
|
||||||
unsigned int nvlist_count;
|
unsigned int nvlist_count;
|
||||||
|
|
||||||
zpool = zpool_open (grub_get_libzfs_handle (), poolname);
|
libzfs = grub_get_libzfs_handle ();
|
||||||
|
if (! libzfs)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
zpool = zpool_open (libzfs, poolname);
|
||||||
nvlist = zpool_get_config (zpool, NULL);
|
nvlist = zpool_get_config (zpool, NULL);
|
||||||
|
|
||||||
if (nvlist_lookup_nvlist (nvlist, "vdev_tree", &nvlist) != 0)
|
if (nvlist_lookup_nvlist (nvlist, "vdev_tree", &nvlist) != 0)
|
||||||
|
|||||||
+3
-1
@@ -268,7 +268,9 @@ grub_get_libzfs_handle (void)
|
|||||||
if (! __libzfs_handle)
|
if (! __libzfs_handle)
|
||||||
{
|
{
|
||||||
__libzfs_handle = libzfs_init ();
|
__libzfs_handle = libzfs_init ();
|
||||||
atexit (fini_libzfs);
|
|
||||||
|
if (__libzfs_handle)
|
||||||
|
atexit (fini_libzfs);
|
||||||
}
|
}
|
||||||
|
|
||||||
return __libzfs_handle;
|
return __libzfs_handle;
|
||||||
|
|||||||
Reference in new issue
Block a user