diff options
Diffstat (limited to 'include/uapi/linux/btrfs_tree.h')
| -rw-r--r-- | include/uapi/linux/btrfs_tree.h | 35 | 
1 files changed, 35 insertions, 0 deletions
diff --git a/include/uapi/linux/btrfs_tree.h b/include/uapi/linux/btrfs_tree.h index ccdb40fe40dc..e1c4c732aaba 100644 --- a/include/uapi/linux/btrfs_tree.h +++ b/include/uapi/linux/btrfs_tree.h @@ -118,6 +118,29 @@  #define BTRFS_INODE_REF_KEY		12  #define BTRFS_INODE_EXTREF_KEY		13  #define BTRFS_XATTR_ITEM_KEY		24 + +/* + * fs verity items are stored under two different key types on disk. + * The descriptor items: + * [ inode objectid, BTRFS_VERITY_DESC_ITEM_KEY, offset ] + * + * At offset 0, we store a btrfs_verity_descriptor_item which tracks the size + * of the descriptor item and some extra data for encryption. + * Starting at offset 1, these hold the generic fs verity descriptor.  The + * latter are opaque to btrfs, we just read and write them as a blob for the + * higher level verity code.  The most common descriptor size is 256 bytes. + * + * The merkle tree items: + * [ inode objectid, BTRFS_VERITY_MERKLE_ITEM_KEY, offset ] + * + * These also start at offset 0, and correspond to the merkle tree bytes.  When + * fsverity asks for page 0 of the merkle tree, we pull up one page starting at + * offset 0 for this key type.  These are also opaque to btrfs, we're blindly + * storing whatever fsverity sends down. + */ +#define BTRFS_VERITY_DESC_ITEM_KEY	36 +#define BTRFS_VERITY_MERKLE_ITEM_KEY	37 +  #define BTRFS_ORPHAN_ITEM_KEY		48  /* reserve 2-15 close to the inode for later flexibility */ @@ -991,4 +1014,16 @@ struct btrfs_qgroup_limit_item {  	__le64 rsv_excl;  } __attribute__ ((__packed__)); +struct btrfs_verity_descriptor_item { +	/* Size of the verity descriptor in bytes */ +	__le64 size; +	/* +	 * When we implement support for fscrypt, we will need to encrypt the +	 * Merkle tree for encrypted verity files. These 128 bits are for the +	 * eventual storage of an fscrypt initialization vector. +	 */ +	__le64 reserved[2]; +	__u8 encryption; +} __attribute__ ((__packed__)); +  #endif /* _BTRFS_CTREE_H_ */  |