mirror of
https://github.com/systemd/systemd.git
synced 2025-03-31 14:50:15 +03:00
modules-load: do not fail service if modules are not present
It is pretty common for the service to fail in the initramfs (for example because certain modules have not been copied over or haven't been built yet in case of dkms modules). This seems to be more trouble than it is worth. Let's change the service to simply log any missing modules at error level, but not fail the whole service. https://bugzilla.redhat.com/show_bug.cgi?id=1254340
This commit is contained in:
parent
1c507a6db5
commit
fec837e96e
@ -96,6 +96,8 @@ static int apply_file(struct kmod_ctx *ctx, const char *path, bool ignore_enoent
|
||||
continue;
|
||||
|
||||
k = module_load_and_warn(ctx, l, true);
|
||||
if (k == -ENOENT)
|
||||
continue;
|
||||
if (k < 0 && r >= 0)
|
||||
r = k;
|
||||
}
|
||||
@ -124,7 +126,6 @@ static int help(void) {
|
||||
}
|
||||
|
||||
static int parse_argv(int argc, char *argv[]) {
|
||||
|
||||
enum {
|
||||
ARG_VERSION = 0x100,
|
||||
};
|
||||
@ -141,7 +142,6 @@ static int parse_argv(int argc, char *argv[]) {
|
||||
assert(argv);
|
||||
|
||||
while ((c = getopt_long(argc, argv, "h", options, NULL)) >= 0)
|
||||
|
||||
switch (c) {
|
||||
|
||||
case 'h':
|
||||
@ -202,6 +202,8 @@ static int run(int argc, char *argv[]) {
|
||||
|
||||
STRV_FOREACH(i, arg_proc_cmdline_modules) {
|
||||
k = module_load_and_warn(ctx, *i, true);
|
||||
if (k == -ENOENT)
|
||||
continue;
|
||||
if (k < 0 && r == 0)
|
||||
r = k;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user