diff options
Diffstat (limited to 'mkinitfs/mkinitfs-mdadm_fix.patch')
| -rw-r--r-- | mkinitfs/mkinitfs-mdadm_fix.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/mkinitfs/mkinitfs-mdadm_fix.patch b/mkinitfs/mkinitfs-mdadm_fix.patch new file mode 100644 index 0000000..2981d7f --- /dev/null +++ b/mkinitfs/mkinitfs-mdadm_fix.patch @@ -0,0 +1,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) { |
