FreeBSD ZFS
The Zettabyte File System
|
The structure of dirty records (DR) mirror the dbufs they belong to. More...
#include <dbuf.h>
Data Structures | |
union | dirty_types |
Data Fields | |
list_node_t | dr_dirty_node |
link on our parents dirty list | |
uint64_t | dr_txg |
transaction group this data will sync in | |
zio_t * | dr_zio |
zio of outstanding write IO | |
struct dmu_buf_impl * | dr_dbuf |
pointer back to our dbuf | |
struct dbuf_dirty_record * | dr_next |
pointer to next dirty record | |
struct dbuf_dirty_record * | dr_parent |
pointer to parent dirty record | |
union dbuf_dirty_record::dirty_types | dt |
The structure of dirty records (DR) mirror the dbufs they belong to.
That is, a dnode, its indirect blocks, and its data (leaf) blocks all have their own DRs. Each can only have one for each in-flight TXG. Each can have a parent DR, which is associated with its parent dbuf. Indirects can have child DRs, each associated with its child dbufs. Finally, the leaf DRs contain the ARC buffer containing the data to be written.
list_node_t dbuf_dirty_record::dr_dirty_node |
uint64_t dbuf_dirty_record::dr_txg |