bcachefs: KEY_TYPE_inode_v3, metadata_version_inode_v3
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 21 Oct 2022 17:21:03 +0000 (13:21 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:51 +0000 (17:09 -0400)
commit8dd69d9f64e92529037550c97a07b1b78296e92c
tree20402fcad1c90a7b837cdebc8de2667d3fb2798b
parent47b323a0b0612c5310c35935a40012125a3e18b8
bcachefs: KEY_TYPE_inode_v3, metadata_version_inode_v3

Move bi_size and bi_sectors into the non-varint portion of the inode, so
that the write path can update them without going through the relatively
expensive unpack/pack operations.

Other changes:
 - Add a field for the offset of the varint section, so we can add new
   non-varint fields without needing a new inode type, like alloc_v3
 - Move bi_mode into the flags field, so that the varint section can be
   u64 aligned

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/bcachefs_format.h
fs/bcachefs/bkey_methods.c
fs/bcachefs/buckets.c
fs/bcachefs/inode.c
fs/bcachefs/inode.h
fs/bcachefs/io.c
fs/bcachefs/recovery.c