The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH] md: protect read mddev->recovery in md_sync_action()
@ 2026-06-27 10:29 Chen Cheng
  2026-06-27 10:46 ` Abd-Alrhman Masalkhi
  0 siblings, 1 reply; 4+ messages in thread
From: Chen Cheng @ 2026-06-27 10:29 UTC (permalink / raw)
  To: linux-raid, yukuai; +Cc: chencheng, linux-kernel

From: Chen Cheng <chencheng@fnnas.com>

md_sync_action() read mddev->recovery in lockless path, use READ_ONCE()
instead of u64 plain read.

Fixes: e792a4c2156a3 ("md: add new helpers for sync_action")

Signed-off-by: Chen Cheng <chencheng@fnnas.com>
---
 drivers/md/md.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/md/md.c b/drivers/md/md.c
index c5c50640b684..f4415c1a79d9 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -5074,11 +5074,11 @@ static enum sync_action md_get_active_sync_action(struct mddev *mddev)
 	return is_recover ? ACTION_RECOVER : ACTION_IDLE;
 }
 
 enum sync_action md_sync_action(struct mddev *mddev)
 {
-	unsigned long recovery = mddev->recovery;
+	unsigned long recovery = READ_ONCE(mddev->recovery);
 	enum sync_action active_action;
 
 	/*
 	 * frozen has the highest priority, means running sync_thread will be
 	 * stopped immediately, and no new sync_thread can start.
-- 
2.54.0

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-06-27 11:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-27 10:29 [PATCH] md: protect read mddev->recovery in md_sync_action() Chen Cheng
2026-06-27 10:46 ` Abd-Alrhman Masalkhi
2026-06-27 10:52   ` Chen Cheng
2026-06-27 11:25     ` Abd-Alrhman Masalkhi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox