From: Laura Abbott Date: Mon, 28 Sep 2015 22:39:11 +0000 (-0700) Subject: modprobe: Update error message when path is missing X-Git-Tag: v22~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b87d01d6ef87e7f717ed8a9221baeee3c60b571d;p=thirdparty%2Fkmod.git modprobe: Update error message when path is missing Currently, modprobe fails with no output by default if the search paths it tries are missing: $ modprobe -S notakernel dm-crypt $ $ modprobe -S notakernel lkjjweiojo $ This is fairly cryptic and not at all obvious there is a problem unless the error code is checked or verbose flags are used. Update the error message to indicate a problem and print out the directory that failed. --- diff --git a/libkmod/libkmod-internal.h b/libkmod/libkmod-internal.h index 3e9839dc..4d9db6bc 100644 --- a/libkmod/libkmod-internal.h +++ b/libkmod/libkmod-internal.h @@ -85,8 +85,6 @@ struct kmod_list *kmod_list_append_list(struct kmod_list *list1, struct kmod_lis container_of(list_entry->node.prev, struct kmod_list, node))) /* libkmod.c */ -const char *kmod_get_dirname(const struct kmod_ctx *ctx) __attribute__((nonnull(1))); - int kmod_lookup_alias_from_config(struct kmod_ctx *ctx, const char *name, struct kmod_list **list) __attribute__((nonnull(1, 2, 3))); int kmod_lookup_alias_from_symbols_file(struct kmod_ctx *ctx, const char *name, struct kmod_list **list) __attribute__((nonnull(1, 2, 3))); int kmod_lookup_alias_from_aliases_file(struct kmod_ctx *ctx, const char *name, struct kmod_list **list) __attribute__((nonnull(1, 2, 3))); diff --git a/libkmod/libkmod.h b/libkmod/libkmod.h index fe53a595..f9e33c6c 100644 --- a/libkmod/libkmod.h +++ b/libkmod/libkmod.h @@ -51,6 +51,7 @@ void kmod_set_log_priority(struct kmod_ctx *ctx, int priority); void *kmod_get_userdata(const struct kmod_ctx *ctx); void kmod_set_userdata(struct kmod_ctx *ctx, const void *userdata); +const char *kmod_get_dirname(const struct kmod_ctx *ctx); /* * Management of libkmod's resources diff --git a/tools/modprobe.c b/tools/modprobe.c index 3ba8f520..43605cca 100644 --- a/tools/modprobe.c +++ b/tools/modprobe.c @@ -489,11 +489,10 @@ static int insmod(struct kmod_ctx *ctx, const char *alias, const char *options) = NULL; err = kmod_module_new_from_lookup(ctx, alias, &list); - if (err < 0) - return err; - if (list == NULL) { - LOG("Module %s not found.\n", alias); + if (list == NULL || err < 0) { + LOG("Module %s not found in directory %s\n", alias, + ctx ? kmod_get_dirname(ctx) : "(missing)"); return -ENOENT; }