1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-10-27 10:25:13 +03:00

vdo: adapt for multi line vdo_format output

Do not close pipeline after 1st. line parsed from vdo_format.
Also reprint the output for a user so new messages from vdo_format
can be seen by users.
This commit is contained in:
Zdenek Kabelac 2020-01-22 12:57:23 +01:00
parent d7bf7091c3
commit cf844941d4

View File

@ -317,15 +317,17 @@ static int _format_vdo_pool_data_lv(struct logical_volume *data_lv,
}
if (!*logical_size)
while (fgets(buf, sizeof(buf), f)) {
while (!feof(f) && fgets(buf, sizeof(buf), f)) {
/* TODO: Watch out for locales */
if (sscanf(buf, "Logical blocks defaulted to " FMTu64 " blocks", &lb) == 1) {
*logical_size = lb * DM_VDO_BLOCK_SIZE;
log_verbose("Available VDO logical blocks " FMTu64 " (%s).",
lb, display_size(data_lv->vg->cmd, *logical_size));
break;
} else
log_warn("WARNING: Cannot parse output '%s' from %s.", buf, argv[0]);
}
if ((dpath = strchr(buf, '\n')))
*dpath = 0; /* cut last '\n' away */
if (buf[0])
log_print(" %s", buf); /* Print vdo_format messages */
}
if (!pipe_close(&pdata)) {
@ -333,6 +335,11 @@ static int _format_vdo_pool_data_lv(struct logical_volume *data_lv,
return 0;
}
if (!*logical_size) {
log_error("Number of VDO logical blocks was not provided by vdo_format output.");
return 0;
}
return 1;
}