[GIT PULL] Btrfs fixes for 5.17-rc7

From: David Sterba
Date: Sun Mar 06 2022 - 11:36:31 EST


Hi,

a few more fixes for various problems that have user visible effects or
seem to be urgent. Please pull, thanks.

* fix corruption when combining DIO and non-blocking iouring over
multiple extents (seen on MariaDB)

* fix relocation crash due to premature return from commit

* fix quota deadlock between rescan and qgroup removal

* fix item data bounds checks in tree-checker (found on a fuzzed image)

* fix fsync of prealloc extents after EOF

* add missing run of delayed items after unlink during log replay

* don't start relocation until snapshot drop is finished

* fix reversed condition for subpage writers locking

* fix warning on page error

----------------------------------------------------------------
The following changes since commit 558732df2122092259ab4ef85594bee11dbb9104:

btrfs: reduce extent threshold for autodefrag (2022-02-24 16:11:28 +0100)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-5.17-rc6-tag

for you to fetch changes up to ca93e44bfb5fd7996b76f0f544999171f647f93b:

btrfs: fallback to blocking mode when doing async dio over multiple extents (2022-03-04 15:09:21 +0100)

----------------------------------------------------------------
Filipe Manana (3):
btrfs: fix lost prealloc extents beyond eof after full fsync
btrfs: add missing run of delayed items after unlink during log replay
btrfs: fallback to blocking mode when doing async dio over multiple extents

Josef Bacik (2):
btrfs: do not WARN_ON() if we have PageError set
btrfs: do not start relocation until in progress drops are done

Omar Sandoval (1):
btrfs: fix relocation crash due to premature return from btrfs_commit_transaction()

Qu Wenruo (1):
btrfs: subpage: fix a wrong check on subpage->writers

Sidong Yang (1):
btrfs: qgroup: fix deadlock between rescan worker and remove qgroup

Su Yue (1):
btrfs: tree-checker: use u64 for item data end to avoid overflow

fs/btrfs/ctree.h | 10 ++++++++
fs/btrfs/disk-io.c | 10 ++++++++
fs/btrfs/extent-tree.c | 10 ++++++++
fs/btrfs/extent_io.c | 16 +++++++++---
fs/btrfs/inode.c | 28 +++++++++++++++++++++
fs/btrfs/qgroup.c | 9 ++++++-
fs/btrfs/relocation.c | 13 ++++++++++
fs/btrfs/root-tree.c | 15 ++++++++++++
fs/btrfs/subpage.c | 2 +-
fs/btrfs/transaction.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++--
fs/btrfs/transaction.h | 1 +
fs/btrfs/tree-checker.c | 18 +++++++-------
fs/btrfs/tree-log.c | 61 +++++++++++++++++++++++++++++++++++++---------
13 files changed, 230 insertions(+), 28 deletions(-)