This file should always exist for any healthy kernel install, but
lacking it should not cause kmod_load_resources to fail. Add an
attribute for the indicies indicating whether or not failures should be
treated as fatal.
---
 libkmod/libkmod.c | 27 ++++++++++++++++++++++-----
 1 file changed, 22 insertions(+), 5 deletions(-)

diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c
index f898438..08b0099 100644
--- a/libkmod/libkmod.c
+++ b/libkmod/libkmod.c
@@ -51,11 +51,28 @@
 static struct _index_files {
        const char *fn;
        const char *prefix;
+       bool fatal;
 } index_files[] = {
-       [KMOD_INDEX_MODULES_DEP] = { .fn = "modules.dep", .prefix = "" },
-       [KMOD_INDEX_MODULES_ALIAS] = { .fn = "modules.alias", .prefix = "alias 
" },
-       [KMOD_INDEX_MODULES_SYMBOL] = { .fn = "modules.symbols", .prefix = 
"alias "},
-       [KMOD_INDEX_MODULES_BUILTIN] = { .fn = "modules.builtin", .prefix = ""},
+       [KMOD_INDEX_MODULES_DEP] = {
+               .fn = "modules.dep",
+               .prefix = "",
+               .fatal = true,
+       },
+       [KMOD_INDEX_MODULES_ALIAS] = {
+               .fn = "modules.alias",
+               .prefix = "alias ",
+               .fatal = true,
+       },
+       [KMOD_INDEX_MODULES_SYMBOL] = {
+               .fn = "modules.symbols",
+               .prefix = "alias ",
+               .fatal = false,
+       },
+       [KMOD_INDEX_MODULES_BUILTIN] = {
+               .fn = "modules.builtin",
+               .prefix = "",
+               .fatal = false,
+       },
 };
 
 static const char *default_config_paths[] = {
@@ -808,7 +825,7 @@ KMOD_EXPORT int kmod_load_resources(struct kmod_ctx *ctx)
                                                        index_files[i].fn);
                ctx->indexes[i] = index_mm_open(ctx, path,
                                                &ctx->indexes_stamp[i]);
-               if (ctx->indexes[i] == NULL)
+               if (ctx->indexes[i] == NULL && index_files[i].fatal)
                        goto fail;
        }
 
-- 
1.8.0.3

--
To unsubscribe from this list: send the line "unsubscribe linux-modules" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to