Lines Matching refs:ddp
245 ddt_bp_fill(const ddt_phys_t *ddp, blkptr_t *bp, uint64_t txg) in ddt_bp_fill() argument
250 bp->blk_dva[d] = ddp->ddp_dva[d]; in ddt_bp_fill()
251 BP_SET_BIRTH(bp, txg, ddp->ddp_phys_birth); in ddt_bp_fill()
256 const ddt_key_t *ddk, const ddt_phys_t *ddp, blkptr_t *bp) in ddt_bp_create() argument
260 if (ddp != NULL) in ddt_bp_create()
261 ddt_bp_fill(ddp, bp, ddp->ddp_phys_birth); in ddt_bp_create()
288 ddt_phys_fill(ddt_phys_t *ddp, const blkptr_t *bp) in ddt_phys_fill() argument
290 ASSERT(ddp->ddp_phys_birth == 0); in ddt_phys_fill()
293 ddp->ddp_dva[d] = bp->blk_dva[d]; in ddt_phys_fill()
294 ddp->ddp_phys_birth = BP_PHYSICAL_BIRTH(bp); in ddt_phys_fill()
298 ddt_phys_clear(ddt_phys_t *ddp) in ddt_phys_clear() argument
300 bzero(ddp, sizeof (*ddp)); in ddt_phys_clear()
304 ddt_phys_addref(ddt_phys_t *ddp) in ddt_phys_addref() argument
306 ddp->ddp_refcnt++; in ddt_phys_addref()
310 ddt_phys_decref(ddt_phys_t *ddp) in ddt_phys_decref() argument
312 ASSERT((int64_t)ddp->ddp_refcnt > 0); in ddt_phys_decref()
313 ddp->ddp_refcnt--; in ddt_phys_decref()
317 ddt_phys_free(ddt_t *ddt, ddt_key_t *ddk, ddt_phys_t *ddp, uint64_t txg) in ddt_phys_free() argument
321 ddt_bp_create(ddt->ddt_checksum, ddk, ddp, &blk); in ddt_phys_free()
322 ddt_phys_clear(ddp); in ddt_phys_free()
329 ddt_phys_t *ddp = (ddt_phys_t *)dde->dde_phys; in ddt_phys_select() local
331 for (int p = 0; p < DDT_PHYS_TYPES; p++, ddp++) { in ddt_phys_select()
332 if (DVA_EQUAL(BP_IDENTITY(bp), &ddp->ddp_dva[0]) && in ddt_phys_select()
333 BP_PHYSICAL_BIRTH(bp) == ddp->ddp_phys_birth) in ddt_phys_select()
334 return (ddp); in ddt_phys_select()
354 ddt_phys_t *ddp = dde->dde_phys; in ddt_stat_generate() local
361 for (int p = 0; p < DDT_PHYS_TYPES; p++, ddp++) { in ddt_stat_generate()
363 uint64_t refcnt = ddp->ddp_refcnt; in ddt_stat_generate()
365 if (ddp->ddp_phys_birth == 0) in ddt_stat_generate()
369 dsize += dva_get_dsize_sync(spa, &ddp->ddp_dva[d]); in ddt_stat_generate()
524 ddt_phys_t *ddp = &dde->dde_phys[p]; in ddt_ditto_copies_needed() local
526 uint64_t refcnt = ddp->ddp_refcnt; /* committed refs */ in ddt_ditto_copies_needed()
529 if (ddp == ddp_willref) in ddt_ditto_copies_needed()
553 ddt_phys_t *ddp = &dde->dde_phys[DDT_PHYS_DITTO]; in ddt_ditto_copies_present() local
554 dva_t *dva = ddp->ddp_dva; in ddt_ditto_copies_present()
939 ddt_phys_t *ddp = dde->dde_phys; in ddt_repair_entry() local
949 for (int p = 0; p < DDT_PHYS_TYPES; p++, ddp++, rddp++) { in ddt_repair_entry()
950 if (ddp->ddp_phys_birth == 0 || in ddt_repair_entry()
951 ddp->ddp_phys_birth != rddp->ddp_phys_birth || in ddt_repair_entry()
952 bcmp(ddp->ddp_dva, rddp->ddp_dva, sizeof (ddp->ddp_dva))) in ddt_repair_entry()
954 ddt_bp_create(ddt->ddt_checksum, ddk, ddp, &blk); in ddt_repair_entry()
992 ddt_phys_t *ddp = dde->dde_phys; in ddt_sync_entry() local
1003 for (int p = 0; p < DDT_PHYS_TYPES; p++, ddp++) { in ddt_sync_entry()
1005 ASSERT((int64_t)ddp->ddp_refcnt >= 0); in ddt_sync_entry()
1006 if (ddp->ddp_phys_birth == 0) { in ddt_sync_entry()
1007 ASSERT(ddp->ddp_refcnt == 0); in ddt_sync_entry()
1012 ddt_phys_free(ddt, ddk, ddp, txg); in ddt_sync_entry()
1015 if (ddp->ddp_refcnt == 0) in ddt_sync_entry()
1016 ddt_phys_free(ddt, ddk, ddp, txg); in ddt_sync_entry()
1017 total_refcnt += ddp->ddp_refcnt; in ddt_sync_entry()