FreeBSD ZFS
The Zettabyte File System
Data Fields

blkptr Struct Reference

Each block is described by its DVAs, time of birth, checksum, etc. More...

#include <spa.h>

Collaboration diagram for blkptr:
Collaboration graph
[legend]

Data Fields

dva_t blk_dva [SPA_DVAS_PER_BP]
 Data Virtual Addresses.
uint64_t blk_prop
 size, compression, type, etc
uint64_t blk_pad [2]
 Extra space for the future.
uint64_t blk_phys_birth
 txg when block was allocated
uint64_t blk_birth
 transaction group at birth
uint64_t blk_fill
 fill count
zio_cksum_t blk_cksum
 256-bit checksum

Detailed Description

Each block is described by its DVAs, time of birth, checksum, etc.

The word-by-word, bit-by-bit layout of the blkptr is as follows:

	64	56	48	40	32	24	16	8	0
	+-------+-------+-------+-------+-------+-------+-------+-------+
   0	|		vdev1		| GRID  |	  ASIZE		|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   1	|G|			 offset1				|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   2	|		vdev2		| GRID  |	  ASIZE		|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   3	|G|			 offset2				|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   4	|		vdev3		| GRID  |	  ASIZE		|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   5	|G|			 offset3				|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   6	|BDX|lvl| type	| cksum | comp	|     PSIZE	|     LSIZE	|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   7	|			padding					|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   8	|			padding					|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   9	|			physical birth txg			|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   a	|			logical birth txg			|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   b	|			fill count				|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   c	|			checksum[0]				|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   d	|			checksum[1]				|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   e	|			checksum[2]				|
	+-------+-------+-------+-------+-------+-------+-------+-------+
   f	|			checksum[3]				|
	+-------+-------+-------+-------+-------+-------+-------+-------+
 

Legend:

Definition at line 190 of file spa.h.


Field Documentation

transaction group at birth

Definition at line 195 of file spa.h.

256-bit checksum

Definition at line 197 of file spa.h.

dva_t blkptr::blk_dva[SPA_DVAS_PER_BP]

Data Virtual Addresses.

Definition at line 191 of file spa.h.

uint64_t blkptr::blk_fill

fill count

Definition at line 196 of file spa.h.

uint64_t blkptr::blk_pad[2]

Extra space for the future.

Definition at line 193 of file spa.h.

txg when block was allocated

Definition at line 194 of file spa.h.

uint64_t blkptr::blk_prop

size, compression, type, etc

Definition at line 192 of file spa.h.


The documentation for this struct was generated from the following file:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines