linux-stable/fs/btrfs
Johannes Thumshirn 6839108b66 btrfs: zoned: skip ZONE FINISH of conventional zones
[ Upstream commit f0ba0e7172 ]

Don't call ZONE FINISH for conventional zones as this will result in I/O
errors. Instead check if the zone that needs finishing is a conventional
zone and if yes skip it.

Also factor out the actual handling of finishing a single zone into a
helper function, as do_zone_finish() is growing ever bigger and the
indentations levels are getting higher.

Reviewed-by: Naohiro Aota <naohiro.aota@wdc.com>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-09-09 18:58:03 +02:00
..
tests btrfs: use unsigned types for constants defined as bit shifts 2025-07-06 11:01:37 +02:00
accessors.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
accessors.h move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
acl.c
acl.h
async-thread.c
async-thread.h
backref.c btrfs: drop the backref cache during relocation if we commit 2024-10-01 19:10:26 +02:00
backref.h btrfs: use unsigned types for constants defined as bit shifts 2025-07-06 11:01:37 +02:00
bio.c btrfs: handle bio_split() errors 2025-01-09 13:33:44 +01:00
bio.h btrfs: fix error propagation of split bios 2024-10-23 18:17:43 +02:00
block-group.c btrfs: zoned: requeue to unused block group list if zone finish failed 2025-08-28 16:31:04 +02:00
block-group.h btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
block-rsv.c btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
block-rsv.h btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
btrfs_inode.h btrfs: fix race between setting last_dir_index_offset and inode logging 2025-09-09 18:58:02 +02:00
compression.c btrfs: compression: adjust cb->compressed_folios allocation type 2025-05-29 11:03:12 +02:00
compression.h btrfs: convert btrfs_decompress() to take a folio 2024-09-10 16:51:21 +02:00
ctree.c btrfs: abort transaction on unexpected eb generation at btrfs_copy_root() 2025-08-28 16:31:03 +02:00
ctree.h btrfs: fix improper generation check in snapshot delete 2024-12-27 14:02:14 +01:00
defrag.c btrfs: fix defrag not merging contiguous extents due to merged extent maps 2024-10-31 16:46:41 +01:00
defrag.h btrfs: drop transaction parameter from btrfs_add_inode_defrag() 2024-09-10 16:51:19 +02:00
delalloc-space.c
delalloc-space.h
delayed-inode.c
delayed-inode.h
delayed-ref.c btrfs: fix incorrect comparison for delayed refs 2024-11-14 16:11:02 +01:00
delayed-ref.h btrfs: use sector numbers as keys for the dirty extents xarray 2024-10-11 18:33:35 +02:00
dev-replace.c btrfs: don't take dev_replace rwsem on task already holding it 2024-12-14 20:03:36 +01:00
dev-replace.h
dir-item.c btrfs: fix passing 0 to ERR_PTR in btrfs_search_dir_index_item() 2024-10-22 16:10:55 +02:00
dir-item.h
direct-io.c btrfs: use unsigned types for constants defined as bit shifts 2025-07-06 11:01:37 +02:00
direct-io.h
discard.c btrfs: make btrfs_discard_workfn() block_group ref explicit 2025-05-29 11:02:12 +02:00
discard.h
disk-io.c btrfs: make the extent map shrinker run asynchronously as a work queue job 2025-07-06 11:01:49 +02:00
disk-io.h btrfs: drop unused parameter options from open_ctree() 2024-12-14 20:04:12 +01:00
export.c
export.h
extent_io.c btrfs: avoid linker error in btrfs_find_create_tree_block() 2025-05-29 11:02:12 +02:00
extent_io.h btrfs: use unsigned types for constants defined as bit shifts 2025-07-06 11:01:37 +02:00
extent_map.c btrfs: fix use-after-free on inode when scanning root during em shrinking 2025-07-06 11:01:50 +02:00
extent_map.h btrfs: make the extent map shrinker run asynchronously as a work queue job 2025-07-06 11:01:49 +02:00
extent-io-tree.c btrfs: exit after state split error at set_extent_bit() 2025-06-19 15:32:32 +02:00
extent-io-tree.h btrfs: introduce EXTENT_DIO_LOCKED 2024-09-10 16:51:20 +02:00
extent-tree.c btrfs: fix ssd_spread overallocation 2025-08-20 18:30:53 +02:00
extent-tree.h
fiemap.c btrfs: initialize last_extent_end to fix -Wmaybe-uninitialized warning in extent_fiemap() 2024-08-26 16:58:13 +02:00
fiemap.h
file-item.c btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
file-item.h btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
file.c btrfs: fix wrong start offset for delalloc space release during mmap write 2025-07-10 16:04:56 +02:00
file.h
free-space-cache.c btrfs: add cancellation points to trim loops 2024-10-07 23:21:56 +02:00
free-space-cache.h btrfs: add cancellation points to trim loops 2024-10-07 23:21:56 +02:00
free-space-tree.c btrfs: always abort transaction on failure to add block group to free space tree 2025-08-28 16:31:03 +02:00
free-space-tree.h
fs.c
fs.h btrfs: make the extent map shrinker run asynchronously as a work queue job 2025-07-06 11:01:49 +02:00
inode-item.c btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
inode-item.h btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
inode.c btrfs: fix race between setting last_dir_index_offset and inode logging 2025-09-09 18:58:02 +02:00
ioctl.c btrfs: record new subvolume in parent dir earlier to avoid dir logging races 2025-07-10 16:04:48 +02:00
ioctl.h
Kconfig
locking.c
locking.h
lru_cache.c
lru_cache.h
lzo.c btrfs: convert lzo_decompress() to take a folio 2024-09-10 16:51:21 +02:00
Makefile
messages.c btrfs: disable rate limiting when debug enabled 2024-10-01 19:29:41 +02:00
messages.h
misc.h
ordered-data.c btrfs: fix qgroup reservation leak on failure to allocate ordered extent 2025-07-06 11:01:37 +02:00
ordered-data.h btrfs: convert btrfs_mark_ordered_io_finished() to take a folio 2024-09-10 16:51:14 +02:00
orphan.c btrfs: BTRFS_PATH_AUTO_FREE in orphan.c 2024-09-10 16:51:22 +02:00
orphan.h
print-tree.c btrfs: avoid using fixed char array size for tree names 2024-08-02 22:44:27 +02:00
print-tree.h
props.c
props.h
qgroup.c btrfs: qgroup: fix race between quota disable and quota rescan ioctl 2025-08-28 16:31:03 +02:00
qgroup.h btrfs: qgroup: set a more sane default value for subtree drop threshold 2024-10-22 16:09:11 +02:00
raid56.c btrfs: use unsigned types for constants defined as bit shifts 2025-07-06 11:01:37 +02:00
raid56.h
raid-stripe-tree.c btrfs: change RST lookup error message level to debug 2024-09-10 16:51:17 +02:00
raid-stripe-tree.h
rcu-string.h
ref-verify.c btrfs: ref-verify: fix use-after-free after invalid ref action 2024-12-09 10:40:56 +01:00
ref-verify.h
reflink.c btrfs: convert copy_inline_to_page() to use folio 2024-09-10 16:51:21 +02:00
reflink.h
relocation.c btrfs: do not allow relocation of partially dropped subvolumes 2025-08-20 18:30:54 +02:00
relocation.h
root-tree.c
root-tree.h
scrub.c btrfs: scrub: fix a wrong error type when metadata bytenr mismatches 2025-06-19 15:31:29 +02:00
scrub.h
send.c btrfs: send: make fs_path_len() inline and constify its argument 2025-08-28 16:31:04 +02:00
send.h
space-info.c btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
space-info.h btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
subpage.c btrfs: subpage: keep TOWRITE tag until folio is cleaned 2025-08-28 16:31:07 +02:00
subpage.h btrfs: rename btrfs_folio_(set|start|end)_writer_lock() 2025-02-27 04:30:14 -08:00
super.c btrfs: fix printing of mount info messages for NODATACOW/NODATASUM 2025-08-28 16:30:56 +02:00
super.h btrfs: change BTRFS_MOUNT_* flags to 64bit type 2024-07-19 17:20:23 +02:00
sysfs.c btrfs: sysfs: fix direct super block member reads 2025-01-02 10:34:24 +01:00
sysfs.h
transaction.c btrfs: explicitly ref count block_group on new_bgs list 2025-08-28 16:31:04 +02:00
transaction.h btrfs: fix race between direct IO write and fsync when using same fd 2024-09-03 20:29:55 +02:00
tree-checker.c btrfs: tree-checker: reject inline extent items with 0 ref count 2024-12-27 14:02:14 +01:00
tree-checker.h
tree-log.c btrfs: avoid load/store tearing races when checking if an inode was logged 2025-09-09 18:58:02 +02:00
tree-log.h
tree-mod-log.c btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
tree-mod-log.h btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
ulist.c
ulist.h
uuid-tree.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
uuid-tree.h btrfs: move uuid tree related code to uuid-tree.[ch] 2024-09-10 16:51:12 +02:00
verity.c btrfs: add and use helper to verify the calling task has locked the inode 2024-09-10 16:51:22 +02:00
verity.h
volumes.c btrfs: update superblock's device bytes_used when dropping chunk 2025-07-06 11:01:43 +02:00
volumes.h btrfs: split remaining space to discard in chunks 2024-10-07 23:21:53 +02:00
xattr.c btrfs: add and use helper to verify the calling task has locked the inode 2024-09-10 16:51:22 +02:00
xattr.h
zlib.c btrfs: zlib: fix avail_in bytes for s390 zlib HW compression path 2025-01-17 13:40:48 +01:00
zoned.c btrfs: zoned: skip ZONE FINISH of conventional zones 2025-09-09 18:58:03 +02:00
zoned.h btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
zstd.c btrfs: use unsigned types for constants defined as bit shifts 2025-07-06 11:01:37 +02:00