[GIT PULL] Btrfs fixes for 6.8-rc5

David Sterba
2024-02-14T08:52:55Z

Hi,

a few regular fixes and one fix for space reservation regression since
6.7 that users have been reporting.

Please pull, thanks.

- fix over-reservation of metadata chunks due to not keeping proper balance
between global block reserve and delayed refs reserve;
in practice this leaves behind empty metadata block groups, the workaround
is to reclaim them by using the '-musage=1' balance filter

- other space reservation fixes:
- do not delete unused block group if it may be used soon
- do not reserve space for checksums for NOCOW files

- fix extent map assertion failure when writing out free space inode

- reject encoded write if inode has nodatasum flag set

- fix chunk map leak when loading block group zone info

----------------------------------------------------------------
The following changes since commit e03ee2fe873eb68c1f9ba5112fee70303ebf9dfb:

btrfs: do not ASSERT() if the newly created subvolume already got read (2024-01-31 08:42:53 +0100)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git tags/for-6.8-rc4-tag

for you to fetch changes up to 2f6397e448e689adf57e6788c90f913abd7e1af8:

btrfs: don't refill whole delayed refs block reserve when starting transaction (2024-02-13 18:39:09 +0100)

----------------------------------------------------------------
Filipe Manana (7):
btrfs: add and use helper to check if block group is used
btrfs: do not delete unused block group if it may be used soon
btrfs: add new unused block groups to the list of unused block groups
btrfs: don't reserve space for checksums when writing to nocow files
btrfs: reject encoded write if inode has nodatasum flag set
btrfs: zoned: fix chunk map leak when loading block group zone info
btrfs: don't refill whole delayed refs block reserve when starting transaction

Josef Bacik (1):
btrfs: don't drop extent_map for free space inode on write error

fs/btrfs/block-group.c | 80 +++++++++++++++++++++++++++++++++++++++++++++--
fs/btrfs/block-group.h | 7 +++++
fs/btrfs/delalloc-space.c | 29 +++++++++++------
fs/btrfs/inode.c | 26 +++++++++++++--
fs/btrfs/transaction.c | 38 ++--------------------
fs/btrfs/zoned.c | 1 +
6 files changed, 131 insertions(+), 50 deletions(-)