Lines Matching refs:cb
77 zfs_include_snapshots(zfs_handle_t *zhp, callback_data_t *cb) in zfs_include_snapshots() argument
81 if ((cb->cb_flags & ZFS_ITER_PROP_LISTSNAPS) == 0) in zfs_include_snapshots()
82 return (cb->cb_types & ZFS_TYPE_SNAPSHOT); in zfs_include_snapshots()
95 callback_data_t *cb = data; in zfs_callback() local
97 boolean_t include_snaps = zfs_include_snapshots(zhp, cb); in zfs_callback()
98 boolean_t include_bmarks = (cb->cb_types & ZFS_TYPE_BOOKMARK); in zfs_callback()
100 if ((zfs_get_type(zhp) & cb->cb_types) || in zfs_callback()
107 if (uu_avl_find(cb->cb_avl, node, cb->cb_sortcol, in zfs_callback()
109 if (cb->cb_proplist) { in zfs_callback()
110 if ((*cb->cb_proplist) && in zfs_callback()
111 !(*cb->cb_proplist)->pl_all) in zfs_callback()
113 cb->cb_props_table); in zfs_callback()
115 if (zfs_expand_proplist(zhp, cb->cb_proplist, in zfs_callback()
116 (cb->cb_flags & ZFS_ITER_RECVD_PROPS), in zfs_callback()
117 (cb->cb_flags & ZFS_ITER_LITERAL_PROPS)) in zfs_callback()
123 uu_avl_insert(cb->cb_avl, node, idx); in zfs_callback()
133 if (cb->cb_flags & ZFS_ITER_RECURSE && in zfs_callback()
134 ((cb->cb_flags & ZFS_ITER_DEPTH_LIMIT) == 0 || in zfs_callback()
135 cb->cb_depth < cb->cb_depth_limit)) { in zfs_callback()
136 cb->cb_depth++; in zfs_callback()
142 if ((cb->cb_depth < cb->cb_depth_limit || in zfs_callback()
143 (cb->cb_flags & ZFS_ITER_DEPTH_LIMIT) == 0 || in zfs_callback()
144 (cb->cb_types & in zfs_callback()
147 (void) zfs_iter_filesystems_v2(zhp, cb->cb_flags, in zfs_callback()
153 (void) zfs_iter_snapshots_v2(zhp, cb->cb_flags, in zfs_callback()
159 (void) zfs_iter_bookmarks_v2(zhp, cb->cb_flags, in zfs_callback()
163 cb->cb_depth--; in zfs_callback()
438 callback_data_t cb = {0}; in zfs_for_each() local
449 cb.cb_sortcol = sortcol; in zfs_for_each()
450 cb.cb_flags = flags; in zfs_for_each()
451 cb.cb_proplist = proplist; in zfs_for_each()
452 cb.cb_types = types; in zfs_for_each()
453 cb.cb_depth_limit = limit; in zfs_for_each()
466 if (cb.cb_proplist && *cb.cb_proplist) { in zfs_for_each()
467 zprop_list_t *p = *cb.cb_proplist; in zfs_for_each()
472 cb.cb_props_table[p->pl_prop] = B_TRUE; in zfs_for_each()
480 cb.cb_props_table[sortcol->sc_prop] = B_TRUE; in zfs_for_each()
485 cb.cb_props_table[ZFS_PROP_ZONED] = B_TRUE; in zfs_for_each()
486 cb.cb_props_table[ZFS_PROP_CREATETXG] = B_TRUE; in zfs_for_each()
488 (void) memset(cb.cb_props_table, B_TRUE, in zfs_for_each()
489 sizeof (cb.cb_props_table)); in zfs_for_each()
492 if ((cb.cb_avl = uu_avl_create(avl_pool, NULL, UU_DEFAULT)) == NULL) in zfs_for_each()
499 cb.cb_flags |= ZFS_ITER_RECURSE; in zfs_for_each()
500 ret = zfs_iter_root(g_zfs, zfs_callback, &cb); in zfs_for_each()
524 ret |= zfs_callback(zhp, &cb); in zfs_for_each()
534 for (node = uu_avl_first(cb.cb_avl); node != NULL; in zfs_for_each()
535 node = uu_avl_next(cb.cb_avl, node)) in zfs_for_each()
541 if ((walk = uu_avl_walk_start(cb.cb_avl, UU_WALK_ROBUST)) == NULL) in zfs_for_each()
545 uu_avl_remove(cb.cb_avl, node); in zfs_for_each()
551 uu_avl_destroy(cb.cb_avl); in zfs_for_each()