|
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 |
1.7.3