Functions |
| SYSCTL_DECL (_vfs_zfs) |
| SYSCTL_NODE (_vfs_zfs, OID_AUTO, dedup, CTLFLAG_RW, 0,"ZFS DEDUP") |
| TUNABLE_INT ("vfs.zfs.dedup.prefetch",&zfs_dedup_prefetch) |
| SYSCTL_INT (_vfs_zfs_dedup, OID_AUTO, prefetch, CTLFLAG_RW,&zfs_dedup_prefetch, 0,"Enable/disable prefetching of dedup-ed blocks which are going to be freed") |
static void | ddt_object_create (ddt_t *ddt, enum ddt_type type, enum ddt_class class, dmu_tx_t *tx) |
static void | ddt_object_destroy (ddt_t *ddt, enum ddt_type type, enum ddt_class class, dmu_tx_t *tx) |
static int | ddt_object_load (ddt_t *ddt, enum ddt_type type, enum ddt_class class) |
static void | ddt_object_sync (ddt_t *ddt, enum ddt_type type, enum ddt_class class, dmu_tx_t *tx) |
static int | ddt_object_lookup (ddt_t *ddt, enum ddt_type type, enum ddt_class class, ddt_entry_t *dde) |
static void | ddt_object_prefetch (ddt_t *ddt, enum ddt_type type, enum ddt_class class, ddt_entry_t *dde) |
int | ddt_object_update (ddt_t *ddt, enum ddt_type type, enum ddt_class class, ddt_entry_t *dde, dmu_tx_t *tx) |
static int | ddt_object_remove (ddt_t *ddt, enum ddt_type type, enum ddt_class class, ddt_entry_t *dde, dmu_tx_t *tx) |
int | ddt_object_walk (ddt_t *ddt, enum ddt_type type, enum ddt_class class, uint64_t *walk, ddt_entry_t *dde) |
uint64_t | ddt_object_count (ddt_t *ddt, enum ddt_type type, enum ddt_class class) |
int | ddt_object_info (ddt_t *ddt, enum ddt_type type, enum ddt_class class, dmu_object_info_t *doi) |
boolean_t | ddt_object_exists (ddt_t *ddt, enum ddt_type type, enum ddt_class class) |
void | ddt_object_name (ddt_t *ddt, enum ddt_type type, enum ddt_class class, char *name) |
void | ddt_bp_fill (const ddt_phys_t *ddp, blkptr_t *bp, uint64_t txg) |
void | ddt_bp_create (enum zio_checksum checksum, const ddt_key_t *ddk, const ddt_phys_t *ddp, blkptr_t *bp) |
void | ddt_key_fill (ddt_key_t *ddk, const blkptr_t *bp) |
void | ddt_phys_fill (ddt_phys_t *ddp, const blkptr_t *bp) |
void | ddt_phys_clear (ddt_phys_t *ddp) |
void | ddt_phys_addref (ddt_phys_t *ddp) |
void | ddt_phys_decref (ddt_phys_t *ddp) |
void | ddt_phys_free (ddt_t *ddt, ddt_key_t *ddk, ddt_phys_t *ddp, uint64_t txg) |
ddt_phys_t * | ddt_phys_select (const ddt_entry_t *dde, const blkptr_t *bp) |
uint64_t | ddt_phys_total_refcnt (const ddt_entry_t *dde) |
static void | ddt_stat_generate (ddt_t *ddt, ddt_entry_t *dde, ddt_stat_t *dds) |
void | ddt_stat_add (ddt_stat_t *dst, const ddt_stat_t *src, uint64_t neg) |
static void | ddt_stat_update (ddt_t *ddt, ddt_entry_t *dde, uint64_t neg) |
void | ddt_histogram_add (ddt_histogram_t *dst, const ddt_histogram_t *src) |
void | ddt_histogram_stat (ddt_stat_t *dds, const ddt_histogram_t *ddh) |
boolean_t | ddt_histogram_empty (const ddt_histogram_t *ddh) |
void | ddt_get_dedup_object_stats (spa_t *spa, ddt_object_t *ddo_total) |
void | ddt_get_dedup_histogram (spa_t *spa, ddt_histogram_t *ddh) |
void | ddt_get_dedup_stats (spa_t *spa, ddt_stat_t *dds_total) |
uint64_t | ddt_get_dedup_dspace (spa_t *spa) |
uint64_t | ddt_get_pool_dedup_ratio (spa_t *spa) |
int | ddt_ditto_copies_needed (ddt_t *ddt, ddt_entry_t *dde, ddt_phys_t *ddp_willref) |
int | ddt_ditto_copies_present (ddt_entry_t *dde) |
size_t | ddt_compress (void *src, uchar_t *dst, size_t s_len, size_t d_len) |
void | ddt_decompress (uchar_t *src, void *dst, size_t s_len, size_t d_len) |
ddt_t * | ddt_select_by_checksum (spa_t *spa, enum zio_checksum c) |
ddt_t * | ddt_select (spa_t *spa, const blkptr_t *bp) |
void | ddt_enter (ddt_t *ddt) |
void | ddt_exit (ddt_t *ddt) |
static ddt_entry_t * | ddt_alloc (const ddt_key_t *ddk) |
static void | ddt_free (ddt_entry_t *dde) |
void | ddt_remove (ddt_t *ddt, ddt_entry_t *dde) |
ddt_entry_t * | ddt_lookup (ddt_t *ddt, const blkptr_t *bp, boolean_t add) |
void | ddt_prefetch (spa_t *spa, const blkptr_t *bp) |
int | ddt_entry_compare (const void *x1, const void *x2) |
static ddt_t * | ddt_table_alloc (spa_t *spa, enum zio_checksum c) |
static void | ddt_table_free (ddt_t *ddt) |
void | ddt_create (spa_t *spa) |
int | ddt_load (spa_t *spa) |
void | ddt_unload (spa_t *spa) |
boolean_t | ddt_class_contains (spa_t *spa, enum ddt_class max_class, const blkptr_t *bp) |
ddt_entry_t * | ddt_repair_start (ddt_t *ddt, const blkptr_t *bp) |
void | ddt_repair_done (ddt_t *ddt, ddt_entry_t *dde) |
static void | ddt_repair_entry_done (zio_t *zio) |
static void | ddt_repair_entry (ddt_t *ddt, ddt_entry_t *dde, ddt_entry_t *rdde, zio_t *rio) |
static void | ddt_repair_table (ddt_t *ddt, zio_t *rio) |
static void | ddt_sync_entry (ddt_t *ddt, ddt_entry_t *dde, dmu_tx_t *tx, uint64_t txg) |
static void | ddt_sync_table (ddt_t *ddt, dmu_tx_t *tx, uint64_t txg) |
void | ddt_sync (spa_t *spa, uint64_t txg) |
int | ddt_walk (spa_t *spa, ddt_bookmark_t *ddb, ddt_entry_t *dde) |
Variables |
int | zfs_dedup_prefetch = 1 |
| Enable/disable prefetching of dedup-ed blocks which are going to be freed.
|
static const ddt_ops_t * | ddt_ops [DDT_TYPES] |
static const char * | ddt_class_name [DDT_CLASSES] |