Lines Matching refs:dst

73 	dsl_sync_task_t dst = { 0 };
85 dst.dst_pool = dp;
86 dst.dst_txg = dmu_tx_get_txg(tx);
87 dst.dst_space = blocks_modified << DST_AVG_BLKSHIFT;
88 dst.dst_space_check = space_check;
89 dst.dst_checkfunc = checkfunc != NULL ? checkfunc : dsl_null_checkfunc;
90 dst.dst_syncfunc = syncfunc;
91 dst.dst_arg = arg;
92 dst.dst_error = 0;
93 dst.dst_nowaiter = B_FALSE;
96 err = dst.dst_checkfunc(arg, tx);
105 VERIFY(txg_list_add_tail(&dp->dp_sync_tasks, &dst, dst.dst_txg));
109 txg_wait_synced(dp, dst.dst_txg);
111 if (dst.dst_error == EAGAIN) {
112 txg_wait_synced(dp, dst.dst_txg + TXG_DEFER_SIZE);
117 return (dst.dst_error);
124 dsl_sync_task_t *dst = kmem_zalloc(sizeof (*dst), KM_SLEEP);
126 dst->dst_pool = dp;
127 dst->dst_txg = dmu_tx_get_txg(tx);
128 dst->dst_space = blocks_modified << DST_AVG_BLKSHIFT;
129 dst->dst_space_check = space_check;
130 dst->dst_checkfunc = dsl_null_checkfunc;
131 dst->dst_syncfunc = syncfunc;
132 dst->dst_arg = arg;
133 dst->dst_error = 0;
134 dst->dst_nowaiter = B_TRUE;
136 VERIFY(txg_list_add_tail(&dp->dp_sync_tasks, dst, dst->dst_txg));
143 dsl_sync_task_sync(dsl_sync_task_t *dst, dmu_tx_t *tx)
145 dsl_pool_t *dp = dst->dst_pool;
147 ASSERT0(dst->dst_error);
162 if (dst->dst_space_check != ZFS_SPACE_CHECK_NONE) {
164 dst->dst_space_check == ZFS_SPACE_CHECK_RESERVED) -
168 if (dst->dst_space > 0 && used + dst->dst_space * 3 > quota) {
169 dst->dst_error = SET_ERROR(ENOSPC);
170 if (dst->dst_nowaiter)
171 kmem_free(dst, sizeof (*dst));
180 dst->dst_error = dst->dst_checkfunc(dst->dst_arg, tx);
181 if (dst->dst_error == 0)
182 dst->dst_syncfunc(dst->dst_arg, tx);
184 if (dst->dst_nowaiter)
185 kmem_free(dst, sizeof (*dst));