Skip to content

Cleanup dev-replace locking

David Sterba linux-btrfs 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest11 patches 9 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/11btrfs: remove btrfs_dev_replace::read_locksfs/btrfs/ctree.h fs/btrfs/dev-replace.c fs/btrfs/disk-io.c+0 -70 replies
2/11btrfs: open code btrfs_dev_replace_clear_lock_blockingfs/btrfs/dev-replace.c fs/btrfs/dev-replace.h fs/btrfs/volumes.c+5 -150 replies
3/11btrfs: open code btrfs_dev_replace_stats_incfs/btrfs/dev-replace.h fs/btrfs/scrub.c+4 -121 reply
4/11btrfs: open code btrfs_after_dev_replace_commitfs/btrfs/dev-replace.c fs/btrfs/dev-replace.h fs/btrfs/transaction.c+4 -101 reply
5/11btrfs: dev-replace: avoid useless lock on error handling pathfs/btrfs/dev-replace.c+5 -22 replies
6/11btrfs: dev-replace: move replace members out of fs_infofs/btrfs/ctree.h fs/btrfs/dev-replace.c fs/btrfs/disk-io.c+16 -151 reply
7/11btrfs: dev-replace: remove pointless assert in write unlockfs/btrfs/dev-replace.c+0 -10 replies
8/11btrfs: reada: reorder dev-replace locks before radix tree preloadfs/btrfs/reada.c+7 -50 replies
9/11btrfs: dev-replace: swich locking to rw semaphorefs/btrfs/ctree.h fs/btrfs/dev-replace.c fs/btrfs/disk-io.c+8 -80 replies
10/11btrfs: dev-replace: remove custom read/write blocking schemefs/btrfs/ctree.h fs/btrfs/dev-replace.c fs/btrfs/dev-replace.h +2 more+6 -280 replies
11/11btrfs: dev-replace: open code trivial locking helpersfs/btrfs/dev-replace.c fs/btrfs/dev-replace.h fs/btrfs/reada.c +2 more+48 -700 replies

Reviews trailers per patch

4 of 11 patches have a Reviewed-by or Acked-by.

PatchOmar Sandoval
1/11
2/11
3/11R-b
4/11R-b
5/11R-b
6/11R-b
7/11
8/11
9/11
10/11
11/11

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [PATCH 00/11] Cleanup dev-replace locking

The series peels off the custom locking that's used for dev-replace and uses read-write semaphore in the end.

I've mainly focused on correctness and haven't measured the performance effects. There should be none as the blocking and waiting was merely open coding what the rw semaphore does, but without the fairness. The overall number of locks taken is low, there's a lots of IO in between so even if new scheme is slower, I don't expect any dramatic change.

git://github.com/kdave/btrfs-devel.git dev/dev-replace-locking

David Sterba (11):
btrfs: remove btrfs_dev_replace::read_locks
btrfs: open code btrfs_dev_replace_clear_lock_blocking
btrfs: open code btrfs_dev_replace_stats_inc
btrfs: open code btrfs_after_dev_replace_commit
btrfs: dev-replace: avoid useless lock on error handling path
btrfs: dev-replace: move replace members out of fs_info
btrfs: dev-replace: remove pointless assert in write unlock
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       |  11 ++--
 fs/btrfs/dev-replace.c | 136 ++++++++++++-----------------------------
 fs/btrfs/dev-replace.h |  13 ----
 fs/btrfs/disk-io.c     |  14 ++---
 fs/btrfs/reada.c       |  16 ++---
 fs/btrfs/scrub.c       |  26 ++++----
 fs/btrfs/transaction.c |   5 +-
 fs/btrfs/volumes.c     |  23 ++++---
 8 files changed, 87 insertions(+), 157 deletions(-)
Signature · 1 line
2.18.0