]> git.hungrycats.org Git - linux/commit
btrfs: raid56: do not park sync writes into nocow runs
authorZygo Blaxell <ce3g8jdj@umail.furryterror.org>
Fri, 31 Jul 2026 05:08:44 +0000 (01:08 -0400)
committerZygo Blaxell <ce3g8jdj@umail.furryterror.org>
Fri, 18 Sep 2026 21:36:23 +0000 (17:36 -0400)
commit3d4f884e0d0fd947e9329e1460df0de898d5776e
tree0a4dcb8d2e56b801eeabfb079e261ef8e7aac79b
parentdae607ea40fb9b865268ecea5723cf735fe9fd77
btrfs: raid56: do not park sync writes into nocow runs

An in-place overwrite of a nodatacow file under stripe_alloc parked
like any partial write, but with a waiter behind it and nothing worth
merging: in-place overwrites arrive one fsync at a time, and unlike
the datacow fsync path nothing kicks the parked rbio before the page
writeback wait, so every fsync ate the full sync park deadline.
Measured against stock nodatacow on the same rig, that deadline was
the bulk of a ~3.7ms per-fsync regression.  Skip parking for sync
writes whose stripe belongs to a NOCOW-class run; async writeback
still parks and merges there.

Assisted-by: Claude:claude-fable-5
fs/btrfs/raid56.c