[GIT PULL] Btrfs fixes for 6.8-rc2

From: David Sterba
Date: Mon Jan 22 2024 - 14:00:43 EST


Hi,

please pull the following fixes. Thanks.

- zoned mode fixes:
- fix slowdown when writing large file sequentially by looking up
block groups with enough space faster
- locking fixes when activating a zone

- new mount API fixes:
- preserve mount options for a ro/rw mount of the same subvolume

- scrub fixes:
- fix use-after-free in case the chunk length is not aligned to 64K,
this does not happen normally but has been reported on images
converted from ext4
- similar alignment check was missing with raid-stripe-tree

- subvolume deletion fixes:
- prevent calling ioctl on already deleted subvolume
- properly track flag tracking a deleted subvolume

- in subpage mode, fix decompression of an inline extent (zlib, lzo, zstd)

- fix crash when starting writeback on a folio, after integration with
recent MM changes this needs to be started conditionally

- reject unknown flags in defrag ioctl

- error handling, API fixes, minor warning fixes

----------------------------------------------------------------
The following changes since commit e94dfb7a2935cb91faca88bf7136177d1ce0dda8:

btrfs: pass btrfs_io_geometry into btrfs_max_io_len (2023-12-15 23:03:59 +0100)

are available in the Git repository at:

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

for you to fetch changes up to 7f2d219e78e95a137a9c76fddac7ff8228260439:

btrfs: scrub: limit RST scrub to chunk boundary (2024-01-18 23:43:08 +0100)

----------------------------------------------------------------
Chung-Chiang Cheng (1):
btrfs: tree-checker: fix inline ref size in error messages

David Sterba (1):
btrfs: don't warn if discard range is not aligned to sector

Dmitry Antipov (1):
btrfs: fix kvcalloc() arguments order in btrfs_ioctl_send()

Fedor Pchelkin (1):
btrfs: ref-verify: free ref cache before clearing mount opt

Josef Bacik (2):
btrfs: use the original mount's mount options for the legacy reconfigure
btrfs: don't unconditionally call folio_start_writeback in subpage

Naohiro Aota (4):
btrfs: zoned: factor out prepare_allocation_zoned()
btrfs: zoned: optimize hint byte for zoned allocator
btrfs: fix unbalanced unlock of mapping_tree_lock
btrfs: zoned: fix lock ordering in btrfs_zone_activate()

Omar Sandoval (2):
btrfs: don't abort filesystem when attempting to snapshot deleted subvolume
btrfs: avoid copying BTRFS_ROOT_SUBVOL_DEAD flag to snapshot of subvolume being deleted

Qu Wenruo (6):
btrfs: defrag: reject unknown flags of btrfs_ioctl_defrag_range_args
btrfs: zlib: fix and simplify the inline extent decompression
btrfs: lzo: fix and simplify the inline extent decompression
btrfs: zstd: fix and simplify the inline extent decompression
btrfs: scrub: avoid use-after-free when chunk length is not 64K aligned
btrfs: scrub: limit RST scrub to chunk boundary

fs/btrfs/compression.c | 23 ++++++++++-----
fs/btrfs/compression.h | 6 ++--
fs/btrfs/extent-tree.c | 53 ++++++++++++++++++++++++---------
fs/btrfs/inode.c | 22 ++++++++------
fs/btrfs/ioctl.c | 7 +++++
fs/btrfs/lzo.c | 34 ++++++---------------
fs/btrfs/ref-verify.c | 6 ++--
fs/btrfs/scrub.c | 36 ++++++++++++++++++-----
fs/btrfs/send.c | 4 +--
fs/btrfs/subpage.c | 3 +-
fs/btrfs/super.c | 8 +++++
fs/btrfs/tree-checker.c | 2 +-
fs/btrfs/volumes.c | 2 --
fs/btrfs/zlib.c | 73 ++++++++++++----------------------------------
fs/btrfs/zoned.c | 8 ++---
fs/btrfs/zstd.c | 73 +++++++++++++---------------------------------
include/uapi/linux/btrfs.h | 3 ++
17 files changed, 178 insertions(+), 185 deletions(-)