home: hub: mkinitfs

Download patch

ref: 09cb0c2c4b414b8812acdd53eaf0f81525fb9f5f
parent: a2128b072eb5d121ac5e746021b06a11862786a6
author: Natanael Copa <ncopa@alpinelinux.org>
date: Wed Nov 25 07:32:25 CST 2015

nlplug-findfs: do not try execute programs that does not exists

Avoid printing error message if there are lvm devices but root is not on
any of those.

--- a/nlplug-findfs.c
+++ b/nlplug-findfs.c
@@ -50,9 +50,13 @@
 #define TRIGGER_THREAD		0x1
 #define CRYPTSETUP_THREAD	0x2
 
+#define LVM_PATH	"/sbin/lvm"
+#define MDADM_PATH	"/sbin/mdadm"
+
 static int dodebug;
 static char *default_envp[2];
 char *argv0;
+static int use_mdadm, use_lvm;
 
 #if defined(DEBUG)
 #include <stdarg.h>
@@ -312,23 +316,25 @@
 static void start_mdadm(char *devnode)
 {
 	char *mdadm_argv[] = {
-		"/sbin/mdadm",
+		MDADM_PATH,
 		"--incremental",
 		"--quiet",
 		devnode,
 		NULL
 	};
-	spawn_command(&spawnmgr, mdadm_argv, 0);
+	if (use_mdadm)
+		spawn_command(&spawnmgr, mdadm_argv, 0);
 }
 
 static void start_lvm2(char *devnode)
 {
 	char *lvm2_argv[] = {
-		"/sbin/lvm", "vgchange",
+		LVM_PATH, "vgchange",
 		"--activate" , "ay", "--noudevsync", "--sysinit", "-q", "-q",
 		NULL
 	};
-	spawn_command(&spawnmgr, lvm2_argv, 0);
+	if (use_lvm)
+		spawn_command(&spawnmgr, lvm2_argv, 0);
 }
 
 
@@ -842,6 +848,9 @@
 	memset(&conf, 0, sizeof(conf));
 	conf.program_argv = program_argv;
 	conf.timeout = DEFAULT_EVENT_TIMEOUT;
+	use_lvm = access(LVM_PATH, X_OK) == 0;
+	use_mdadm = access(MDADM_PATH, X_OK) == 0;
+
 	argv0 = strrchr(argv[0], '/');
 	if (argv0++ == NULL)
 		argv0 = argv[0];