Lines Matching refs:ddp

259 ddt_bp_fill(const ddt_phys_t *ddp, blkptr_t *bp, uint64_t txg)
264 bp->blk_dva[d] = ddp->ddp_dva[d];
265 BP_SET_BIRTH(bp, txg, ddp->ddp_phys_birth);
270 const ddt_key_t *ddk, const ddt_phys_t *ddp, blkptr_t *bp)
274 if (ddp != NULL)
275 ddt_bp_fill(ddp, bp, ddp->ddp_phys_birth);
302 ddt_phys_fill(ddt_phys_t *ddp, const blkptr_t *bp)
304 ASSERT(ddp->ddp_phys_birth == 0);
307 ddp->ddp_dva[d] = bp->blk_dva[d];
308 ddp->ddp_phys_birth = BP_PHYSICAL_BIRTH(bp);
312 ddt_phys_clear(ddt_phys_t *ddp)
314 bzero(ddp, sizeof (*ddp));
318 ddt_phys_addref(ddt_phys_t *ddp)
320 ddp->ddp_refcnt++;
324 ddt_phys_decref(ddt_phys_t *ddp)
326 ASSERT((int64_t)ddp->ddp_refcnt > 0);
327 ddp->ddp_refcnt--;
331 ddt_phys_free(ddt_t *ddt, ddt_key_t *ddk, ddt_phys_t *ddp, uint64_t txg)
335 ddt_bp_create(ddt->ddt_checksum, ddk, ddp, &blk);
336 ddt_phys_clear(ddp);
343 ddt_phys_t *ddp = (ddt_phys_t *)dde->dde_phys;
345 for (int p = 0; p < DDT_PHYS_TYPES; p++, ddp++) {
346 if (DVA_EQUAL(BP_IDENTITY(bp), &ddp->ddp_dva[0]) &&
347 BP_PHYSICAL_BIRTH(bp) == ddp->ddp_phys_birth)
348 return (ddp);
368 ddt_phys_t *ddp = dde->dde_phys;
375 for (int p = 0; p < DDT_PHYS_TYPES; p++, ddp++) {
377 uint64_t refcnt = ddp->ddp_refcnt;
379 if (ddp->ddp_phys_birth == 0)
383 dsize += dva_get_dsize_sync(spa, &ddp->ddp_dva[d]);
538 ddt_phys_t *ddp = &dde->dde_phys[p];
540 uint64_t refcnt = ddp->ddp_refcnt; /* committed refs */
543 if (ddp == ddp_willref)
567 ddt_phys_t *ddp = &dde->dde_phys[DDT_PHYS_DITTO];
568 dva_t *dva = ddp->ddp_dva;
953 ddt_phys_t *ddp = dde->dde_phys;
963 for (int p = 0; p < DDT_PHYS_TYPES; p++, ddp++, rddp++) {
964 if (ddp->ddp_phys_birth == 0 ||
965 ddp->ddp_phys_birth != rddp->ddp_phys_birth ||
966 bcmp(ddp->ddp_dva, rddp->ddp_dva, sizeof (ddp->ddp_dva)))
968 ddt_bp_create(ddt->ddt_checksum, ddk, ddp, &blk);
1006 ddt_phys_t *ddp = dde->dde_phys;
1017 for (int p = 0; p < DDT_PHYS_TYPES; p++, ddp++) {
1019 ASSERT((int64_t)ddp->ddp_refcnt >= 0);
1020 if (ddp->ddp_phys_birth == 0) {
1021 ASSERT(ddp->ddp_refcnt == 0);
1026 ddt_phys_free(ddt, ddk, ddp, txg);
1029 if (ddp->ddp_refcnt == 0)
1030 ddt_phys_free(ddt, ddk, ddp, txg);
1031 total_refcnt += ddp->ddp_refcnt;