Lines Matching defs:snap

321 		/* if (logical birth > prev prev snap txg) prev unique += bs */
966 /* add '@' if ds is a snap */
2649 * 'snap' should be a buffer of size ZFS_MAX_DATASET_NAME_LEN.
2652 dsl_get_prev_snap(dsl_dataset_t *ds, char *snap)
2656 dsl_dataset_name(ds->ds_prev, snap);
2890 dsl_dataset_modified_since_snap(dsl_dataset_t *ds, dsl_dataset_t *snap)
2896 if (snap == NULL)
2901 if (birth > dsl_dataset_phys(snap)->ds_creation_txg) {
2910 if (dmu_objset_from_ds(snap, &os_snap) != 0)
3181 * Check if the snap we are rolling back to uses more than
3284 struct promotenode *snap;
3303 snap = list_head(&ddpa->shared_snaps);
3304 if (snap == NULL) {
3308 dsl_dataset_t *const origin_ds = snap->ds;
3330 snap = list_tail(&ddpa->clone_snaps);
3331 ASSERT(snap != NULL);
3332 ASSERT3U(dsl_dataset_phys(snap->ds)->ds_prev_snap_obj, ==,
3334 dsl_deadlist_space_range(&snap->ds->ds_deadlist,
3358 for (snap = list_head(&ddpa->shared_snaps); snap;
3359 snap = list_next(&ddpa->shared_snaps, snap)) {
3361 dsl_dataset_t *ds = snap->ds;
3383 snap->ds->ds_snapname);
3472 snap = list_head(&ddpa->origin_snaps);
3473 if (snap == NULL) {
3478 snap->ds->ds_dir->dd_origin_txg, &ddpa->cloneusedsnap);
3483 snap->ds->ds_dir->dd_origin_txg, &space);
3508 struct promotenode *snap;
3523 snap = list_head(&ddpa->shared_snaps);
3524 origin_ds = snap->ds;
3527 snap = list_head(&ddpa->origin_snaps);
3528 origin_head = snap->ds;
3539 /* change origin's next snap */
3542 snap = list_tail(&ddpa->clone_snaps);
3543 ASSERT3U(dsl_dataset_phys(snap->ds)->ds_prev_snap_obj, ==,
3545 dsl_dataset_phys(origin_ds)->ds_next_snap_obj = snap->ds->ds_object;
3550 snap->ds->ds_object, tx);
3606 for (snap = list_head(&ddpa->shared_snaps); snap;
3607 snap = list_next(&ddpa->shared_snaps, snap)) {
3608 dsl_dataset_t *ds = snap->ds;
3620 /* move snap name entry */
3744 struct promotenode *snap;
3755 snap = kmem_alloc(sizeof (*snap), KM_SLEEP);
3756 snap->ds = ds;
3757 list_insert_tail(l, snap);
3767 struct promotenode *snap;
3770 for (snap = list_head(l); snap; snap = list_next(l, snap)) {
3772 dsl_deadlist_space_range(&snap->ds->ds_deadlist,
3782 struct promotenode *snap;
3787 while ((snap = list_remove_tail(l)) != NULL) {
3788 dsl_dataset_rele(snap->ds, tag);
3789 kmem_free(snap, sizeof (*snap));
3799 struct promotenode *snap;
3823 snap = list_head(&ddpa->shared_snaps);
3824 ASSERT3U(snap->ds->ds_object, ==, dsl_dir_phys(dd)->dd_origin_obj);
3826 dsl_dir_phys(snap->ds->ds_dir)->dd_head_dataset_obj,
3831 if (dsl_dir_phys(snap->ds->ds_dir)->dd_origin_obj != 0) {
3833 dsl_dir_phys(snap->ds->ds_dir)->dd_origin_obj,
4603 dsl_dataset_t *snap = new;
4605 while (dsl_dataset_phys(snap)->ds_prev_snap_txg >
4609 dsl_deadlist_space_range(&snap->ds_deadlist,
4616 uint64_t snapobj = dsl_dataset_phys(snap)->ds_prev_snap_obj;
4617 if (snap != new)
4618 dsl_dataset_rele(snap, FTAG);
4619 err = dsl_dataset_hold_obj(dp, snapobj, FTAG, &snap);
4634 ASSERT3U(dsl_dataset_phys(snap)->ds_prev_snap_txg, ==,
4637 dsl_deadlist_space(&snap->ds_deadlist, &used, &comp, &uncomp);
4642 if (snap != new)
4643 dsl_dataset_rele(snap, FTAG);
4704 * This is the set of blocks that were born after the snap before firstsnap,
4705 * (birth > firstsnap->prev_snap_txg) and died before the snap after the
4706 * last snap (ie, is on lastsnap->ds_next->ds_deadlist or an earlier deadlist).
4707 * We calculate this by iterating over the relevant deadlists (from the snap
4708 * after lastsnap, backward to the snap after firstsnap), summing up the
4709 * space on the deadlist that was born after the snap before firstsnap.