btrfs: always set extent_io_tree::inode and drop fs_info
authorDavid Sterba <dsterba@suse.com>
Tue, 21 Nov 2023 13:20:24 +0000 (14:20 +0100)
committerDavid Sterba <dsterba@suse.com>
Fri, 15 Dec 2023 19:27:02 +0000 (20:27 +0100)
commit738290c056e28d83177ecbed3894e094e161939e
treeaeb8e19c6f560f72f9d05b76489e1c567f98ba5c
parent70146f2b093844c656774bfc9a98b79e2177893a
btrfs: always set extent_io_tree::inode and drop fs_info

The extent_io_tree is embedded in several structures, notably in struct
btrfs_inode.  The fs_info is only used for reporting errors and for
reference in trace points. We can get to the pointer through the inode,
but not all io trees set it. However, we always know the owner and
can recognize if inode is valid.  For access helpers are provided, const
variant for the trace points.

This reduces size of extent_io_tree by 8 bytes and following structures
in turn:

- btrfs_inode 1104 -> 1088
- btrfs_device  520 ->  512
- btrfs_root 1360 -> 1344
- btrfs_transaction  456 ->  440
- btrfs_fs_info 3600 -> 3592
- reloc_control 1520 -> 1512

Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent-io-tree.c
fs/btrfs/extent-io-tree.h
fs/btrfs/inode.c
fs/btrfs/tests/btrfs-tests.c
include/trace/events/btrfs.h