Lines Matching refs:cb

440 usage_prop_cb(int prop, void *cb)  in usage_prop_cb()  argument
442 FILE *fp = cb; in usage_prop_cb()
1196 destroy_cbdata_t *cb = data; in destroy_callback() local
1199 if (cb->cb_verbose) { in destroy_callback()
1200 if (cb->cb_parsable) { in destroy_callback()
1202 } else if (cb->cb_dryrun) { in destroy_callback()
1220 if (cb->cb_dryrun) { in destroy_callback()
1232 fnvlist_add_boolean(cb->cb_batchedsnaps, name); in destroy_callback()
1235 cb->cb_batchedsnaps, B_FALSE); in destroy_callback()
1236 fnvlist_free(cb->cb_batchedsnaps); in destroy_callback()
1237 cb->cb_batchedsnaps = fnvlist_alloc(); in destroy_callback()
1240 zfs_unmount(zhp, NULL, cb->cb_force ? MS_FORCE : 0) != 0 || in destroy_callback()
1241 zfs_destroy(zhp, cb->cb_defer_destroy) != 0) { in destroy_callback()
1254 destroy_cbdata_t *cb = arg; in destroy_print_cb() local
1258 if (nvlist_exists(cb->cb_nvl, name)) { in destroy_print_cb()
1259 if (cb->cb_firstsnap == NULL) in destroy_print_cb()
1260 cb->cb_firstsnap = strdup(name); in destroy_print_cb()
1261 if (cb->cb_prevsnap != NULL) in destroy_print_cb()
1262 free(cb->cb_prevsnap); in destroy_print_cb()
1264 cb->cb_prevsnap = strdup(name); in destroy_print_cb()
1265 if (cb->cb_firstsnap == NULL || cb->cb_prevsnap == NULL) in destroy_print_cb()
1267 if (cb->cb_verbose) { in destroy_print_cb()
1268 if (cb->cb_parsable) { in destroy_print_cb()
1270 } else if (cb->cb_dryrun) { in destroy_print_cb()
1278 } else if (cb->cb_firstsnap != NULL) { in destroy_print_cb()
1281 err = lzc_snaprange_space(cb->cb_firstsnap, in destroy_print_cb()
1282 cb->cb_prevsnap, &used); in destroy_print_cb()
1283 cb->cb_snapused += used; in destroy_print_cb()
1284 free(cb->cb_firstsnap); in destroy_print_cb()
1285 cb->cb_firstsnap = NULL; in destroy_print_cb()
1286 free(cb->cb_prevsnap); in destroy_print_cb()
1287 cb->cb_prevsnap = NULL; in destroy_print_cb()
1294 destroy_print_snapshots(zfs_handle_t *fs_zhp, destroy_cbdata_t *cb) in destroy_print_snapshots() argument
1297 assert(cb->cb_firstsnap == NULL); in destroy_print_snapshots()
1298 assert(cb->cb_prevsnap == NULL); in destroy_print_snapshots()
1299 err = zfs_iter_snapshots_sorted(fs_zhp, destroy_print_cb, cb); in destroy_print_snapshots()
1300 if (cb->cb_firstsnap != NULL) { in destroy_print_snapshots()
1303 err = lzc_snaprange_space(cb->cb_firstsnap, in destroy_print_snapshots()
1304 cb->cb_prevsnap, &used); in destroy_print_snapshots()
1306 cb->cb_snapused += used; in destroy_print_snapshots()
1307 free(cb->cb_firstsnap); in destroy_print_snapshots()
1308 cb->cb_firstsnap = NULL; in destroy_print_snapshots()
1309 free(cb->cb_prevsnap); in destroy_print_snapshots()
1310 cb->cb_prevsnap = NULL; in destroy_print_snapshots()
1318 destroy_cbdata_t *cb = arg; in snapshot_to_nvl_cb() local
1322 if (!cb->cb_doclones && !cb->cb_defer_destroy) { in snapshot_to_nvl_cb()
1323 cb->cb_target = zhp; in snapshot_to_nvl_cb()
1324 cb->cb_first = B_TRUE; in snapshot_to_nvl_cb()
1326 destroy_check_dependent, cb); in snapshot_to_nvl_cb()
1330 if (nvlist_add_boolean(cb->cb_nvl, zfs_get_name(zhp))) in snapshot_to_nvl_cb()
1340 destroy_cbdata_t *cb = arg; in gather_snapshots() local
1343 err = zfs_iter_snapspec(zhp, cb->cb_snapspec, snapshot_to_nvl_cb, cb); in gather_snapshots()
1349 if (cb->cb_verbose) { in gather_snapshots()
1350 err = destroy_print_snapshots(zhp, cb); in gather_snapshots()
1355 if (cb->cb_recurse) in gather_snapshots()
1356 err = zfs_iter_filesystems(zhp, gather_snapshots, cb); in gather_snapshots()
1364 destroy_clones(destroy_cbdata_t *cb) in destroy_clones() argument
1367 for (pair = nvlist_next_nvpair(cb->cb_nvl, NULL); in destroy_clones()
1369 pair = nvlist_next_nvpair(cb->cb_nvl, pair)) { in destroy_clones()
1373 boolean_t defer = cb->cb_defer_destroy; in destroy_clones()
1380 cb->cb_defer_destroy = B_FALSE; in destroy_clones()
1382 destroy_callback, cb); in destroy_clones()
1383 cb->cb_defer_destroy = defer; in destroy_clones()
1395 destroy_cbdata_t cb = { 0 }; in zfs_do_destroy() local
1407 cb.cb_verbose = B_TRUE; in zfs_do_destroy()
1410 cb.cb_verbose = B_TRUE; in zfs_do_destroy()
1411 cb.cb_parsable = B_TRUE; in zfs_do_destroy()
1414 cb.cb_dryrun = B_TRUE; in zfs_do_destroy()
1417 cb.cb_defer_destroy = B_TRUE; in zfs_do_destroy()
1421 cb.cb_force = B_TRUE; in zfs_do_destroy()
1424 cb.cb_recurse = B_TRUE; in zfs_do_destroy()
1427 cb.cb_recurse = B_TRUE; in zfs_do_destroy()
1428 cb.cb_doclones = B_TRUE; in zfs_do_destroy()
1456 cb.cb_nvl = fnvlist_alloc(); in zfs_do_destroy()
1464 cb.cb_snapspec = at + 1; in zfs_do_destroy()
1465 if (gather_snapshots(zfs_handle_dup(zhp), &cb) != 0 || in zfs_do_destroy()
1466 cb.cb_error) { in zfs_do_destroy()
1471 if (nvlist_empty(cb.cb_nvl)) { in zfs_do_destroy()
1478 if (cb.cb_verbose) { in zfs_do_destroy()
1480 zfs_nicebytes(cb.cb_snapused, buf, sizeof (buf)); in zfs_do_destroy()
1481 if (cb.cb_parsable) { in zfs_do_destroy()
1483 cb.cb_snapused); in zfs_do_destroy()
1484 } else if (cb.cb_dryrun) { in zfs_do_destroy()
1493 if (!cb.cb_dryrun) { in zfs_do_destroy()
1494 if (cb.cb_doclones) { in zfs_do_destroy()
1495 cb.cb_batchedsnaps = fnvlist_alloc(); in zfs_do_destroy()
1496 err = destroy_clones(&cb); in zfs_do_destroy()
1499 cb.cb_batchedsnaps, B_FALSE); in zfs_do_destroy()
1507 err = zfs_destroy_snaps_nvl(g_zfs, cb.cb_nvl, in zfs_do_destroy()
1508 cb.cb_defer_destroy); in zfs_do_destroy()
1518 if (cb.cb_dryrun) { in zfs_do_destroy()
1524 if (cb.cb_defer_destroy) { in zfs_do_destroy()
1530 if (cb.cb_recurse) { in zfs_do_destroy()
1551 nvlist_free(cb.cb_nvl); in zfs_do_destroy()
1559 cb.cb_target = zhp; in zfs_do_destroy()
1564 if (!cb.cb_recurse && strchr(zfs_get_name(zhp), '/') == NULL && in zfs_do_destroy()
1581 cb.cb_first = B_TRUE; in zfs_do_destroy()
1582 if (!cb.cb_doclones && in zfs_do_destroy()
1584 &cb) != 0) { in zfs_do_destroy()
1589 if (cb.cb_error) { in zfs_do_destroy()
1594 cb.cb_batchedsnaps = fnvlist_alloc(); in zfs_do_destroy()
1596 &cb) != 0) { in zfs_do_destroy()
1605 err = destroy_callback(zhp, &cb); in zfs_do_destroy()
1609 cb.cb_batchedsnaps, cb.cb_defer_destroy); in zfs_do_destroy()
1616 fnvlist_free(cb.cb_batchedsnaps); in zfs_do_destroy()
1617 fnvlist_free(cb.cb_nvl); in zfs_do_destroy()
1774 zprop_get_cbdata_t cb = { 0 }; in zfs_do_get() local
1785 cb.cb_sources = ZPROP_SRC_ALL; in zfs_do_get()
1786 cb.cb_columns[0] = GET_COL_NAME; in zfs_do_get()
1787 cb.cb_columns[1] = GET_COL_PROPERTY; in zfs_do_get()
1788 cb.cb_columns[2] = GET_COL_VALUE; in zfs_do_get()
1789 cb.cb_columns[3] = GET_COL_SOURCE; in zfs_do_get()
1790 cb.cb_type = ZFS_TYPE_DATASET; in zfs_do_get()
1796 cb.cb_literal = B_TRUE; in zfs_do_get()
1805 cb.cb_scripted = B_TRUE; in zfs_do_get()
1817 bzero(&cb.cb_columns, sizeof (cb.cb_columns)); in zfs_do_get()
1834 cb.cb_columns[i++] = GET_COL_NAME; in zfs_do_get()
1837 cb.cb_columns[i++] = GET_COL_PROPERTY; in zfs_do_get()
1840 cb.cb_columns[i++] = GET_COL_VALUE; in zfs_do_get()
1843 cb.cb_columns[i++] = GET_COL_RECVD; in zfs_do_get()
1847 cb.cb_columns[i++] = GET_COL_SOURCE; in zfs_do_get()
1857 cb.cb_columns[0] = GET_COL_NAME; in zfs_do_get()
1858 cb.cb_columns[1] = GET_COL_PROPERTY; in zfs_do_get()
1859 cb.cb_columns[2] = GET_COL_VALUE; in zfs_do_get()
1860 cb.cb_columns[3] = GET_COL_RECVD; in zfs_do_get()
1861 cb.cb_columns[4] = GET_COL_SOURCE; in zfs_do_get()
1875 cb.cb_sources = 0; in zfs_do_get()
1885 cb.cb_sources |= ZPROP_SRC_LOCAL; in zfs_do_get()
1888 cb.cb_sources |= ZPROP_SRC_DEFAULT; in zfs_do_get()
1891 cb.cb_sources |= ZPROP_SRC_INHERITED; in zfs_do_get()
1894 cb.cb_sources |= ZPROP_SRC_RECEIVED; in zfs_do_get()
1897 cb.cb_sources |= ZPROP_SRC_TEMPORARY; in zfs_do_get()
1900 cb.cb_sources |= ZPROP_SRC_NONE; in zfs_do_get()
1965 if (zprop_get_list(g_zfs, fields, &cb.cb_proplist, ZFS_TYPE_DATASET) in zfs_do_get()
1980 if (cb.cb_proplist != NULL) { in zfs_do_get()
1983 fake_name.pl_next = cb.cb_proplist; in zfs_do_get()
1984 cb.cb_proplist = &fake_name; in zfs_do_get()
1987 cb.cb_first = B_TRUE; in zfs_do_get()
1991 &cb.cb_proplist, limit, get_callback, &cb); in zfs_do_get()
1993 if (cb.cb_proplist == &fake_name) in zfs_do_get()
1996 zprop_free_list(cb.cb_proplist); in zfs_do_get()
2022 inherit_cbdata_t *cb = data; in inherit_recurse_cb() local
2023 zfs_prop_t prop = zfs_name_to_prop(cb->cb_propname); in inherit_recurse_cb()
2033 return (zfs_prop_inherit(zhp, cb->cb_propname, cb->cb_received) != 0); in inherit_recurse_cb()
2039 inherit_cbdata_t *cb = data; in inherit_cb() local
2041 return (zfs_prop_inherit(zhp, cb->cb_propname, cb->cb_received) != 0); in inherit_cb()
2049 inherit_cbdata_t cb = { 0 }; in zfs_do_inherit() local
2123 cb.cb_propname = propname; in zfs_do_inherit()
2124 cb.cb_received = received; in zfs_do_inherit()
2128 NULL, NULL, 0, inherit_recurse_cb, &cb); in zfs_do_inherit()
2131 NULL, NULL, 0, inherit_cb, &cb); in zfs_do_inherit()
2162 upgrade_cbdata_t *cb = data; in upgrade_list_callback() local
2166 if ((!cb->cb_newer && version < ZPL_VERSION) || in upgrade_list_callback()
2167 (cb->cb_newer && version > ZPL_VERSION)) { in upgrade_list_callback()
2169 if (cb->cb_newer) { in upgrade_list_callback()
2182 if (!cb->cb_foundone) { in upgrade_list_callback()
2186 cb->cb_foundone = B_TRUE; in upgrade_list_callback()
2198 upgrade_cbdata_t *cb = data; in upgrade_set_callback() local
2206 needed_spa_version = zfs_spa_version_map(cb->cb_version); in upgrade_set_callback()
2217 cb->cb_numfailed++; in upgrade_set_callback()
2222 if (version < cb->cb_version) { in upgrade_set_callback()
2225 "%llu", cb->cb_version); in upgrade_set_callback()
2226 if (cb->cb_lastfs[0] && !same_pool(zhp, cb->cb_lastfs)) { in upgrade_set_callback()
2237 cb->cb_numupgraded++; in upgrade_set_callback()
2239 cb->cb_numfailed++; in upgrade_set_callback()
2240 (void) strcpy(cb->cb_lastfs, zfs_get_name(zhp)); in upgrade_set_callback()
2241 } else if (version > cb->cb_version) { in upgrade_set_callback()
2246 cb->cb_numfailed++; in upgrade_set_callback()
2248 cb->cb_numsamegraded++; in upgrade_set_callback()
2264 upgrade_cbdata_t cb = { 0 }; in zfs_do_upgrade() local
2279 optarg, &cb.cb_version) != 0) { in zfs_do_upgrade()
2299 if ((!all && !argc) && ((flags & ZFS_ITER_RECURSE) | cb.cb_version)) in zfs_do_upgrade()
2302 cb.cb_version || argc)) in zfs_do_upgrade()
2329 if (cb.cb_version == 0) in zfs_do_upgrade()
2330 cb.cb_version = ZPL_VERSION; in zfs_do_upgrade()
2332 NULL, NULL, 0, upgrade_set_callback, &cb); in zfs_do_upgrade()
2334 cb.cb_numupgraded); in zfs_do_upgrade()
2335 if (cb.cb_numsamegraded) { in zfs_do_upgrade()
2338 cb.cb_numsamegraded); in zfs_do_upgrade()
2340 if (cb.cb_numfailed != 0) in zfs_do_upgrade()
2350 NULL, NULL, 0, upgrade_list_callback, &cb); in zfs_do_upgrade()
2352 found = cb.cb_foundone; in zfs_do_upgrade()
2353 cb.cb_foundone = B_FALSE; in zfs_do_upgrade()
2354 cb.cb_newer = B_TRUE; in zfs_do_upgrade()
2357 NULL, NULL, 0, upgrade_list_callback, &cb); in zfs_do_upgrade()
2359 if (!cb.cb_foundone && !found) { in zfs_do_upgrade()
2592 us_cbdata_t *cb = (us_cbdata_t *)arg; in userspace_cb() local
2593 zfs_userquota_prop_t prop = cb->cb_prop; in userspace_cb()
2598 uu_avl_pool_t *avl_pool = cb->cb_avl_pool; in userspace_cb()
2599 uu_avl_t *avl = cb->cb_avl; in userspace_cb()
2603 zfs_sort_column_t *sortcol = cb->cb_sortcol; in userspace_cb()
2610 us_sort_info_t sortinfo = { sortcol, cb->cb_numname }; in userspace_cb()
2640 if (!cb->cb_sid2posix) { in userspace_cb()
2654 if (cb->cb_sid2posix || domain == NULL || domain[0] == '\0') { in userspace_cb()
2658 if (!cb->cb_numname) { in userspace_cb()
2666 if (!cb->cb_numname) { in userspace_cb()
2682 if (cb->cb_sid2posix && in userspace_cb()
2690 if (typelen > cb->cb_width[typeidx]) in userspace_cb()
2691 cb->cb_width[typeidx] = typelen; in userspace_cb()
2696 if ((cb->cb_numname && cb->cb_sid2posix) || name == NULL) { in userspace_cb()
2706 if (namelen > cb->cb_width[nameidx]) in userspace_cb()
2707 cb->cb_width[nameidx] = namelen; in userspace_cb()
2723 if (cb->cb_nicenum) { in userspace_cb()
2761 if (sizelen > cb->cb_width[sizeidx]) in userspace_cb()
2762 cb->cb_width[sizeidx] = sizelen; in userspace_cb()
2938 us_cbdata_t cb; in zfs_do_userspace() local
3081 cb.cb_sortcol = sortcol; in zfs_do_userspace()
3082 cb.cb_numname = prtnum; in zfs_do_userspace()
3083 cb.cb_nicenum = !parsable; in zfs_do_userspace()
3084 cb.cb_avl_pool = avl_pool; in zfs_do_userspace()
3085 cb.cb_avl = avl_tree; in zfs_do_userspace()
3086 cb.cb_sid2posix = sid2posix; in zfs_do_userspace()
3089 cb.cb_width[i] = strlen(gettext(us_field_hdr[i])); in zfs_do_userspace()
3099 cb.cb_prop = p; in zfs_do_userspace()
3100 if ((ret = zfs_userspace(zhp, p, userspace_cb, &cb)) != 0) in zfs_do_userspace()
3125 us_sort_info_t sortinfo = { sortcol, cb.cb_numname }; in zfs_do_userspace()
3135 print_us(scripted, parsable, fields, types, cb.cb_width, B_TRUE, in zfs_do_userspace()
3136 cb.cb_avl); in zfs_do_userspace()
3141 if ((walk = uu_avl_walk_start(cb.cb_avl, UU_WALK_ROBUST)) == NULL) in zfs_do_userspace()
3145 uu_avl_remove(cb.cb_avl, node); in zfs_do_userspace()
3184 print_header(list_cbdata_t *cb) in print_header() argument
3186 zprop_list_t *pl = cb->cb_proplist; in print_header()
3227 print_dataset(zfs_handle_t *zhp, list_cbdata_t *cb) in print_dataset() argument
3229 zprop_list_t *pl = cb->cb_proplist; in print_dataset()
3239 if (cb->cb_scripted) in print_dataset()
3255 cb->cb_literal) != 0) in print_dataset()
3262 property, sizeof (property), cb->cb_literal) != 0) in print_dataset()
3269 property, sizeof (property), cb->cb_literal) != 0) in print_dataset()
3289 if (cb->cb_scripted || (pl->pl_next == NULL && !right_justify)) in print_dataset()
3328 list_cbdata_t cb = { 0 }; in zfs_do_list() local
3342 cb.cb_literal = B_TRUE; in zfs_do_list()
3352 cb.cb_scripted = B_TRUE; in zfs_do_list()
3442 if (zprop_get_list(g_zfs, fields, &cb.cb_proplist, ZFS_TYPE_DATASET) in zfs_do_list()
3446 cb.cb_first = B_TRUE; in zfs_do_list()
3448 ret = zfs_for_each(argc, argv, flags, types, sortcol, &cb.cb_proplist, in zfs_do_list()
3449 limit, list_callback, &cb); in zfs_do_list()
3451 zprop_free_list(cb.cb_proplist); in zfs_do_list()
3454 if (ret == 0 && cb.cb_first && !cb.cb_scripted) in zfs_do_list()
3681 rollback_cbdata_t cb = { 0 }; in zfs_do_rollback() local
3690 cb.cb_recurse = 1; in zfs_do_rollback()
3693 cb.cb_recurse = 1; in zfs_do_rollback()
3694 cb.cb_doclones = 1; in zfs_do_rollback()
3736 cb.cb_target = argv[0]; in zfs_do_rollback()
3737 cb.cb_create = zfs_prop_get_int(snap, ZFS_PROP_CREATETXG); in zfs_do_rollback()
3738 cb.cb_first = B_TRUE; in zfs_do_rollback()
3739 cb.cb_error = 0; in zfs_do_rollback()
3740 if ((ret = zfs_iter_snapshots(zhp, B_FALSE, rollback_check, &cb)) != 0) in zfs_do_rollback()
3742 if ((ret = zfs_iter_bookmarks(zhp, rollback_check, &cb)) != 0) in zfs_do_rollback()
3745 if ((ret = cb.cb_error) != 0) in zfs_do_rollback()
6017 holds_cbdata_t cb = { 0 }; in zfs_do_holds() local
6070 cb.cb_recursive = recursive; in zfs_do_holds()
6071 cb.cb_snapname = snapname; in zfs_do_holds()
6072 cb.cb_nvlp = &nvl; in zfs_do_holds()
6078 holds_callback, &cb); in zfs_do_holds()
6086 print_holds(scripted, cb.cb_max_namelen, cb.cb_max_taglen, nvl); in zfs_do_holds()
6550 get_all_cb_t cb = { 0 }; in share_mount() local
6551 get_all_datasets(&cb, verbose); in share_mount()
6553 if (cb.cb_used == 0) in share_mount()
6558 sharearg.zhandle_arr = cb.cb_handles; in share_mount()
6559 sharearg.zhandle_len = cb.cb_used; in share_mount()
6574 share_mount_state.sm_total = cb.cb_used; in share_mount()
6581 zfs_foreach_mountpoint(g_zfs, cb.cb_handles, cb.cb_used, in share_mount()
6585 for (int i = 0; i < cb.cb_used; i++) in share_mount()
6586 zfs_close(cb.cb_handles[i]); in share_mount()
6587 free(cb.cb_handles); in share_mount()
7681 loadkey_cbdata_t *cb = data; in load_key_callback() local
7689 if (cb->cb_recursive) { in load_key_callback()
7696 if ((cb->cb_loadkey && keystatus == ZFS_KEYSTATUS_AVAILABLE) || in load_key_callback()
7697 (!cb->cb_loadkey && keystatus == ZFS_KEYSTATUS_UNAVAILABLE)) in load_key_callback()
7701 cb->cb_numattempted++; in load_key_callback()
7703 if (cb->cb_loadkey) in load_key_callback()
7704 ret = zfs_crypto_load_key(zhp, cb->cb_noop, cb->cb_keylocation); in load_key_callback()
7709 cb->cb_numfailed++; in load_key_callback()
7721 loadkey_cbdata_t cb = { 0 }; in load_unload_keys() local
7723 cb.cb_loadkey = loadkey; in load_unload_keys()
7730 cb.cb_noop = B_TRUE; in load_unload_keys()
7733 cb.cb_keylocation = optarg; in load_unload_keys()
7743 cb.cb_recursive = B_TRUE; in load_unload_keys()
7747 cb.cb_recursive = B_TRUE; in load_unload_keys()
7771 if (cb.cb_recursive && cb.cb_keylocation != NULL && in load_unload_keys()
7772 strcmp(cb.cb_keylocation, "prompt") != 0) { in load_unload_keys()
7780 load_key_callback, &cb); in load_unload_keys()
7782 if (cb.cb_noop || (cb.cb_recursive && cb.cb_numattempted != 0)) { in load_unload_keys()
7784 (u_longlong_t)(cb.cb_numattempted - cb.cb_numfailed), in load_unload_keys()
7785 (u_longlong_t)cb.cb_numattempted, in load_unload_keys()
7786 loadkey ? (cb.cb_noop ? "verified" : "loaded") : in load_unload_keys()
7790 if (cb.cb_numfailed != 0) in load_unload_keys()