MCPcopy Create free account
hub / github.com/F-Stack/f-stack / ddt_repair_table

Function ddt_repair_table

freebsd/contrib/openzfs/module/zfs/ddt.c:979–1002  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

977}
978
979static void
980ddt_repair_table(ddt_t *ddt, zio_t *rio)
981{
982 spa_t *spa = ddt->ddt_spa;
983 ddt_entry_t *dde, *rdde_next, *rdde;
984 avl_tree_t *t = &ddt->ddt_repair_tree;
985 blkptr_t blk;
986
987 if (spa_sync_pass(spa) > 1)
988 return;
989
990 ddt_enter(ddt);
991 for (rdde = avl_first(t); rdde != NULL; rdde = rdde_next) {
992 rdde_next = AVL_NEXT(t, rdde);
993 avl_remove(&ddt->ddt_repair_tree, rdde);
994 ddt_exit(ddt);
995 ddt_bp_create(ddt->ddt_checksum, &rdde->dde_key, NULL, &blk);
996 dde = ddt_repair_start(ddt, &blk);
997 ddt_repair_entry(ddt, dde, rdde, rio);
998 ddt_repair_done(ddt, dde);
999 ddt_enter(ddt);
1000 }
1001 ddt_exit(ddt);
1002}
1003
1004static void
1005ddt_sync_entry(ddt_t *ddt, ddt_entry_t *dde, dmu_tx_t *tx, uint64_t txg)

Callers 1

ddt_syncFunction · 0.85

Calls 9

spa_sync_passFunction · 0.85
ddt_enterFunction · 0.85
avl_firstFunction · 0.85
avl_removeFunction · 0.85
ddt_exitFunction · 0.85
ddt_bp_createFunction · 0.85
ddt_repair_startFunction · 0.85
ddt_repair_entryFunction · 0.85
ddt_repair_doneFunction · 0.85

Tested by

no test coverage detected