| 
Functions | 
| static void | txg_sync_thread (void *arg) | 
| static void | txg_quiesce_thread (void *arg) | 
|  | SYSCTL_DECL (_vfs_zfs) | 
|  | SYSCTL_NODE (_vfs_zfs, OID_AUTO, txg, CTLFLAG_RW, 0,"ZFS TXG") | 
|  | TUNABLE_INT ("vfs.zfs.txg.timeout",&zfs_txg_timeout) | 
|  | SYSCTL_INT (_vfs_zfs_txg, OID_AUTO, timeout, CTLFLAG_RW,&zfs_txg_timeout, 0,"Maximum seconds worth of delta per txg") | 
| void | txg_init (dsl_pool_t *dp, uint64_t txg) | 
|  | Prepares the txg subsystem. 
 | 
| void | txg_fini (dsl_pool_t *dp) | 
|  | Closes down the txg subsystem. 
 | 
| void | txg_sync_start (dsl_pool_t *dp) | 
|  | Starts syncing transaction groups. 
 | 
| static void | txg_thread_enter (tx_state_t *tx, callb_cpr_t *cpr) | 
| static void | txg_thread_exit (tx_state_t *tx, callb_cpr_t *cpr, kthread_t **tpp) | 
| static void | txg_thread_wait (tx_state_t *tx, callb_cpr_t *cpr, kcondvar_t *cv, uint64_t time) | 
| void | txg_sync_stop (dsl_pool_t *dp) | 
|  | Stops syncing transaction groups. 
 | 
| uint64_t | txg_hold_open (dsl_pool_t *dp, txg_handle_t *th) | 
| void | txg_rele_to_quiesce (txg_handle_t *th) | 
| void | txg_register_callbacks (txg_handle_t *th, list_t *tx_callbacks) | 
| void | txg_rele_to_sync (txg_handle_t *th) | 
| static void | txg_quiesce (dsl_pool_t *dp, uint64_t txg) | 
|  | Blocks until all transactions in the group are released. 
 | 
| static void | txg_do_callbacks (void *arg) | 
| static void | txg_dispatch_callbacks (dsl_pool_t *dp, uint64_t txg) | 
|  | Dispatch the commit callbacks registered on this txg. 
 | 
| void | txg_delay (dsl_pool_t *dp, uint64_t txg, int ticks) | 
|  | Delay this thread by 'ticks' if we are still in the open transaction group and there is already a waiting txg quiesing or quiesced. 
 | 
| void | txg_wait_synced (dsl_pool_t *dp, uint64_t txg) | 
|  | Wait until the given transaction group has finished syncing. 
 | 
| void | txg_wait_open (dsl_pool_t *dp, uint64_t txg) | 
|  | Wait until the given transaction group, or one after it, is the open transaction group. 
 | 
| boolean_t | txg_stalled (dsl_pool_t *dp) | 
|  | Are we waiting for the syncing transaction to complete? 
 | 
| boolean_t | txg_sync_waiting (dsl_pool_t *dp) | 
| void | txg_list_create (txg_list_t *tl, size_t offset) | 
|  | Per-txg object lists. 
 | 
| void | txg_list_destroy (txg_list_t *tl) | 
| boolean_t | txg_list_empty (txg_list_t *tl, uint64_t txg) | 
| int | txg_list_add (txg_list_t *tl, void *p, uint64_t txg) | 
|  | Add an entry to the list. 
 | 
| int | txg_list_add_tail (txg_list_t *tl, void *p, uint64_t txg) | 
|  | Add an entry to the end of the list (walks list to find end). 
 | 
| void * | txg_list_remove (txg_list_t *tl, uint64_t txg) | 
|  | Remove the head of the list and return it. 
 | 
| void * | txg_list_remove_this (txg_list_t *tl, void *p, uint64_t txg) | 
|  | Remove a specific item from the list and return it. 
 | 
| int | txg_list_member (txg_list_t *tl, void *p, uint64_t txg) | 
| void * | txg_list_head (txg_list_t *tl, uint64_t txg) | 
|  | Walk a txg list - only safe if you know it's not changing. 
 | 
| void * | txg_list_next (txg_list_t *tl, void *p, uint64_t txg) | 
| 
Variables | 
| int | zfs_txg_timeout = 5 | 
|  | max seconds worth of delta per txg 
 | 
Pool-wide transaction groups. 
Definition in file txg.c.