[GIT PULL] Btrfs fixes for 6.13-rc3

From: David Sterba
Date: Tue Dec 10 2024 - 18:56:06 EST


Hi,

please pull a few more fixes. Apart from the one liners and updated bio
splitting error handling there's a fix for subvolume mount with
different flags. This is known and fixed for some time but I've delayed
it to give it more testing. More details about that below.

Please pull, thanks.

- fix unbalanced locking when swapfile activation fails when the
subvolume gets deleted in the meantime

- add btrfs error handling after bio_split() calls that got error
handling recently

- during unmount, flush delalloc workers at the right time before the
cleaner thread is shut down

- fix regression in buffered write folio conversion, explicitly wait for
writeback as FGP_STABLE flag is currently a no-op on btrfs

- handle race in subvolume mount with different flags, the conversion to
the new mount API did not handle the case where multiple subvolumes
get mounted in parallel, which is a distro use case

----------------------------------------------------------------
The following changes since commit 22d2e48e318564f8c9b09faf03ecb4f03fb44dd5:

btrfs: fix lockdep warnings on io_uring encoded reads (2024-11-29 16:56:38 +0100)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git tags/for-6.13-rc2-tag

for you to fetch changes up to f10bef73fb355e3fc85e63a50386798be68ff486:

btrfs: flush delalloc workers queue before stopping cleaner kthread during unmount (2024-12-06 15:04:18 +0100)

----------------------------------------------------------------
Filipe Manana (2):
btrfs: fix missing snapshot drew unlock when root is dead during swap activation
btrfs: flush delalloc workers queue before stopping cleaner kthread during unmount

Johannes Thumshirn (1):
btrfs: handle bio_split() errors

Qu Wenruo (2):
btrfs: fix mount failure due to remount races
btrfs: properly wait for writeback before buffered write

fs/btrfs/bio.c | 17 ++++++++++++--
fs/btrfs/disk-io.c | 9 ++++++++
fs/btrfs/file.c | 1 +
fs/btrfs/inode.c | 1 +
fs/btrfs/super.c | 66 ++++++++++++++++++++++--------------------------------
5 files changed, 53 insertions(+), 41 deletions(-)