[GIT PULL] Btrfs fixes for 6.1-rc4, part 2

From: David Sterba
Date: Thu Nov 03 2022 - 11:41:27 EST


Hi,

a batch of error handling fixes for resource leaks, fixes for nowait
mode in combination with direct and buffered IO. Please pull, thanks.

- direct IO + dsync + nowait could miss a sync of the file after write,
add handling for this combination

- buffered IO + nowait should not fail with ENOSPC, only blocking IO
could determine that

- error handling fixes
- fix inode reserve space leak due to nowait buffered write
- check the correct variable after allocation (direct IO submit)
- fix inode list leak during backref walking
- fix ulist freeing in self tests

----------------------------------------------------------------
The following changes since commit 76a66ba101329316a5d7f4275070be22eb85fdf2:

btrfs: don't use btrfs_chunk::sub_stripes from disk (2022-10-25 10:17:33 +0200)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git for-6.1-rc3-tag

for you to fetch changes up to eb81b682b131642405a05c627ab08cf0967b3dd8:

btrfs: fix inode reserve space leak due to nowait buffered write (2022-11-02 17:44:45 +0100)

----------------------------------------------------------------
Christophe JAILLET (1):
btrfs: fix a memory allocation failure test in btrfs_submit_direct

Filipe Manana (7):
btrfs: fix lost file sync on direct IO write with nowait and dsync iocb
btrfs: fix inode list leak during backref walking at resolve_indirect_refs()
btrfs: fix inode list leak during backref walking at find_parent_nodes()
btrfs: fix ulist leaks in error paths of qgroup self tests
btrfs: remove pointless and double ulist frees in error paths of qgroup tests
btrfs: fix nowait buffered write returning -ENOSPC
btrfs: fix inode reserve space leak due to nowait buffered write

fs/btrfs/backref.c | 54 +++++++++++++++++++++++++++----------------
fs/btrfs/ctree.h | 5 +++-
fs/btrfs/file.c | 29 +++++++++++++++++------
fs/btrfs/inode.c | 16 +++++++++----
fs/btrfs/tests/qgroup-tests.c | 36 +++++++++++++++--------------
5 files changed, 91 insertions(+), 49 deletions(-)