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;
Dear Hou,
Am 24.02.23 um 07:52 schrieb Hou Tao:
[…]
Just a heads-up that the date/timestamp is from the future
Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgBXwLPzV_hjqVfcEA--.64482S4; Fri, 24 Feb 2023 14:23:49 +0800 (CST) […] Date: Fri, 24 Feb 2023 14:52:09 +0800
Please check the time of your (development) system.
Kind regards,
Paul
Hi,
On 2/24/2023 2:42 PM, Paul Menzel wrote:
Dear Hou,
Am 24.02.23 um 07:52 schrieb Hou Tao:
[…]
Just a heads-up that the date/timestamp is from the future
Received: from huaweicloud.com (unknown [10.175.124.27]) by APP4 (Coremail) with SMTP id gCh0CgBXwLPzV_hjqVfcEA--.64482S4; Fri, 24 Feb 2023 14:23:49 +0800 (CST) […] Date: Fri, 24 Feb 2023 14:52:09 +0800
Please check the time of your (development) system.
The time of our development server is incorrect. Will calibrate it.
Thanks.
Kind regards,
Paul
On Fri, Feb 24, 2023 at 02:52:09PM +0800, Hou Tao wrote:
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 ?
Now queued up, thanks.
greg k-h
linux-stable-mirror@lists.linaro.org