Hi Jens, I found the following regression in ZNS devices when executing some basic workload: [ 182.240375] Call Trace: [ 182.240517] <TASK> [ 182.240656] btrfs_start_dirty_block_groups+0x6be/0xe80 [btrfs] [ 182.241091] ? bio_init+0x398/0x620 [ 182.241307] ? btrfs_setup_space_cache+0x240/0x240 [btrfs] [ 182.241731] ? mutex_unlock+0x80/0xd0 [ 182.241964] ? __mutex_unlock_slowpath.constprop.0+0x2a0/0x2a0 [ 182.242490] btrfs_commit_transaction+0x18aa/0x2820 [btrfs] [ 182.242901] ? kasan_unpoison+0x23/0x50 [ 182.243156] ? join_transaction+0x255/0xe80 [btrfs] [ 182.244105] ? btrfs_apply_pending_changes+0x50/0x50 [btrfs] [ 182.244554] ? vfs_fsync_range+0x210/0x210 [ 182.244839] ? btrfs_attach_transaction_barrier+0x1f/0x70 [btrfs] [ 182.245293] ? vfs_fsync_range+0x210/0x210 [ 182.245563] iterate_supers+0x109/0x200 [ 182.245794] ksys_sync+0xa8/0x130 [ 182.245990] ? vfs_fsync+0x200/0x200 [ 182.246197] ? do_user_addr_fault+0x31e/0xd60 [ 182.246454] ? kvm_read_and_reset_apf_flags+0x41/0x60 [ 182.247240] ? fpregs_assert_state_consistent+0x4a/0xb0 [ 182.247613] __do_sys_sync+0xa/0x10 [ 182.247827] do_syscall_64+0x3b/0x90 [ 182.248041] entry_SYSCALL_64_after_hwframe+0x44/0xae [ 182.252155] </TASK> [ 182.252281] ---[ end trace 0000000000000000 ]--- [ 182.252561] BTRFS: error (device nvme0n2) in btrfs_run_delayed_refs:2159: errno=-17 Object already exists [ 182.253110] BTRFS info (device nvme0n2): forced readonly I am using QEMU with a ZNS drive with zoned.zone_capacity=128M, zoned.zone_size=128M. Steps to reproduce: $ mkfs.btrfs /dev/nvme0n2 -d single -m single $ mount -t btrfs /dev/nvme0n2 /mnt/btrfs $ cd /mnt/btrfs $ head --bytes 1048576 /dev/random >> 4k_rand.bin $ sync $ head --bytes 1048576 /dev/random >> 4k_rand.bin $ sync Git bisect run pointed the following as the offending commit: commit 5581a5ddfe8d ("block: add completion handler for fast path") The fast path completion handler does not handle the ZONE_APPEND requests correctly. Pankaj Raghav (1): block: Add handling for zone append command in blk_complete_request block/blk-mq.c | 4 ++++ 1 file changed, 4 insertions(+) -- 2.25.1