summaryrefslogtreecommitdiffstats
path: root/discover/kboot-parser.c
diff options
context:
space:
mode:
authorGeoff Levand <geoff@infradead.org>2018-08-02 17:29:35 +0000
committerSamuel Mendoza-Jonas <sam@mendozajonas.com>2018-08-07 11:30:36 +1000
commitecc2146363f272c5e34a4878d2144a01041d453f (patch)
treeef20b74125f11f25982be8bbf6d457d012190374 /discover/kboot-parser.c
parent5303629eca660246616442fd3f9b7b5dfe254594 (diff)
downloadtalos-petitboot-ecc2146363f272c5e34a4878d2144a01041d453f.tar.gz
talos-petitboot-ecc2146363f272c5e34a4878d2144a01041d453f.zip
discover/parser: Hookup parser_is_unique
Signed-off-by: Geoff Levand <geoff@infradead.org> Signed-off-by: Samuel Mendoza-Jonas <sam@mendozajonas.com>
Diffstat (limited to 'discover/kboot-parser.c')
-rw-r--r--discover/kboot-parser.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/discover/kboot-parser.c b/discover/kboot-parser.c
index 62512cf..e4b36b6 100644
--- a/discover/kboot-parser.c
+++ b/discover/kboot-parser.c
@@ -167,19 +167,22 @@ static const char *const kboot_ignored_names[] = {
static int kboot_parse(struct discover_context *dc)
{
struct conf_context *conf;
+ struct list *found_list;
const char * const *filename;
- char *buf;
- int len, rc;
/* Support block device boot only at present */
if (dc->event)
return -1;
conf = talloc_zero(dc, struct conf_context);
-
if (!conf)
return -1;
+ found_list = talloc(conf, struct list);
+ if (!found_list)
+ return -1;
+ list_init(found_list);
+
conf->dc = dc;
conf->global_options = kboot_global_options,
conf_init_global_options(conf);
@@ -188,6 +191,12 @@ static int kboot_parse(struct discover_context *dc)
conf->parser_info = (void *)kboot_ignored_names;
for (filename = kboot_conf_files; *filename; filename++) {
+ int len, rc;
+ char *buf;
+
+ if (!parser_is_unique(dc, dc->device, *filename, found_list))
+ continue;
+
rc = parser_request_file(dc, dc->device, *filename, &buf, &len);
if (rc)
continue;
OpenPOWER on IntegriCloud