The first cleanup part went to 4.19, the actual switch from the custom locking to rswem was postponed as I found performance degradation. This turned out to be related to VM cache settings, so I'm resending the series again.
The custom locking is based on rwlock protected reader/writer counters, waitqueues, which essentially is what the readwrite semaphore does. Previous patchset: https://lore.kernel.org/linux-btrfs/cover.1536331604.git.dste...@suse.com/ Patches correspond to 8/11-11/11 and there's no change besides refreshing on top of current misc-next. David Sterba (4): btrfs: reada: reorder dev-replace locks before radix tree preload btrfs: dev-replace: swich locking to rw semaphore btrfs: dev-replace: remove custom read/write blocking scheme btrfs: dev-replace: open code trivial locking helpers fs/btrfs/ctree.h | 4 +- fs/btrfs/dev-replace.c | 97 ++++++++++++++---------------------------- fs/btrfs/dev-replace.h | 5 --- fs/btrfs/disk-io.c | 4 +- fs/btrfs/reada.c | 16 ++++--- fs/btrfs/scrub.c | 15 ++++--- fs/btrfs/volumes.c | 27 ++++++------ 7 files changed, 63 insertions(+), 105 deletions(-) -- 2.19.1