Lines Matching defs:origin

803 dsl_dataset_create_sync_dd(dsl_dir_t *dd, dsl_dataset_t *origin,
812 if (origin == NULL)
813 origin = dp->dp_origin_snap;
815 ASSERT(origin == NULL || origin->ds_dir->dd_pool == dp);
816 ASSERT(origin == NULL || dsl_dataset_phys(origin)->ds_num_children > 0);
837 if (origin == NULL) {
840 dsl_dataset_t *ohds; /* head of the origin snapshot */
842 dsphys->ds_prev_snap_obj = origin->ds_object;
844 dsl_dataset_phys(origin)->ds_creation_txg;
846 dsl_dataset_phys(origin)->ds_referenced_bytes;
848 dsl_dataset_phys(origin)->ds_compressed_bytes;
850 dsl_dataset_phys(origin)->ds_uncompressed_bytes;
851 rrw_enter(&origin->ds_bp_rwlock, RW_READER, FTAG);
852 dsphys->ds_bp = dsl_dataset_phys(origin)->ds_bp;
853 rrw_exit(&origin->ds_bp_rwlock, FTAG);
859 dsphys->ds_flags |= dsl_dataset_phys(origin)->ds_flags &
863 if (origin->ds_feature_inuse[f])
867 dmu_buf_will_dirty(origin->ds_dbuf, tx);
868 dsl_dataset_phys(origin)->ds_num_children++;
871 dsl_dir_phys(origin->ds_dir)->dd_head_dataset_obj,
878 if (dsl_dataset_phys(origin)->ds_next_clones_obj == 0) {
879 dsl_dataset_phys(origin)->ds_next_clones_obj =
884 dsl_dataset_phys(origin)->ds_next_clones_obj,
889 dsl_dir_phys(dd)->dd_origin_obj = origin->ds_object;
891 if (dsl_dir_phys(origin->ds_dir)->dd_clones == 0) {
892 dmu_buf_will_dirty(origin->ds_dir->dd_dbuf, tx);
893 dsl_dir_phys(origin->ds_dir)->dd_clones =
898 dsl_dir_phys(origin->ds_dir)->dd_clones,
938 dsl_dataset_t *origin, uint64_t flags, cred_t *cr, dmu_tx_t *tx)
950 dsobj = dsl_dataset_create_sync_dd(dd, origin,
974 * data from the origin snapshots zil header.
976 if (origin != NULL && !(flags & DS_CREATE_FLAG_NODIRTY)) {
1356 * The origin's ds_creation_txg has to be < TXG_INITIAL
2362 dsl_dataset_t *origin_origin; /* origin of the origin */
2410 /* compute origin's new unique space */
2481 * so we need to subtract out the clone origin's used space.
2501 * after the promotion (for both origin and clone). For each,
2503 * deadlists (that was not born before their new origin).
2574 /* change origin's next snap */
2582 /* change the origin's next clone */
2591 /* change origin */
2671 * origin's reference.
2697 * is true for each of {clone,origin} independently.
2729 * snapshots back to this dataset's origin.
2917 /* the clone should be a child of the origin */
3034 * Reset origin's unique bytes, if it exists.
3037 dsl_dataset_t *origin = clone->ds_prev;
3040 dmu_buf_will_dirty(origin->ds_dbuf, tx);
3042 dsl_dataset_phys(origin)->ds_prev_snap_txg, UINT64_MAX,
3043 &dsl_dataset_phys(origin)->ds_unique_bytes, &comp, &uncomp);
3424 * a snapshot before new, in new's filesystem (or its origin). If not then
3575 * 'earlier' is before 'later'. Or 'earlier' could be the origin of
3576 * 'later's filesystem. Or 'earlier' could be an older snapshot in the origin's
3577 * filesystem. Or 'earlier' could be the origin's origin.
3606 dsl_dataset_t *origin;
3608 dsl_dir_phys(later->ds_dir)->dd_origin_obj, FTAG, &origin);
3611 ret = dsl_dataset_is_before(origin, earlier, earlier_txg);
3612 dsl_dataset_rele(origin, FTAG);