Files
linux/fs
Qu Wenruo c5667f9c8e btrfs: headers cleanup to remove unnecessary local includes
[BUG]
When I tried to remove btrfs_bio::fs_info and use btrfs_bio::inode to
grab the fs_info, the header "btrfs_inode.h" is needed to access the
full btrfs_inode structure.

Then btrfs will fail to compile.

[CAUSE]
There is a recursive including chain:

  "bio.h" -> "btrfs_inode.h" -> "extent_map.h" -> "compression.h" ->
  "bio.h"

That recursive including is causing problems for btrfs.

[ENHANCEMENT]
To reduce the risk of recursive including:

- Remove unnecessary local includes from btrfs headers
  Either the included header is pulled in by other headers, or is
  completely unnecessary.

- Remove btrfs local includes if the header only requires a pointer
  In that case let the implementing C file to pull the required header.

  This is especially important for headers like "btrfs_inode.h" which
  pulls in a lot of other btrfs headers, thus it's a mine field of
  recursive including.

- Remove unnecessary temporary structure definition
  Either if we have included the header defining the structure, or
  completely unused.

Now including "btrfs_inode.h" inside "bio.h" is completely fine,
although "btrfs_inode.h" still includes "extent_map.h", but that header
only includes "fs.h", no more chain back to "bio.h".

Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2025-11-24 22:34:52 +01:00
..
2025-06-10 22:21:16 -04:00
2025-11-12 10:12:39 +01:00
2025-09-13 16:55:07 -07:00
2025-09-13 16:55:13 -07:00
2025-09-16 23:59:38 -04:00
2025-09-21 19:24:50 -04:00
2025-09-26 10:21:23 +02:00
2025-10-07 12:48:33 +02:00
2025-11-12 10:47:42 +01:00
2025-09-01 13:08:01 +02:00
2025-09-29 13:43:52 -07:00
2025-08-29 15:08:07 +02:00
2025-05-23 14:20:44 +02:00
2025-11-12 10:12:39 +01:00