Lines Matching refs:ddp
246 ddt_bp_fill(const ddt_phys_t *ddp, blkptr_t *bp, uint64_t txg) in ddt_bp_fill() argument
251 bp->blk_dva[d] = ddp->ddp_dva[d]; in ddt_bp_fill()
252 BP_SET_BIRTH(bp, txg, ddp->ddp_phys_birth); in ddt_bp_fill()
257 const ddt_key_t *ddk, const ddt_phys_t *ddp, blkptr_t *bp) in ddt_bp_create() argument
261 if (ddp != NULL) in ddt_bp_create()
262 ddt_bp_fill(ddp, bp, ddp->ddp_phys_birth); in ddt_bp_create()
289 ddt_phys_fill(ddt_phys_t *ddp, const blkptr_t *bp) in ddt_phys_fill() argument
291 ASSERT(ddp->ddp_phys_birth == 0); in ddt_phys_fill()
294 ddp->ddp_dva[d] = bp->blk_dva[d]; in ddt_phys_fill()
295 ddp->ddp_phys_birth = BP_PHYSICAL_BIRTH(bp); in ddt_phys_fill()
299 ddt_phys_clear(ddt_phys_t *ddp) in ddt_phys_clear() argument
301 bzero(ddp, sizeof (*ddp)); in ddt_phys_clear()
305 ddt_phys_addref(ddt_phys_t *ddp) in ddt_phys_addref() argument
307 ddp->ddp_refcnt++; in ddt_phys_addref()
311 ddt_phys_decref(ddt_phys_t *ddp) in ddt_phys_decref() argument
313 ASSERT((int64_t)ddp->ddp_refcnt > 0); in ddt_phys_decref()
314 ddp->ddp_refcnt--; in ddt_phys_decref()
318 ddt_phys_free(ddt_t *ddt, ddt_key_t *ddk, ddt_phys_t *ddp, uint64_t txg) in ddt_phys_free() argument
322 ddt_bp_create(ddt->ddt_checksum, ddk, ddp, &blk); in ddt_phys_free()
323 ddt_phys_clear(ddp); in ddt_phys_free()
330 ddt_phys_t *ddp = (ddt_phys_t *)dde->dde_phys; in ddt_phys_select() local
332 for (int p = 0; p < DDT_PHYS_TYPES; p++, ddp++) { in ddt_phys_select()
333 if (DVA_EQUAL(BP_IDENTITY(bp), &ddp->ddp_dva[0]) && in ddt_phys_select()
334 BP_PHYSICAL_BIRTH(bp) == ddp->ddp_phys_birth) in ddt_phys_select()
335 return (ddp); in ddt_phys_select()
355 ddt_phys_t *ddp = dde->dde_phys; in ddt_stat_generate() local
362 for (int p = 0; p < DDT_PHYS_TYPES; p++, ddp++) { in ddt_stat_generate()
364 uint64_t refcnt = ddp->ddp_refcnt; in ddt_stat_generate()
366 if (ddp->ddp_phys_birth == 0) in ddt_stat_generate()
370 dsize += dva_get_dsize_sync(spa, &ddp->ddp_dva[d]); in ddt_stat_generate()
525 ddt_phys_t *ddp = &dde->dde_phys[p]; in ddt_ditto_copies_needed() local
527 uint64_t refcnt = ddp->ddp_refcnt; /* committed refs */ in ddt_ditto_copies_needed()
530 if (ddp == ddp_willref) in ddt_ditto_copies_needed()
554 ddt_phys_t *ddp = &dde->dde_phys[DDT_PHYS_DITTO]; in ddt_ditto_copies_present() local
555 dva_t *dva = ddp->ddp_dva; in ddt_ditto_copies_present()
940 ddt_phys_t *ddp = dde->dde_phys; in ddt_repair_entry() local
950 for (int p = 0; p < DDT_PHYS_TYPES; p++, ddp++, rddp++) { in ddt_repair_entry()
951 if (ddp->ddp_phys_birth == 0 || in ddt_repair_entry()
952 ddp->ddp_phys_birth != rddp->ddp_phys_birth || in ddt_repair_entry()
953 bcmp(ddp->ddp_dva, rddp->ddp_dva, sizeof (ddp->ddp_dva))) in ddt_repair_entry()
955 ddt_bp_create(ddt->ddt_checksum, ddk, ddp, &blk); in ddt_repair_entry()
993 ddt_phys_t *ddp = dde->dde_phys; in ddt_sync_entry() local
1004 for (int p = 0; p < DDT_PHYS_TYPES; p++, ddp++) { in ddt_sync_entry()
1006 ASSERT((int64_t)ddp->ddp_refcnt >= 0); in ddt_sync_entry()
1007 if (ddp->ddp_phys_birth == 0) { in ddt_sync_entry()
1008 ASSERT(ddp->ddp_refcnt == 0); in ddt_sync_entry()
1013 ddt_phys_free(ddt, ddk, ddp, txg); in ddt_sync_entry()
1016 if (ddp->ddp_refcnt == 0) in ddt_sync_entry()
1017 ddt_phys_free(ddt, ddk, ddp, txg); in ddt_sync_entry()
1018 total_refcnt += ddp->ddp_refcnt; in ddt_sync_entry()