FreeBSD ZFS
The Zettabyte File System
Functions

dsl_deadlist.c File Reference

#include <sys/dsl_dataset.h>
#include <sys/dmu.h>
#include <sys/refcount.h>
#include <sys/zap.h>
#include <sys/zfs_context.h>
#include <sys/dsl_pool.h>
Include dependency graph for dsl_deadlist.c:

Go to the source code of this file.

Functions

static int dsl_deadlist_compare (const void *arg1, const void *arg2)
static void dsl_deadlist_load_tree (dsl_deadlist_t *dl)
void dsl_deadlist_open (dsl_deadlist_t *dl, objset_t *os, uint64_t object)
void dsl_deadlist_close (dsl_deadlist_t *dl)
uint64_t dsl_deadlist_alloc (objset_t *os, dmu_tx_t *tx)
void dsl_deadlist_free (objset_t *os, uint64_t dlobj, dmu_tx_t *tx)
static void dle_enqueue (dsl_deadlist_t *dl, dsl_deadlist_entry_t *dle, const blkptr_t *bp, dmu_tx_t *tx)
static void dle_enqueue_subobj (dsl_deadlist_t *dl, dsl_deadlist_entry_t *dle, uint64_t obj, dmu_tx_t *tx)
void dsl_deadlist_insert (dsl_deadlist_t *dl, const blkptr_t *bp, dmu_tx_t *tx)
void dsl_deadlist_add_key (dsl_deadlist_t *dl, uint64_t mintxg, dmu_tx_t *tx)
 Insert new key in deadlist, which must be > all current entries.
void dsl_deadlist_remove_key (dsl_deadlist_t *dl, uint64_t mintxg, dmu_tx_t *tx)
 Remove this key, merging its entries into the previous key.
static void dsl_deadlist_regenerate (objset_t *os, uint64_t dlobj, uint64_t mrs_obj, dmu_tx_t *tx)
 Walk ds's snapshots to regenerate generate ZAP & AVL.
uint64_t dsl_deadlist_clone (dsl_deadlist_t *dl, uint64_t maxtxg, uint64_t mrs_obj, dmu_tx_t *tx)
void dsl_deadlist_space (dsl_deadlist_t *dl, uint64_t *usedp, uint64_t *compp, uint64_t *uncompp)
void dsl_deadlist_space_range (dsl_deadlist_t *dl, uint64_t mintxg, uint64_t maxtxg, uint64_t *usedp, uint64_t *compp, uint64_t *uncompp)
 return space used in the range (mintxg, maxtxg].
static void dsl_deadlist_insert_bpobj (dsl_deadlist_t *dl, uint64_t obj, uint64_t birth, dmu_tx_t *tx)
static int dsl_deadlist_insert_cb (void *arg, const blkptr_t *bp, dmu_tx_t *tx)
void dsl_deadlist_merge (dsl_deadlist_t *dl, uint64_t obj, dmu_tx_t *tx)
 Merge the deadlist pointed to by 'obj' into dl.
void dsl_deadlist_move_bpobj (dsl_deadlist_t *dl, bpobj_t *bpo, uint64_t mintxg, dmu_tx_t *tx)
 Remove entries on dl that are >= mintxg, and put them on the bpobj.

Function Documentation

static void dle_enqueue ( dsl_deadlist_t dl,
dsl_deadlist_entry_t dle,
const blkptr_t bp,
dmu_tx_t tx 
) [static]

Definition at line 178 of file dsl_deadlist.c.

static void dle_enqueue_subobj ( dsl_deadlist_t dl,
dsl_deadlist_entry_t dle,
uint64_t  obj,
dmu_tx_t tx 
) [static]

Definition at line 194 of file dsl_deadlist.c.

void dsl_deadlist_add_key ( dsl_deadlist_t dl,
uint64_t  mintxg,
dmu_tx_t tx 
)

Insert new key in deadlist, which must be > all current entries.

mintxg is not inclusive.

Definition at line 245 of file dsl_deadlist.c.

uint64_t dsl_deadlist_alloc ( objset_t os,
dmu_tx_t tx 
)

Definition at line 143 of file dsl_deadlist.c.

uint64_t dsl_deadlist_clone ( dsl_deadlist_t dl,
uint64_t  maxtxg,
uint64_t  mrs_obj,
dmu_tx_t tx 
)

Definition at line 319 of file dsl_deadlist.c.

void dsl_deadlist_close ( dsl_deadlist_t dl)

Definition at line 117 of file dsl_deadlist.c.

static int dsl_deadlist_compare ( const void *  arg1,
const void *  arg2 
) [static]

Definition at line 54 of file dsl_deadlist.c.

void dsl_deadlist_free ( objset_t os,
uint64_t  dlobj,
dmu_tx_t tx 
)

Definition at line 152 of file dsl_deadlist.c.

void dsl_deadlist_insert ( dsl_deadlist_t dl,
const blkptr_t bp,
dmu_tx_t tx 
)

Definition at line 210 of file dsl_deadlist.c.

static void dsl_deadlist_insert_bpobj ( dsl_deadlist_t dl,
uint64_t  obj,
uint64_t  birth,
dmu_tx_t tx 
) [static]

Definition at line 413 of file dsl_deadlist.c.

static int dsl_deadlist_insert_cb ( void *  arg,
const blkptr_t bp,
dmu_tx_t tx 
) [static]

Definition at line 443 of file dsl_deadlist.c.

static void dsl_deadlist_load_tree ( dsl_deadlist_t dl) [static]

Definition at line 68 of file dsl_deadlist.c.

void dsl_deadlist_merge ( dsl_deadlist_t dl,
uint64_t  obj,
dmu_tx_t tx 
)

Merge the deadlist pointed to by 'obj' into dl.

obj will be left as an empty deadlist.

Definition at line 455 of file dsl_deadlist.c.

void dsl_deadlist_move_bpobj ( dsl_deadlist_t dl,
bpobj_t bpo,
uint64_t  mintxg,
dmu_tx_t tx 
)

Remove entries on dl that are >= mintxg, and put them on the bpobj.

Definition at line 493 of file dsl_deadlist.c.

void dsl_deadlist_open ( dsl_deadlist_t dl,
objset_t os,
uint64_t  object 
)

Definition at line 94 of file dsl_deadlist.c.

static void dsl_deadlist_regenerate ( objset_t os,
uint64_t  dlobj,
uint64_t  mrs_obj,
dmu_tx_t tx 
) [static]

Walk ds's snapshots to regenerate generate ZAP & AVL.

Definition at line 296 of file dsl_deadlist.c.

void dsl_deadlist_remove_key ( dsl_deadlist_t dl,
uint64_t  mintxg,
dmu_tx_t tx 
)

Remove this key, merging its entries into the previous key.

Definition at line 269 of file dsl_deadlist.c.

void dsl_deadlist_space ( dsl_deadlist_t dl,
uint64_t *  usedp,
uint64_t *  compp,
uint64_t *  uncompp 
)

Definition at line 349 of file dsl_deadlist.c.

void dsl_deadlist_space_range ( dsl_deadlist_t dl,
uint64_t  mintxg,
uint64_t  maxtxg,
uint64_t *  usedp,
uint64_t *  compp,
uint64_t *  uncompp 
)

return space used in the range (mintxg, maxtxg].

Includes maxtxg, does not include mintxg. mintxg and maxtxg must both be keys in the deadlist (unless maxtxg is larger than any bp in the deadlist (eg. UINT64_MAX)).

Definition at line 372 of file dsl_deadlist.c.

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines