Lines Matching refs:dst

50 	dsl_sync_task_t dst = { 0 };  in dsl_sync_task_common()  local
62 dst.dst_pool = dp; in dsl_sync_task_common()
63 dst.dst_txg = dmu_tx_get_txg(tx); in dsl_sync_task_common()
64 dst.dst_space = blocks_modified << DST_AVG_BLKSHIFT; in dsl_sync_task_common()
65 dst.dst_space_check = space_check; in dsl_sync_task_common()
66 dst.dst_checkfunc = checkfunc != NULL ? checkfunc : dsl_null_checkfunc; in dsl_sync_task_common()
67 dst.dst_syncfunc = syncfunc; in dsl_sync_task_common()
68 dst.dst_arg = arg; in dsl_sync_task_common()
69 dst.dst_error = 0; in dsl_sync_task_common()
70 dst.dst_nowaiter = B_FALSE; in dsl_sync_task_common()
73 err = dst.dst_checkfunc(arg, tx); in dsl_sync_task_common()
84 VERIFY(txg_list_add_tail(task_list, &dst, dst.dst_txg)); in dsl_sync_task_common()
88 if (sigfunc != NULL && txg_wait_synced_sig(dp, dst.dst_txg)) { in dsl_sync_task_common()
93 txg_wait_synced(dp, dst.dst_txg); in dsl_sync_task_common()
95 if (dst.dst_error == EAGAIN) { in dsl_sync_task_common()
96 txg_wait_synced(dp, dst.dst_txg + TXG_DEFER_SIZE); in dsl_sync_task_common()
101 return (dst.dst_error); in dsl_sync_task_common()
176 dsl_sync_task_t *dst = kmem_zalloc(sizeof (*dst), KM_SLEEP); in dsl_sync_task_nowait_common() local
178 dst->dst_pool = dp; in dsl_sync_task_nowait_common()
179 dst->dst_txg = dmu_tx_get_txg(tx); in dsl_sync_task_nowait_common()
180 dst->dst_space = blocks_modified << DST_AVG_BLKSHIFT; in dsl_sync_task_nowait_common()
181 dst->dst_space_check = space_check; in dsl_sync_task_nowait_common()
182 dst->dst_checkfunc = dsl_null_checkfunc; in dsl_sync_task_nowait_common()
183 dst->dst_syncfunc = syncfunc; in dsl_sync_task_nowait_common()
184 dst->dst_arg = arg; in dsl_sync_task_nowait_common()
185 dst->dst_error = 0; in dsl_sync_task_nowait_common()
186 dst->dst_nowaiter = B_TRUE; in dsl_sync_task_nowait_common()
190 VERIFY(txg_list_add_tail(task_list, dst, dst->dst_txg)); in dsl_sync_task_nowait_common()
213 dsl_sync_task_sync(dsl_sync_task_t *dst, dmu_tx_t *tx) in dsl_sync_task_sync() argument
215 dsl_pool_t *dp = dst->dst_pool; in dsl_sync_task_sync()
217 ASSERT0(dst->dst_error); in dsl_sync_task_sync()
232 if (dst->dst_space_check != ZFS_SPACE_CHECK_NONE) { in dsl_sync_task_sync()
234 dst->dst_space_check); in dsl_sync_task_sync()
238 if (used + dst->dst_space * 3 > quota) { in dsl_sync_task_sync()
239 dst->dst_error = SET_ERROR(ENOSPC); in dsl_sync_task_sync()
240 if (dst->dst_nowaiter) in dsl_sync_task_sync()
241 kmem_free(dst, sizeof (*dst)); in dsl_sync_task_sync()
250 dst->dst_error = dst->dst_checkfunc(dst->dst_arg, tx); in dsl_sync_task_sync()
251 if (dst->dst_error == 0) in dsl_sync_task_sync()
252 dst->dst_syncfunc(dst->dst_arg, tx); in dsl_sync_task_sync()
254 if (dst->dst_nowaiter) in dsl_sync_task_sync()
255 kmem_free(dst, sizeof (*dst)); in dsl_sync_task_sync()