mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-06 16:13:35 +00:00
Fallback lvs comparison to false.
If lvs invocation fails or doesn't return any output, then lv flags comparison to false. Signed-off-by: Sidnei da Silva <sidnei.da.silva@canonical.com> Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
parent
34e135b238
commit
8aba14bbc8
@ -813,7 +813,7 @@ static int lvm_umount(struct bdev *bdev)
|
||||
|
||||
static int lvm_compare_lv_attr(const char *path, int pos, const char expected) {
|
||||
FILE *f;
|
||||
int ret, len, start=0;
|
||||
int ret, len, status, start=0;
|
||||
char *cmd, output[12];
|
||||
const char *lvscmd = "lvs --unbuffered --noheadings -o lv_attr %s 2>/dev/null";
|
||||
|
||||
@ -833,21 +833,16 @@ static int lvm_compare_lv_attr(const char *path, int pos, const char expected) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (fgets(output, 12, f) == NULL) {
|
||||
process_lock();
|
||||
(void) pclose(f);
|
||||
process_unlock();
|
||||
return -1;
|
||||
}
|
||||
ret = fgets(output, 12, f) == NULL;
|
||||
|
||||
process_lock();
|
||||
ret = pclose(f);
|
||||
status = pclose(f);
|
||||
process_unlock();
|
||||
|
||||
if (!WIFEXITED(ret)) {
|
||||
SYSERROR("error executing lvs");
|
||||
return -1;
|
||||
}
|
||||
if (ret || WEXITSTATUS(status))
|
||||
// Assume either vg or lvs do not exist, default
|
||||
// comparison to false.
|
||||
return 0;
|
||||
|
||||
len = strlen(output);
|
||||
while(start < len && output[start] == ' ') start++;
|
||||
|
Loading…
Reference in New Issue
Block a user