Lines Matching refs:bt

104 	be_transaction_data_t	bt = { 0 };  in be_init()  local
122 if (nvlist_lookup_string(be_attrs, BE_ATTR_NEW_BE_NAME, &bt.nbe_name) in be_init()
130 if (!be_valid_be_name(bt.nbe_name)) { in be_init()
132 bt.nbe_name); in be_init()
137 if (nvlist_lookup_string(be_attrs, BE_ATTR_NEW_BE_POOL, &bt.nbe_zpool) in be_init()
177 if ((zlp = zpool_open(g_zfs, bt.nbe_zpool)) == NULL) { in be_init()
179 "find existing zpool (%s): %s\n"), bt.nbe_zpool, in be_init()
189 if (!be_create_container_ds(bt.nbe_zpool)) in be_init()
195 if ((zret = zpool_iter(g_zfs, be_exists_callback, bt.nbe_name)) > 0) { in be_init()
197 bt.nbe_name); in be_init()
206 be_make_root_ds(bt.nbe_zpool, bt.nbe_name, nbe_root_ds, in be_init()
231 if (nvlist_dup(zfs_props, &bt.nbe_zfs_props, 0) != 0) { in be_init()
238 if (nvlist_alloc(&bt.nbe_zfs_props, NV_UNIQUE_NAME, 0) != 0) { in be_init()
246 if (nvlist_add_string(bt.nbe_zfs_props, in be_init()
255 if (nvlist_add_string(bt.nbe_zfs_props, in be_init()
265 bt.nbe_zfs_props) != 0) { in be_init()
283 (void) nvlist_remove(bt.nbe_zfs_props, in be_init()
301 bt.nbe_zfs_props) != 0) { in be_init()
323 bt.nbe_zpool, shared_fs_names[i]); in be_init()
355 nvlist_free(bt.nbe_zfs_props); in be_init()
382 be_transaction_data_t bt = { 0 }; in be_destroy() local
397 if (nvlist_lookup_string(be_attrs, BE_ATTR_ORIG_BE_NAME, &bt.obe_name) in be_destroy()
409 if (!be_valid_be_name(bt.obe_name)) { in be_destroy()
411 bt.obe_name); in be_destroy()
413 } else if (bt.obe_name != NULL) { in be_destroy()
417 if (strcmp(cur_bt.obe_name, bt.obe_name) == 0) { in be_destroy()
435 if ((zret = zpool_iter(g_zfs, be_find_zpool_callback, &bt)) == 0) { in be_destroy()
437 "for BE (%s)\n"), bt.obe_name); in be_destroy()
446 be_make_root_ds(bt.obe_zpool, bt.obe_name, obe_root_ds, in be_destroy()
448 bt.obe_root_ds = obe_root_ds; in be_destroy()
451 if (!be_zone_compare_uuids(bt.obe_root_ds)) { in be_destroy()
452 if (be_is_active_on_boot(bt.obe_name)) { in be_destroy()
465 if (be_is_active_on_boot(bt.obe_name)) { in be_destroy()
474 if ((zhp = zfs_open(g_zfs, bt.obe_root_ds, ZFS_TYPE_FILESYSTEM)) == in be_destroy()
477 "open BE root dataset (%s): %s\n"), bt.obe_root_ds, in be_destroy()
509 bt.obe_name, mp != NULL ? mp : "<unknown>"); in be_destroy()
523 if ((ret = be_destroy_zones(bt.obe_name, bt.obe_root_ds, &dd)) in be_destroy()
527 bt.obe_name); in be_destroy()
534 if ((ret = _be_unmount(bt.obe_name, BE_UNMOUNT_FLAG_FORCE)) in be_destroy()
537 "failed to unmount %s\n"), bt.obe_name); in be_destroy()
545 if ((ret = _be_destroy((const char *)bt.obe_root_ds, &dd)) in be_destroy()
552 if ((ret = be_remove_menu(bt.obe_name, bt.obe_zpool, NULL)) in be_destroy()
556 bt.obe_root_ds); in be_destroy()
603 be_transaction_data_t bt = { 0 }; in be_copy() local
634 if ((ret = be_find_current_be(&bt)) != BE_SUCCESS) { in be_copy()
642 bt.obe_name = obe_name; in be_copy()
644 if (!be_valid_be_name(bt.obe_name)) { in be_copy()
646 "invalid BE name %s\n"), bt.obe_name); in be_copy()
652 if ((zphp = zpool_open(g_zfs, bt.obe_zpool)) == NULL) { in be_copy()
654 "open rpool (%s): %s\n"), bt.obe_zpool, in be_copy()
658 if (be_find_zpool_callback(zphp, &bt) == 0) { in be_copy()
663 if ((zret = zpool_iter(g_zfs, be_find_zpool_callback, &bt)) == in be_copy()
666 "find zpool for BE (%s)\n"), bt.obe_name); in be_copy()
678 BE_ATTR_SNAP_NAME, DATA_TYPE_STRING, &bt.obe_snap_name, NULL) in be_copy()
687 BE_ATTR_NEW_BE_NAME, DATA_TYPE_STRING, &bt.nbe_name, NULL) in be_copy()
696 BE_ATTR_NEW_BE_POOL, DATA_TYPE_STRING, &bt.nbe_zpool, NULL) != 0) { in be_copy()
704 BE_ATTR_NEW_BE_DESC, DATA_TYPE_STRING, &bt.nbe_desc, NULL) != 0) { in be_copy()
712 BE_ATTR_POLICY, DATA_TYPE_STRING, &bt.policy, NULL) != 0) { in be_copy()
740 if (nvlist_dup(zfs_props, &bt.nbe_zfs_props, 0) != 0) { in be_copy()
747 if (nvlist_alloc(&bt.nbe_zfs_props, NV_UNIQUE_NAME, 0) != 0) { in be_copy()
758 if (bt.nbe_name) { in be_copy()
760 if (!be_valid_be_name(bt.nbe_name)) { in be_copy()
762 "invalid BE name %s\n"), bt.nbe_name); in be_copy()
770 bt.nbe_name)) > 0) { in be_copy()
772 "exists\n"), bt.nbe_name); in be_copy()
783 be_make_root_ds(bt.nbe_zpool, bt.nbe_name, nbe_root_ds, in be_copy()
788 "exists\n"), bt.nbe_name); in be_copy()
798 if (bt.nbe_zpool != NULL) { in be_copy()
808 if ((bt.nbe_name = be_auto_be_name(bt.obe_name)) in be_copy()
823 if (bt.nbe_zpool == NULL) { in be_copy()
824 bt.nbe_zpool = bt.obe_zpool; in be_copy()
828 be_make_root_ds(bt.obe_zpool, bt.obe_name, obe_root_ds, in be_copy()
830 be_make_root_ds(bt.nbe_zpool, bt.nbe_name, nbe_root_ds, in be_copy()
833 bt.obe_root_ds = obe_root_ds; in be_copy()
834 bt.nbe_root_ds = nbe_root_ds; in be_copy()
840 if (bt.obe_snap_name != NULL) { in be_copy()
843 (void) snprintf(ss, sizeof (ss), "%s@%s", bt.obe_root_ds, in be_copy()
844 bt.obe_snap_name); in be_copy()
859 if ((ret = _be_create_snapshot(bt.obe_name, in be_copy()
860 &bt.obe_snap_name, bt.policy)) != BE_SUCCESS) { in be_copy()
867 bt.obe_snap_name) != 0) { in be_copy()
876 if ((zhp = zfs_open(g_zfs, bt.obe_root_ds, ZFS_TYPE_FILESYSTEM)) in be_copy()
879 "open BE root dataset (%s): %s\n"), bt.obe_root_ds, in be_copy()
886 if (zfs_is_mounted(zhp, &bt.obe_altroot) && bt.obe_altroot == NULL) { in be_copy()
889 bt.obe_name, libzfs_error_description(g_zfs)); in be_copy()
894 if (strcmp(bt.obe_zpool, bt.nbe_zpool) == 0) { in be_copy()
903 if ((ret = be_clone_fs_callback(zhp, &bt)) != 0) { in be_copy()
910 bt.nbe_name, bt.obe_name); in be_copy()
927 free(bt.nbe_name); in be_copy()
928 if ((bt.nbe_name = be_auto_be_name(bt.obe_name)) in be_copy()
941 be_make_root_ds(bt.nbe_zpool, bt.nbe_name, in be_copy()
943 bt.nbe_root_ds = nbe_root_ds; in be_copy()
948 if ((zhp = zfs_open(g_zfs, bt.obe_root_ds, in be_copy()
952 "(%s): %s\n"), bt.obe_root_ds, in be_copy()
964 ret = be_clone_fs_callback(zhp, &bt); in be_copy()
972 bt.nbe_name, bt.obe_name); in be_copy()
986 free(bt.nbe_name); in be_copy()
987 bt.nbe_name = NULL; in be_copy()
1002 if (!be_create_container_ds(bt.nbe_zpool)) { in be_copy()
1012 if ((ret = be_send_fs_callback(zhp, &bt)) != 0) { in be_copy()
1014 "send BE (%s) to pool (%s)\n"), bt.obe_name, in be_copy()
1015 bt.nbe_zpool); in be_copy()
1035 if ((ret = _be_mount(bt.nbe_name, &new_mp, BE_MOUNT_FLAG_NO_ZONES)) in be_copy()
1039 (void) _be_unmount(bt.nbe_name, 0); in be_copy()
1045 if (be_set_uuid(bt.nbe_root_ds) != BE_SUCCESS) { in be_copy()
1050 if ((ret = be_zone_get_parent_uuid(bt.obe_root_ds, in be_copy()
1056 } else if ((ret = be_zone_set_parent_uuid(bt.nbe_root_ds, in be_copy()
1071 be_get_uuid(bt.obe_root_ds, &uu) == BE_SUCCESS) { in be_copy()
1072 if ((ret = be_copy_zones(bt.obe_name, bt.obe_root_ds, in be_copy()
1073 bt.nbe_root_ds)) != BE_SUCCESS) { in be_copy()
1085 if ((ret = be_get_legacy_fs(bt.obe_name, bt.obe_root_ds, NULL, NULL, in be_copy()
1089 bt.obe_name); in be_copy()
1096 if ((ret = be_update_vfstab(bt.nbe_name, bt.obe_zpool, bt.nbe_zpool, in be_copy()
1099 "update new BE's vfstab (%s)\n"), bt.nbe_name); in be_copy()
1104 if ((ret = _be_unmount(bt.nbe_name, 0)) != BE_SUCCESS) { in be_copy()
1114 (ret = be_append_menu(bt.nbe_name, bt.nbe_zpool, in be_copy()
1115 NULL, bt.obe_root_ds, bt.nbe_desc)) != BE_SUCCESS) { in be_copy()
1117 "add BE (%s) to boot menu\n"), bt.nbe_name); in be_copy()
1128 if ((zhp = zfs_open(g_zfs, bt.nbe_root_ds, in be_copy()
1131 "open BE root dataset (%s): %s\n"), bt.nbe_root_ds, in be_copy()
1140 if (bt.policy == NULL) { in be_copy()
1142 bt.policy = be_default_policy(); in be_copy()
1145 if (zfs_prop_set(zhp, BE_POLICY_PROPERTY, bt.policy) != 0) { in be_copy()
1147 "set BE policy for %s: %s\n"), bt.nbe_name, in be_copy()
1156 if (bt.nbe_name) { in be_copy()
1158 bt.nbe_name) != 0) { in be_copy()
1169 nvlist_free(bt.nbe_zfs_props); in be_copy()
1171 free(bt.obe_altroot); in be_copy()
1186 if (getzoneid() == GLOBAL_ZONEID && be_get_uuid(bt.nbe_root_ds, in be_copy()
1188 (void) be_destroy_zones(bt.nbe_name, bt.nbe_root_ds, in be_copy()
1191 (void) _be_destroy(bt.nbe_root_ds, &cdd); in be_copy()
1224 be_transaction_data_t *bt = data; in be_find_zpool_callback() local
1231 be_make_root_ds(zpool, bt->obe_name, be_root_ds, sizeof (be_root_ds)); in be_find_zpool_callback()
1238 bt->obe_zpool = strdup(zpool); in be_find_zpool_callback()
1904 be_transaction_data_t bt = { 0 }; in be_copy_zones() local
2066 bt.obe_name = zone_be_name; in be_copy_zones()
2067 bt.obe_root_ds = zoneroot_ds; in be_copy_zones()
2068 bt.obe_snap_name = snap_name; in be_copy_zones()
2069 bt.obe_altroot = temp_mntpt; in be_copy_zones()
2070 bt.nbe_name = new_zone_be_name; in be_copy_zones()
2071 bt.nbe_root_ds = new_zoneroot_ds; in be_copy_zones()
2073 if (nvlist_alloc(&bt.nbe_zfs_props, NV_UNIQUE_NAME, 0) != 0) { in be_copy_zones()
2084 if ((iret = be_clone_fs_callback(z_zhp, &bt)) != 0) { in be_copy_zones()
2091 nvlist_free(bt.nbe_zfs_props); in be_copy_zones()
2116 nvlist_free(bt.nbe_zfs_props); in be_copy_zones()
2124 bt.nbe_name = new_zone_be_name; in be_copy_zones()
2125 bt.nbe_root_ds = new_zoneroot_ds; in be_copy_zones()
2139 nvlist_free(bt.nbe_zfs_props); in be_copy_zones()
2149 iret = be_clone_fs_callback(z_zhp, &bt); in be_copy_zones()
2159 nvlist_free(bt.nbe_zfs_props); in be_copy_zones()
2171 free(bt.nbe_name); in be_copy_zones()
2172 bt.nbe_name = NULL; in be_copy_zones()
2174 nvlist_free(bt.nbe_zfs_props); in be_copy_zones()
2179 nvlist_free(bt.nbe_zfs_props); in be_copy_zones()
2228 if ((ret = be_update_zone_vfstab(z_zhp, bt.nbe_name, in be_copy_zones()
2232 bt.nbe_name); in be_copy_zones()
2273 be_transaction_data_t *bt = data; in be_clone_fs_callback() local
2309 if ((ret = be_prep_clone_send_fs(zhp, bt, clone_ds, in be_clone_fs_callback()
2319 bt->obe_snap_name); in be_clone_fs_callback()
2336 if (zfs_clone(zhp_ss, clone_ds, bt->nbe_zfs_props) != 0) { in be_clone_fs_callback()
2354 if ((ret = zfs_iter_filesystems(zhp, be_clone_fs_callback, bt)) != 0) { in be_clone_fs_callback()
2394 be_transaction_data_t *bt = data; in be_send_fs_callback() local
2411 if ((ret = be_prep_clone_send_fs(zhp, bt, clone_ds, in be_send_fs_callback()
2420 if (zfs_create(g_zfs, clone_ds, ZFS_TYPE_FILESYSTEM, bt->nbe_zfs_props) in be_send_fs_callback()
2461 if (zfs_send(zhp, NULL, bt->obe_snap_name, &send_flags, in be_send_fs_callback()
2499 if ((ret = zfs_iter_filesystems(zhp, be_send_fs_callback, bt)) != 0) { in be_send_fs_callback()
2933 be_prep_clone_send_fs(zfs_handle_t *zhp, be_transaction_data_t *bt, in be_prep_clone_send_fs() argument
2952 if (strncmp(zhp_name, bt->obe_root_ds, strlen(bt->obe_root_ds)) in be_prep_clone_send_fs()
2954 child_fs = zhp_name + strlen(bt->obe_root_ds); in be_prep_clone_send_fs()
2969 (void) snprintf(clone_ds, clone_ds_len, "%s%s", bt->nbe_root_ds, in be_prep_clone_send_fs()
3005 bt->obe_altroot != NULL && strcmp(bt->obe_altroot, in be_prep_clone_send_fs()
3008 int altroot_len = strlen(bt->obe_altroot); in be_prep_clone_send_fs()
3010 if (strncmp(bt->obe_altroot, mountpoint, altroot_len) in be_prep_clone_send_fs()
3021 if (nvlist_add_string(bt->nbe_zfs_props, in be_prep_clone_send_fs()
3029 err = nvlist_remove_all(bt->nbe_zfs_props, in be_prep_clone_send_fs()
3042 if (nvlist_add_string(bt->nbe_zfs_props, in be_prep_clone_send_fs()