[GIT PULL] Btrfs fixes for 6.9-rc2
From: David Sterba
Date: Wed Mar 27 2024 - 16:39:55 EST
Hi,
here's another batch of stability fixes.
The first fix is for the bug you also hit after 6.8-rc2 pull request [1].
We got another report, fortunately it was reproducible and in the end we also
got the fix.
[1] https://lore.kernel.org/linux-btrfs/CAHk-=whNdMaN9ntZ47XRKP6DBes2E5w7fi-0U3H2+PS18p+Pzw@xxxxxxxxxxxxxx/
The rest is usual mix of fixes, zoned mode, device status handling and
error handling.
Please pull, thanks.
- fix race when reading extent buffer and 'uptodate' status is missed by one
thread (introduced in 6.5)
- do additional validation of devices using major:minor numbers
- zoned mode fixes:
- use zone-aware super block access during scrub
- fix use-after-free during device replace (found by KASAN)
- also delete zones that are 100% unusable to reclaim space
- extent unpinning fixes
- fix extent map leak after error handling
- print correct range in error message
- error code and message updates
----------------------------------------------------------------
The following changes since commit 1cab1375ba6d5337a25acb346996106c12bb2dd0:
btrfs: reuse cloned extent buffer during fiemap to avoid re-allocations (2024-03-05 18:14:19 +0100)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git tags/for-6.9-rc1-tag
for you to fetch changes up to ef1e68236b9153c27cb7cf29ead0c532870d4215:
btrfs: fix race in read_extent_buffer_pages() (2024-03-26 16:42:39 +0100)
----------------------------------------------------------------
Anand Jain (2):
btrfs: validate device maj:min during open
btrfs: return accurate error code on open failure in open_fs_devices()
Filipe Manana (4):
btrfs: fix extent map leak in unexpected scenario at unpin_extent_cache()
btrfs: fix warning messages not printing interval at unpin_extent_range()
btrfs: fix message not properly printing interval when adding extent map
btrfs: use btrfs_warn() to log message at btrfs_add_extent_mapping()
Johannes Thumshirn (3):
btrfs: zoned: use zone aware sb location for scrub
btrfs: zoned: fix use-after-free in do_zone_finish()
btrfs: zoned: don't skip block groups with 100% zone unusable
Tavian Barnes (1):
btrfs: fix race in read_extent_buffer_pages()
fs/btrfs/block-group.c | 3 ++-
fs/btrfs/extent_io.c | 13 +++++++++++++
fs/btrfs/extent_map.c | 16 ++++++++--------
fs/btrfs/scrub.c | 12 +++++++++++-
fs/btrfs/volumes.c | 27 ++++++++++++++++++++++-----
fs/btrfs/zoned.c | 14 +++++++-------
6 files changed, 63 insertions(+), 22 deletions(-)