| 1088 | } |
| 1089 | |
| 1090 | void |
| 1091 | dsl_pool_create_origin(dsl_pool_t *dp, dmu_tx_t *tx) |
| 1092 | { |
| 1093 | uint64_t dsobj; |
| 1094 | dsl_dataset_t *ds; |
| 1095 | |
| 1096 | ASSERT(dmu_tx_is_syncing(tx)); |
| 1097 | ASSERT(dp->dp_origin_snap == NULL); |
| 1098 | ASSERT(rrw_held(&dp->dp_config_rwlock, RW_WRITER)); |
| 1099 | |
| 1100 | /* create the origin dir, ds, & snap-ds */ |
| 1101 | dsobj = dsl_dataset_create_sync(dp->dp_root_dir, ORIGIN_DIR_NAME, |
| 1102 | NULL, 0, kcred, NULL, tx); |
| 1103 | VERIFY0(dsl_dataset_hold_obj(dp, dsobj, FTAG, &ds)); |
| 1104 | dsl_dataset_snapshot_sync_impl(ds, ORIGIN_DIR_NAME, tx); |
| 1105 | VERIFY0(dsl_dataset_hold_obj(dp, dsl_dataset_phys(ds)->ds_prev_snap_obj, |
| 1106 | dp, &dp->dp_origin_snap)); |
| 1107 | dsl_dataset_rele(ds, FTAG); |
| 1108 | } |
| 1109 | |
| 1110 | taskq_t * |
| 1111 | dsl_pool_zrele_taskq(dsl_pool_t *dp) |
no test coverage detected