[GIT PULL] Btrfs fixes for 5.11-rc3

From: David Sterba
Date: Wed Jan 06 2021 - 06:51:28 EST


Hi,

a few more fixes that arrived before the end of the year. Please pull,
thanks.

- a bunch of fixes related to transaction handle lifetime wrt various
operations (umount, remount, qgroup scan, orphan cleanup)

- async discard scheduling fixes

- fix item size calculation when item keys collide for extend refs
(hardlinks)

- fix qgroup flushing from running transaction

- fix send, wrong file path when there is an inode with a pending rmdir

- fix deadlock when cloning inline extent and low on free metadata space

----------------------------------------------------------------
The following changes since commit b42fe98c92698d2a10094997e5f4d2dd968fd44f:

btrfs: scrub: allow scrub to work with subpage sectorsize (2020-12-09 19:16:11 +0100)

are available in the Git repository at:

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

for you to fetch changes up to a8cc263eb58ca133617662a5a5e07131d0ebf299:

btrfs: run delayed iputs when remounting RO to avoid leaking them (2020-12-18 15:00:08 +0100)

----------------------------------------------------------------
Filipe Manana (7):
btrfs: fix deadlock when cloning inline extent and low on free metadata space
btrfs: send: fix wrong file path when there is an inode with a pending rmdir
btrfs: fix transaction leak and crash after RO remount caused by qgroup rescan
btrfs: fix transaction leak and crash after cleaning up orphans on RO mount
btrfs: fix race between RO remount and the cleaner task
btrfs: add assertion for empty list of transactions at late stage of umount
btrfs: run delayed iputs when remounting RO to avoid leaking them

Josef Bacik (1):
btrfs: tests: initialize test inodes location

Pavel Begunkov (3):
btrfs: fix async discard stall
btrfs: fix racy access to discard_ctl data
btrfs: merge critical sections of discard lock in workfn

Qu Wenruo (1):
btrfs: qgroup: don't try to wait flushing if we're already holding a transaction

ethanwu (1):
btrfs: correctly calculate item size used when item key collision happens

fs/btrfs/btrfs_inode.h | 9 ++++++
fs/btrfs/ctree.c | 24 +++++++++++++--
fs/btrfs/ctree.h | 29 ++++++++++++++++--
fs/btrfs/dev-replace.c | 2 +-
fs/btrfs/discard.c | 70 +++++++++++++++++++++++---------------------
fs/btrfs/disk-io.c | 13 ++++----
fs/btrfs/extent-tree.c | 2 ++
fs/btrfs/file-item.c | 2 ++
fs/btrfs/inode.c | 15 +++++++---
fs/btrfs/ioctl.c | 2 +-
fs/btrfs/qgroup.c | 43 +++++++++++++++++++--------
fs/btrfs/reflink.c | 15 ++++++++++
fs/btrfs/send.c | 49 +++++++++++++++++++------------
fs/btrfs/space-info.c | 2 +-
fs/btrfs/super.c | 40 +++++++++++++++++++++++--
fs/btrfs/tests/btrfs-tests.c | 10 +++++--
fs/btrfs/tests/inode-tests.c | 9 ------
fs/btrfs/volumes.c | 4 +--
18 files changed, 243 insertions(+), 97 deletions(-)