Lines Matching defs:ddpa

2369 static int promote_hold(dsl_dataset_promote_arg_t *ddpa, dsl_pool_t *dp,
2371 static void promote_rele(dsl_dataset_promote_arg_t *ddpa, void *tag);
2376 dsl_dataset_promote_arg_t *ddpa = arg;
2386 err = promote_hold(ddpa, dp, FTAG);
2390 hds = ddpa->ddpa_clone;
2391 max_snap_len = MAXNAMELEN - strlen(ddpa->ddpa_clonename) - 1;
2394 promote_rele(ddpa, FTAG);
2403 promote_rele(ddpa, FTAG);
2407 snap = list_head(&ddpa->shared_snaps);
2411 snap = list_tail(&ddpa->clone_snaps);
2416 &ddpa->unique, &unused, &unused);
2434 ddpa->used = dsl_dataset_phys(origin_ds)->ds_referenced_bytes;
2435 ddpa->comp = dsl_dataset_phys(origin_ds)->ds_compressed_bytes;
2436 ddpa->uncomp = dsl_dataset_phys(origin_ds)->ds_uncompressed_bytes;
2437 for (snap = list_head(&ddpa->shared_snaps); snap;
2438 snap = list_next(&ddpa->shared_snaps, snap)) {
2461 (void) strcpy(ddpa->err_ds, snap->ds->ds_snapname);
2474 ddpa->used += dlused;
2475 ddpa->comp += dlcomp;
2476 ddpa->uncomp += dluncomp;
2483 if (ddpa->origin_origin) {
2484 ddpa->used -=
2485 dsl_dataset_phys(ddpa->origin_origin)->ds_referenced_bytes;
2486 ddpa->comp -=
2487 dsl_dataset_phys(ddpa->origin_origin)->ds_compressed_bytes;
2488 ddpa->uncomp -=
2489 dsl_dataset_phys(ddpa->origin_origin)->
2495 0, ss_mv_cnt, ddpa->used, ddpa->cr);
2515 snap = list_head(&ddpa->origin_snaps);
2516 err = snaplist_space(&ddpa->shared_snaps,
2517 snap->ds->ds_dir->dd_origin_txg, &ddpa->cloneusedsnap);
2521 err = snaplist_space(&ddpa->clone_snaps,
2525 ddpa->cloneusedsnap += space;
2529 err = snaplist_space(&ddpa->origin_snaps,
2531 &ddpa->originusedsnap);
2537 promote_rele(ddpa, FTAG);
2544 dsl_dataset_promote_arg_t *ddpa = arg;
2555 VERIFY0(promote_hold(ddpa, dp, FTAG));
2556 hds = ddpa->ddpa_clone;
2560 snap = list_head(&ddpa->shared_snaps);
2564 snap = list_head(&ddpa->origin_snaps);
2577 snap = list_tail(&ddpa->clone_snaps);
2606 dsl_dir_phys(ddpa->origin_origin->ds_dir)->dd_clones,
2610 dsl_dir_phys(ddpa->origin_origin->ds_dir)->dd_clones,
2622 for (snap = list_head(&ddpa->shared_snaps); snap;
2623 snap = list_next(&ddpa->shared_snaps, snap)) {
2700 delta = ddpa->cloneusedsnap -
2703 ASSERT3U(ddpa->used, >=, delta);
2706 ddpa->used - delta, ddpa->comp, ddpa->uncomp, tx);
2708 delta = ddpa->originusedsnap -
2711 ASSERT3U(ddpa->used, >=, -delta);
2714 -ddpa->used - delta, -ddpa->comp, -ddpa->uncomp, tx);
2716 dsl_dataset_phys(origin_ds)->ds_unique_bytes = ddpa->unique;
2722 promote_rele(ddpa, FTAG);
2794 promote_hold(dsl_dataset_promote_arg_t *ddpa, dsl_pool_t *dp, void *tag)
2800 error = dsl_dataset_hold(dp, ddpa->ddpa_clonename, tag,
2801 &ddpa->ddpa_clone);
2804 dd = ddpa->ddpa_clone->ds_dir;
2806 if (ddpa->ddpa_clone->ds_is_snapshot ||
2808 dsl_dataset_rele(ddpa->ddpa_clone, tag);
2813 &ddpa->shared_snaps, tag);
2817 error = snaplist_make(dp, 0, ddpa->ddpa_clone->ds_object,
2818 &ddpa->clone_snaps, tag);
2822 snap = list_head(&ddpa->shared_snaps);
2826 &ddpa->origin_snaps, tag);
2833 tag, &ddpa->origin_origin);
2839 promote_rele(ddpa, tag);
2844 promote_rele(dsl_dataset_promote_arg_t *ddpa, void *tag)
2846 snaplist_destroy(&ddpa->shared_snaps, tag);
2847 snaplist_destroy(&ddpa->clone_snaps, tag);
2848 snaplist_destroy(&ddpa->origin_snaps, tag);
2849 if (ddpa->origin_origin != NULL)
2850 dsl_dataset_rele(ddpa->origin_origin, tag);
2851 dsl_dataset_rele(ddpa->ddpa_clone, tag);
2863 dsl_dataset_promote_arg_t ddpa = { 0 };
2882 ddpa.ddpa_clonename = name;
2883 ddpa.err_ds = conflsnap;
2884 ddpa.cr = CRED();
2887 dsl_dataset_promote_sync, &ddpa,