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

Function ddt_object_create

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

Source from the content-addressed store, hash-verified

57};
58
59static void
60ddt_object_create(ddt_t *ddt, enum ddt_type type, enum ddt_class class,
61 dmu_tx_t *tx)
62{
63 spa_t *spa = ddt->ddt_spa;
64 objset_t *os = ddt->ddt_os;
65 uint64_t *objectp = &ddt->ddt_object[type][class];
66 boolean_t prehash = zio_checksum_table[ddt->ddt_checksum].ci_flags &
67 ZCHECKSUM_FLAG_DEDUP;
68 char name[DDT_NAMELEN];
69
70 ddt_object_name(ddt, type, class, name);
71
72 ASSERT(*objectp == 0);
73 VERIFY(ddt_ops[type]->ddt_op_create(os, objectp, tx, prehash) == 0);
74 ASSERT(*objectp != 0);
75
76 VERIFY(zap_add(os, DMU_POOL_DIRECTORY_OBJECT, name,
77 sizeof (uint64_t), 1, objectp, tx) == 0);
78
79 VERIFY(zap_add(os, spa->spa_ddt_stat_object, name,
80 sizeof (uint64_t), sizeof (ddt_histogram_t) / sizeof (uint64_t),
81 &ddt->ddt_histogram[type][class], tx) == 0);
82}
83
84static void
85ddt_object_destroy(ddt_t *ddt, enum ddt_type type, enum ddt_class class,

Callers 1

ddt_sync_entryFunction · 0.85

Calls 2

ddt_object_nameFunction · 0.85
zap_addFunction · 0.85

Tested by

no test coverage detected