]> www.infradead.org Git - users/jedix/linux-maple.git/commit
btrfs: fix the qgroup data free range for inline data extents
authorQu Wenruo <wqu@suse.com>
Fri, 15 Nov 2024 06:03:43 +0000 (16:33 +1030)
committerDavid Sterba <dsterba@suse.com>
Tue, 18 Mar 2025 19:35:48 +0000 (20:35 +0100)
commit0bb067ca64e35536f1f5d9ef6aaafc40f4833623
treee8ed4c21e97d07927f6477b5d92c6f1a5b4fc4ec
parent1a5b5668d711d3d1ef447446beab920826decec3
btrfs: fix the qgroup data free range for inline data extents

Inside function __cow_file_range_inline() since the inlined data no
longer take any data space, we need to free up the reserved space.

However the code is still using the old page size == sector size
assumption, and will not handle subpage case well.

Thankfully it is not going to cause any problems because we have two extra
safe nets:

- Inline data extents creation is disabled for sector size < page size
  cases for now
  But it won't stay that for long.

- btrfs_qgroup_free_data() will only clear ranges which have been already
  reserved
  So even if we pass a range larger than what we need, it should still
  be fine, especially there is only reserved space for a single block at
  file offset 0 of an inline data extent.

But just for the sake of consistency, fix the call site to use
sectorsize instead of page size.

Reviewed-by: Filipe Manana <fdmanana@suse.com>
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