FreeBSD ZFS
The Zettabyte File System
|
#include <dnode.h>
Data Fields | |
krwlock_t | dn_struct_rwlock |
Protects the structure of the dnode, including the number of levels of indirection (dn_nlevels), dn_maxblkid, and dn_next_*. | |
list_node_t | dn_link |
Our link on dn_objset->os_dnodes list; protected by os_lock. | |
kmutex_t | dn_dbufs_mtx |
list_t | dn_dbufs |
descendent dbufs | |
boolean_t | dn_have_spill |
have spill or are spilling | |
struct zfetch | dn_zfetch |
holds prefetch structure | |
Immutable | |
struct objset * | dn_objset |
uint64_t | dn_object |
struct dmu_buf_impl * | dn_dbuf |
struct dnode_handle * | dn_handle |
dnode_phys_t * | dn_phys |
pointer into dn->dn_dbuf->db.db_data | |
Copies of stuff in dn_phys | |
They're valid in the open context (eg. even before the dnode is first synced). Where necessary, these are protected by dn_struct_rwlock. | |
dmu_object_type_t | dn_type |
object type | |
uint16_t | dn_bonuslen |
bonus length | |
uint8_t | dn_bonustype |
bonus type | |
uint8_t | dn_nblkptr |
number of blkptrs (immutable) | |
uint8_t | dn_checksum |
ZIO_CHECKSUM type. | |
uint8_t | dn_compress |
ZIO_COMPRESS type. | |
uint8_t | dn_nlevels |
uint8_t | dn_indblkshift |
uint8_t | dn_datablkshift |
zero if blksz not power of 2! | |
uint8_t | dn_moved |
Has this dnode been moved? | |
uint16_t | dn_datablkszsec |
in 512b sectors | |
uint32_t | dn_datablksz |
in bytes | |
uint64_t | dn_maxblkid |
uint8_t | dn_next_nblkptr [TXG_SIZE] |
uint8_t | dn_next_nlevels [TXG_SIZE] |
uint8_t | dn_next_indblkshift [TXG_SIZE] |
uint8_t | dn_next_bonustype [TXG_SIZE] |
uint8_t | dn_rm_spillblk [TXG_SIZE] |
for removing spill blk | |
uint16_t | dn_next_bonuslen [TXG_SIZE] |
uint32_t | dn_next_blksz [TXG_SIZE] |
next block size in bytes | |
Protected by dn_dbufs_mtx | |
declared here to fill 32-bit hole | |
uint32_t | dn_dbufs_count |
count of dn_dbufs | |
Protected by os_lock | |
list_node_t | dn_dirty_link [TXG_SIZE] |
next on dataset's dirty | |
Protected by dn_mtx | |
kmutex_t | dn_mtx |
list_t | dn_dirty_records [TXG_SIZE] |
avl_tree_t | dn_ranges [TXG_SIZE] |
uint64_t | dn_allocated_txg |
uint64_t | dn_free_txg |
uint64_t | dn_assigned_txg |
kcondvar_t | dn_notxholds |
enum dnode_dirtycontext | dn_dirtyctx |
uint8_t * | dn_dirtyctx_firstset |
dbg: contents meaningless | |
Protected by own devices | |
refcount_t | dn_tx_holds |
refcount_t | dn_holds |
Protected by dn_struct_rwlock | |
struct dmu_buf_impl * | dn_bonus |
bonus buffer dbuf | |
Parent IO for current sync write | |
zio_t * | dn_zio |
Used in syncing context | |
uint64_t | dn_oldused |
old phys used bytes | |
uint64_t | dn_oldflags |
old phys dn_flags | |
uint64_t | dn_olduid |
uint64_t | dn_oldgid |
uint64_t | dn_newuid |
uint64_t | dn_newgid |
int | dn_id_flags |
uint64_t dnode::dn_allocated_txg |
uint64_t dnode::dn_assigned_txg |
struct dmu_buf_impl* dnode::dn_bonus |
uint16_t dnode::dn_bonuslen |
uint8_t dnode::dn_bonustype |
uint8_t dnode::dn_checksum |
uint8_t dnode::dn_compress |
uint8_t dnode::dn_datablkshift |
uint32_t dnode::dn_datablksz |
uint16_t dnode::dn_datablkszsec |
struct dmu_buf_impl* dnode::dn_dbuf |
list_t dnode::dn_dbufs |
uint32_t dnode::dn_dbufs_count |
kmutex_t dnode::dn_dbufs_mtx |
list_node_t dnode::dn_dirty_link[TXG_SIZE] |
list_t dnode::dn_dirty_records[TXG_SIZE] |
uint8_t* dnode::dn_dirtyctx_firstset |
uint64_t dnode::dn_free_txg |
struct dnode_handle* dnode::dn_handle |
boolean_t dnode::dn_have_spill |
uint8_t dnode::dn_indblkshift |
list_node_t dnode::dn_link |
uint64_t dnode::dn_maxblkid |
uint8_t dnode::dn_moved |
kmutex_t dnode::dn_mtx |
uint8_t dnode::dn_nblkptr |
uint64_t dnode::dn_newgid |
uint64_t dnode::dn_newuid |
uint32_t dnode::dn_next_blksz[TXG_SIZE] |
uint16_t dnode::dn_next_bonuslen[TXG_SIZE] |
uint8_t dnode::dn_next_bonustype[TXG_SIZE] |
uint8_t dnode::dn_next_indblkshift[TXG_SIZE] |
uint8_t dnode::dn_next_nblkptr[TXG_SIZE] |
uint8_t dnode::dn_next_nlevels[TXG_SIZE] |
uint8_t dnode::dn_nlevels |
kcondvar_t dnode::dn_notxholds |
uint64_t dnode::dn_object |
struct objset* dnode::dn_objset |
uint64_t dnode::dn_oldflags |
uint64_t dnode::dn_oldgid |
uint64_t dnode::dn_olduid |
uint64_t dnode::dn_oldused |
avl_tree_t dnode::dn_ranges[TXG_SIZE] |
uint8_t dnode::dn_rm_spillblk[TXG_SIZE] |
krwlock_t dnode::dn_struct_rwlock |
struct zfetch dnode::dn_zfetch |