diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2015-11-25 13:32:25 +0100 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2015-11-25 12:38:50 +0000 |
commit | 09cb0c2c4b414b8812acdd53eaf0f81525fb9f5f (patch) | |
tree | f5a4e9baba1babb16549a6bf945d9afcae9a2290 /nlplug-findfs.c | |
parent | a2128b072eb5d121ac5e746021b06a11862786a6 (diff) | |
download | mkinitfs-09cb0c2c4b414b8812acdd53eaf0f81525fb9f5f.tar.bz2 mkinitfs-09cb0c2c4b414b8812acdd53eaf0f81525fb9f5f.tar.xz |
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.
Diffstat (limited to 'nlplug-findfs.c')
-rw-r--r-- | nlplug-findfs.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/nlplug-findfs.c b/nlplug-findfs.c index cccc359..27b9ce2 100644 --- 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 int load_kmod(const char *modalias) 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 @@ int main(int argc, char *argv[]) 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]; |