diff options
| author | Kyle Evans <kevans@FreeBSD.org> | 2018-10-01 14:57:33 +0000 |
|---|---|---|
| committer | Kyle Evans <kevans@FreeBSD.org> | 2018-10-01 14:57:33 +0000 |
| commit | 0cadc427fdaef4e865262940eb6582f49074573f (patch) | |
| tree | 2acf0c3e805837feead5f1cb1f126ce09ec41eec /lib | |
| parent | c6c770d0419a3e07a5c0514bdfa0c61b24eed161 (diff) | |
Notes
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/libbe/be.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/libbe/be.c b/lib/libbe/be.c index c1cdd55825fe..2872abed6dec 100644 --- a/lib/libbe/be.c +++ b/lib/libbe/be.c @@ -928,8 +928,9 @@ be_activate(libbe_handle_t *lbh, const char *bootenv, bool temporary) { char be_path[BE_MAXPATHLEN]; char buf[BE_MAXPATHLEN]; - uint64_t pool_guid; nvlist_t *config, *vdevs; + uint64_t pool_guid; + zfs_handle_t *zhp; int err; be_root_concat(lbh, bootenv, be_path); @@ -961,14 +962,19 @@ be_activate(libbe_handle_t *lbh, const char *bootenv, bool temporary) } else { /* Obtain bootenv zpool */ err = zpool_set_prop(lbh->active_phandle, "bootfs", be_path); + if (err) + return (-1); - switch (err) { - case 0: - return (BE_ERR_SUCCESS); + zhp = zfs_open(lbh->lzh, be_path, ZFS_TYPE_FILESYSTEM); + if (zhp == NULL) + return (-1); - default: - /* XXX TODO correct errors */ + err = zfs_promote(zhp); + zfs_close(zhp); + + if (err) return (-1); - } } + + return (BE_ERR_SUCCESS); } |
