aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/raid10.h
diff options
context:
space:
mode:
authorYu Kuai <yukuai3@huawei.com>2022-09-16 19:34:28 +0800
committerSong Liu <song@kernel.org>2022-09-22 00:05:05 -0700
commitb9b083f9044abf89f3391fbc196ddece68ac9dba (patch)
treee68cc5787d8330edd314232e3bdb9deac95594f8 /drivers/md/raid10.h
parentmd/raid10: fix improper BUG_ON() in raise_barrier() (diff)
downloadlinux-dev-b9b083f9044abf89f3391fbc196ddece68ac9dba.tar.xz
linux-dev-b9b083f9044abf89f3391fbc196ddece68ac9dba.zip
md/raid10: convert resync_lock to use seqlock
Currently, wait_barrier() will hold 'resync_lock' to read 'conf->barrier', and io can't be dispatched until 'barrier' is dropped. Since holding the 'barrier' is not common, convert 'resync_lock' to use seqlock so that holding lock can be avoided in fast path. Signed-off-by: Yu Kuai <yukuai3@huawei.com> Reviewed-and-Tested-by: Logan Gunthorpe <logang@deltatee.com> Signed-off-by: Song Liu <song@kernel.org>
Diffstat (limited to 'drivers/md/raid10.h')
-rw-r--r--drivers/md/raid10.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/md/raid10.h b/drivers/md/raid10.h
index 5c0804d8bb1f..8c072ce0bc54 100644
--- a/drivers/md/raid10.h
+++ b/drivers/md/raid10.h
@@ -76,7 +76,7 @@ struct r10conf {
/* queue pending writes and submit them on unplug */
struct bio_list pending_bio_list;
- spinlock_t resync_lock;
+ seqlock_t resync_lock;
atomic_t nr_pending;
int nr_waiting;
int nr_queued;