File 0054-Assemble-allow-a-RAID4-to-assemble-easily-when-parit.patch of Package mdadm.5365
From 330d6900bb4eea5d4dc407c2b547f48caf84f623 Mon Sep 17 00:00:00 2001
From: NeilBrown <neilb@suse.de>
Date: Wed, 8 Apr 2015 09:36:55 +1000
Subject: [PATCH 070/359] Assemble: allow a RAID4 to assemble easily when
parity devices is missing.
References: bnc#926767
If the parity device of a RAID4 is missing, then there is no immediate
risk to data. So it doesn't matter if the array is dirty or not.
This can be important when reshaping a RAID0, and is a much better
solution that that in the resent-reverted.
b720636a5849397dbc6dc1b0f0b671d17034a28b
Reported-by: "Jonathan Harker (Jesusaurus)" <jesusaurus@gentlydownthe.net>
Signed-off-by: NeilBrown <neilb@suse.de>
---
util.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/util.c b/util.c
index 6f1e2b1..cc98d3b 100644
--- a/util.c
+++ b/util.c
@@ -368,6 +368,13 @@ int enough(int level, int raid_disks, int layout, int clean, char *avail)
case 1:
return avail_disks >= 1;
case 4:
+ if (avail_disks == raid_disks - 1 &&
+ !avail[raid_disks - 1])
+ /* If just the parity device is missing, then we
+ * have enough, even if not clean
+ */
+ return 1;
+ /* FALL THROUGH */
case 5:
if (clean)
return avail_disks >= raid_disks-1;
--
2.16.1