X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fmodules-load.c;h=2dd432695f5f4c028264cd111b5f5912cfcbb567;hb=e8bf3c88e3a80b791cee3c6207a36e82a2ac1029;hp=bfe5b8a995e3f9f866a10f162374acfcb5258db6;hpb=22f4096ca96acd504ac74e7dfad96f07edb6da51;p=elogind.git diff --git a/src/modules-load.c b/src/modules-load.c index bfe5b8a99..2dd432695 100644 --- a/src/modules-load.c +++ b/src/modules-load.c @@ -31,7 +31,7 @@ #include "util.h" #include "strv.h" -/* This reads all module names listed in /etc/modules.d/?*.modules and +/* This reads all module names listed in /etc/modules-load.d/?*.conf and * loads them into the kernel. This follows roughly Debian's way to * handle modules, but uses a directory of fragments instead of a * single /etc/modules file. */ @@ -43,10 +43,11 @@ static int scandir_filter(const struct dirent *d) { return 0; if (d->d_type != DT_REG && - d->d_type != DT_LNK) + d->d_type != DT_LNK && + d->d_type != DT_UNKNOWN) return 0; - return endswith(d->d_name, ".modules"); + return endswith(d->d_name, ".conf"); } int main(int argc, char *argv[]) { @@ -71,12 +72,12 @@ int main(int argc, char *argv[]) { n_arguments = n_allocated = 3; - if ((n = scandir("/etc/modules.d/", &de, scandir_filter, alphasort)) < 0) { + if ((n = scandir("/etc/modules-load.d/", &de, scandir_filter, alphasort)) < 0) { if (errno == ENOENT) r = EXIT_SUCCESS; else - log_error("Failed to enumerate /etc/modules.d/ files: %m"); + log_error("Failed to enumerate /etc/modules-load.d/ files: %m"); goto finish; } @@ -88,7 +89,7 @@ int main(int argc, char *argv[]) { char *fn; FILE *f; - k = asprintf(&fn, "/etc/modules.d/%s", de[i]->d_name); + k = asprintf(&fn, "/etc/modules-load.d/%s", de[i]->d_name); free(de[i]); if (k < 0) { @@ -101,6 +102,9 @@ int main(int argc, char *argv[]) { free(fn); if (!f) { + if (errno == ENOENT) + continue; + log_error("Failed to open %s: %m", fn); r = EXIT_FAILURE; continue;