linux-raid.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 5.10] md: Flush workqueue md_rdev_misc_wq in md_alloc()
@ 2023-02-24  6:52 Hou Tao
  2023-02-24  6:42 ` Timestamps from the future (was: [PATCH 5.10] md: Flush workqueue md_rdev_misc_wq in md_alloc()) Paul Menzel
  2023-02-28 18:37 ` [PATCH 5.10] md: Flush workqueue md_rdev_misc_wq in md_alloc() Greg Kroah-Hartman
  0 siblings, 2 replies; 4+ messages in thread
From: Hou Tao @ 2023-02-24  6:52 UTC (permalink / raw)
  To: Greg Kroah-Hartman, stable
  Cc: linux-raid, David Sloan, Logan Gunthorpe, Song Liu, Jens Axboe,
	Sasha Levin, houtao1

From: David Sloan <david.sloan@eideticom.com>

commit 5e8daf906f890560df430d30617c692a794acb73 upstream.

A race condition still exists when removing and re-creating md devices
in test cases. However, it is only seen on some setups.

The race condition was tracked down to a reference still being held
to the kobject by the rdev in the md_rdev_misc_wq which will be released
in rdev_delayed_delete().

md_alloc() waits for previous deletions by waiting on the md_misc_wq,
but the md_rdev_misc_wq may still be holding a reference to a recently
removed device.

To fix this, also flush the md_rdev_misc_wq in md_alloc().

Signed-off-by: David Sloan <david.sloan@eideticom.com>
[logang@deltatee.com: rewrote commit message]
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Song Liu <song@kernel.org>
Signed-off-by: Hou Tao <houtao1@huawei.com>
---
Hi Greg,

We found the problem also exists on v5.10, so could you please pick it up
for v5.10 ?

Thanks.

 drivers/md/md.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/md/md.c b/drivers/md/md.c
index 3038e7ecb7e1..c0b34637bd66 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -5683,6 +5683,7 @@ static int md_alloc(dev_t dev, char *name)
 	 * completely removed (mddev_delayed_delete).
 	 */
 	flush_workqueue(md_misc_wq);
+	flush_workqueue(md_rdev_misc_wq);
 
 	mutex_lock(&disks_mutex);
 	error = -EEXIST;
-- 
2.29.2


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

end of thread, other threads:[~2023-02-28 18:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-24  6:52 [PATCH 5.10] md: Flush workqueue md_rdev_misc_wq in md_alloc() Hou Tao
2023-02-24  6:42 ` Timestamps from the future (was: [PATCH 5.10] md: Flush workqueue md_rdev_misc_wq in md_alloc()) Paul Menzel
2023-02-24  6:55   ` Hou Tao
2023-02-28 18:37 ` [PATCH 5.10] md: Flush workqueue md_rdev_misc_wq in md_alloc() Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).