* util/getroot.c (pull_lvm_by_command): add --separator option
to vgs call to disable padding of output to 10 characters.
This commit is contained in:
parent
f0b94ded6d
commit
dea55e2a95
2 changed files with 14 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
|||
2013-08-14 Andrey Borzenkov <arvidjaar@gmail.com>
|
||||
|
||||
* util/getroot.c (pull_lvm_by_command): add --separator option
|
||||
to vgs call to disable padding of output to 10 characters.
|
||||
|
||||
2013-08-14 Vladimir Serbinenko <phcoder@gmail.com>
|
||||
|
||||
* grub-core/kern/emu/misc.c (grub_device_mapper_supported): Move from
|
||||
|
|
|
@ -1322,7 +1322,7 @@ grub_util_get_dev_abstraction (const char *os_dev)
|
|||
static void
|
||||
pull_lvm_by_command (const char *os_dev)
|
||||
{
|
||||
char *argv[6];
|
||||
char *argv[8];
|
||||
int fd;
|
||||
pid_t pid;
|
||||
FILE *mdadm;
|
||||
|
@ -1351,12 +1351,17 @@ pull_lvm_by_command (const char *os_dev)
|
|||
|
||||
/* execvp has inconvenient types, hence the casts. None of these
|
||||
strings will actually be modified. */
|
||||
/* by default PV name is left aligned in 10 character field, meaning that
|
||||
we do not know where name ends. Using dummy --separator disables
|
||||
alignment. We have a single field, so separator itself is not output */
|
||||
argv[0] = (char *) "vgs";
|
||||
argv[1] = (char *) "--options";
|
||||
argv[2] = (char *) "pv_name";
|
||||
argv[3] = (char *) "--noheadings";
|
||||
argv[4] = vgname;
|
||||
argv[5] = NULL;
|
||||
argv[4] = (char *) "--separator";
|
||||
argv[5] = (char *) ":";
|
||||
argv[6] = vgname;
|
||||
argv[7] = NULL;
|
||||
|
||||
pid = exec_pipe (argv, &fd);
|
||||
free (vgname);
|
||||
|
@ -1376,6 +1381,7 @@ pull_lvm_by_command (const char *os_dev)
|
|||
while (getline (&buf, &len, mdadm) > 0)
|
||||
{
|
||||
char *ptr;
|
||||
/* LVM adds two spaces as standard prefix */
|
||||
for (ptr = buf; ptr < buf + 2 && *ptr == ' '; ptr++);
|
||||
if (*ptr == '\0')
|
||||
continue;
|
||||
|
|
Loading…
Reference in a new issue