summaryrefslogtreecommitdiff
path: root/mkinitfs/mkinitfs-mdadm_fix.patch
blob: 2981d7f0b2553a8e20b15d9078de817a9c1878ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
diff --git a/nlplug-findfs/nlplug-findfs.c b/nlplug-findfs/nlplug-findfs.c
index 1cb48d2..7b0b940 100644
--- a/nlplug-findfs/nlplug-findfs.c
+++ b/nlplug-findfs/nlplug-findfs.c
@@ -479,9 +479,9 @@ static int load_kmod(const char *modalias, char *driver, size_t len)
 	return count;
 }
 
-static void start_mdadm(char *devnode)
+static void start_mdadm(char *devnode, const char *searchdev)
 {
-	char *mdadm_argv[] = {
+	char *root_mdadm_argv[] = {
 		MDADM_PATH,
 		"--incremental",
 		"--run",
@@ -489,6 +489,14 @@ static void start_mdadm(char *devnode)
 		devnode,
 		NULL
 	};
+	char *nonroot_mdadm_argv[] = {
+		MDADM_PATH,
+		"--incremental",
+		"--quiet",
+		devnode,
+		NULL
+	};
+	char **mdadm_argv = (strcmp(devnode, searchdev) == 0) ? root_mdadm_argv : nonroot_mdadm_argv;
 	if (use_mdadm)
 		spawn_command(&spawnmgr, mdadm_argv, 0);
 }
@@ -1006,7 +1014,7 @@ static int searchdev(struct uevent *ev, const char *searchdev, int scanbootmedia
 
 	if (!rc && type) {
 		if (strcmp("linux_raid_member", type) == 0) {
-			start_mdadm(ev->devnode);
+			start_mdadm(ev->devnode, searchdev);
 		} else if (strcmp("LVM2_member", type) == 0) {
 			start_lvm2(ev->devnode);
 		} else if (strcmp("zfs_member", type) == 0) {