Cleanup dev-replace locking
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest11 patches 9 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/11 | btrfs: remove btrfs_dev_replace::read_locksfs/ fs/ fs/ | +0 | 0 replies | |
| 2/11 | btrfs: open code btrfs_dev_replace_clear_lock_blockingfs/ fs/ fs/ | +5 | 0 replies | |
| 3/11 | btrfs: open code btrfs_dev_replace_stats_incfs/ fs/ | +4 | 1 reply | |
| 4/11 | btrfs: open code btrfs_after_dev_replace_commitfs/ fs/ fs/ | +4 | 1 reply | |
| 5/11 | btrfs: dev-replace: avoid useless lock on error handling pathfs/ | +5 | 2 replies | |
| 6/11 | btrfs: dev-replace: move replace members out of fs_infofs/ fs/ fs/ | +16 | 1 reply | |
| 7/11 | btrfs: dev-replace: remove pointless assert in write unlockfs/ | +0 | 0 replies | |
| 8/11 | btrfs: reada: reorder dev-replace locks before radix tree preloadfs/ | +7 | 0 replies | |
| 9/11 | btrfs: dev-replace: swich locking to rw semaphorefs/ fs/ fs/ | +8 | 0 replies | |
| 10/11 | btrfs: dev-replace: remove custom read/write blocking schemefs/ fs/ fs/ +2 more | +6 | 0 replies | |
| 11/11 | btrfs: dev-replace: open code trivial locking helpersfs/ fs/ fs/ +2 more | +48 | 0 replies |
Reviews trailers per patch
4 of 11 patches have a Reviewed-by or Acked-by.
| Patch | Omar Sandoval |
|---|---|
| 1/11 | |
| 2/11 | |
| 3/11 | R-b |
| 4/11 | R-b |
| 5/11 | R-b |
| 6/11 | R-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.
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