aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--misc-utils/lsblk.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c
index cd4142c984..164e38291c 100644
--- a/misc-utils/lsblk.c
+++ b/misc-utils/lsblk.c
@@ -2236,6 +2236,7 @@ static void init_scols_filter(struct libscols_table *tb, struct libscols_filter
{
struct libscols_iter *itr;
const char *name = NULL;
+ int nerrs = 0;
itr = scols_new_iter(SCOLS_ITER_FORWARD);
if (!itr)
@@ -2246,9 +2247,10 @@ static void init_scols_filter(struct libscols_table *tb, struct libscols_filter
int id = column_name_to_id(name, strlen(name));
const struct colinfo *ci = id >= 0 ? &infos[id] : NULL;
- if (!ci)
- goto fail;
-
+ if (!ci) {
+ nerrs++;
+ continue; /* report all unknown columns */
+ }
if (!col) {
add_column(id);
col = scols_table_new_column(lsblk->table, ci->name,
@@ -2273,8 +2275,10 @@ static void init_scols_filter(struct libscols_table *tb, struct libscols_filter
}
scols_free_iter(itr);
- return;
-fail:
+
+ if (!nerrs)
+ return;
+
errx(EXIT_FAILURE, _("failed to initialize filter"));
}