Blame SOURCES/0046-tests-00readonly-Run-udevadm-settle-before-setting-r.patch

fdf7c0
From 39b381252c32275079344d30de18b76fda4bba26 Mon Sep 17 00:00:00 2001
fdf7c0
From: Logan Gunthorpe <logang@deltatee.com>
fdf7c0
Date: Wed, 27 Jul 2022 15:52:45 -0600
01ff50
Subject: [PATCH 46/83] tests/00readonly: Run udevadm settle before setting ro
fdf7c0
fdf7c0
In some recent kernel versions, 00readonly fails with:
fdf7c0
fdf7c0
  mdadm: failed to set readonly for /dev/md0: Device or resource busy
fdf7c0
  ERROR: array is not read-only!
fdf7c0
fdf7c0
This was traced down to a race condition with udev holding a reference
fdf7c0
to the block device at the same time as trying to set it read only.
fdf7c0
fdf7c0
To fix this, call udevadm settle before setting the array read only.
fdf7c0
fdf7c0
Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
fdf7c0
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
fdf7c0
---
fdf7c0
 tests/00readonly | 1 +
fdf7c0
 1 file changed, 1 insertion(+)
fdf7c0
fdf7c0
diff --git a/tests/00readonly b/tests/00readonly
fdf7c0
index 39202487..afe243b3 100644
fdf7c0
--- a/tests/00readonly
fdf7c0
+++ b/tests/00readonly
fdf7c0
@@ -12,6 +12,7 @@ do
fdf7c0
 			$dev1 $dev2 $dev3 $dev4 --assume-clean
fdf7c0
 		check nosync
fdf7c0
 		check $level
fdf7c0
+		udevadm settle
fdf7c0
 		mdadm -ro $md0
fdf7c0
 		check readonly
fdf7c0
 		state=$(cat /sys/block/md0/md/array_state)
fdf7c0
-- 
01ff50
2.38.1
fdf7c0