File mdadm-wait-for-remove.patch of Package mdadm.7533

---
 Manage.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

--- a/Manage.c
+++ b/Manage.c
@@ -1083,7 +1083,15 @@ int Manage_remove(struct supertype *tst,
 		/* device has been removed and we don't know
 		 * the major:minor number
 		 */
-		int n = write(sysfd, "remove", 6);
+		int n;
+		int slpcnt = 30;
+		do {
+			n = write(sysfd, "remove", 6);
+			if (n != -1 || errno != EBUSY)
+				break;
+			sleep(1);
+		} while (--slpcnt > 0);
+
 		if (n != 6)
 			err = -1;
 		else
openSUSE Build Service is sponsored by