]> www.infradead.org Git - users/jedix/linux-maple.git/commit
btrfs: properly limit inline data extent according to block size
authorQu Wenruo <wqu@suse.com>
Tue, 25 Feb 2025 04:00:44 +0000 (14:30 +1030)
committerDavid Sterba <dsterba@suse.com>
Tue, 18 Mar 2025 19:35:49 +0000 (20:35 +0100)
commit23019d3e6617a8ec99a8d2f5947aa3dd8a74a1b8
treee3a8552d5bf5627db273ecc870d22c14a70fa1d1
parent2ef9d73f2b3b7f9c9c36c2a5bab5f44381867c16
btrfs: properly limit inline data extent according to block size

Btrfs utilizes inline data extent for the following cases:

- Regular small files
- Symlinks

And "btrfs check" detects any file extents that are too large as an
error.

It's not a problem for 4K block size, but for the incoming smaller
block sizes (2K), it can cause problems due to bad limits:

- Non-compressed inline data extents
  We do not allow a non-compressed inline data extent to be as large as
  block size.

- Symlinks
  Currently the only real limit on symlinks are 4K, which can be larger
  than 2K block size.

These will result btrfs-check to report too large file extents.

Fix it by adding proper size checks for the above cases.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c