[lvm-devel] main - lv_info: missing check for info.exists
Zdenek Kabelac
zkabelac at sourceware.org
Mon Mar 15 10:14:04 UTC 2021
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=5141a510bdfbf1ac8a64cc7ffd8c292c0c4b7a60
Commit: 5141a510bdfbf1ac8a64cc7ffd8c292c0c4b7a60
Parent: 3608e8aee74a5c771b96d768e6c32edc728dbca0
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Thu Mar 11 20:38:51 2021 +0100
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Sun Mar 14 16:34:38 2021 +0100
lv_info: missing check for info.exists
When &info is passed in, user needs to check for exists.
When there is NULL, return value includes check for exists.
---
lib/mirror/mirrored.c | 4 ++--
lib/raid/raid.c | 5 ++---
2 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/lib/mirror/mirrored.c b/lib/mirror/mirrored.c
index 64b470a98..83f1bffcb 100644
--- a/lib/mirror/mirrored.c
+++ b/lib/mirror/mirrored.c
@@ -212,7 +212,7 @@ static int _mirrored_transient_status(struct dm_pool *mem, struct lv_segment *se
if (!strcmp(sm->log_type, "disk")) {
log = first_seg(lv)->log_lv;
- if (!lv_info(lv->vg->cmd, log, 0, &info, 0, 0)) {
+ if (!lv_info(lv->vg->cmd, log, 0, &info, 0, 0) || !info.exists) {
log_error("Check for existence of mirror log %s failed.",
display_lvname(log));
goto out;
@@ -235,7 +235,7 @@ static int _mirrored_transient_status(struct dm_pool *mem, struct lv_segment *se
}
for (i = 0; i < seg->area_count; ++i) {
- if (!lv_info(lv->vg->cmd, seg_lv(seg, i), 0, &info, 0, 0)) {
+ if (!lv_info(lv->vg->cmd, seg_lv(seg, i), 0, &info, 0, 0) || !info.exists) {
log_error("Check for existence of mirror image %s failed.",
seg_lv(seg, i)->name);
goto out;
diff --git a/lib/raid/raid.c b/lib/raid/raid.c
index a0f00637a..4bb21d758 100644
--- a/lib/raid/raid.c
+++ b/lib/raid/raid.c
@@ -402,7 +402,6 @@ static int _raid_transient_status(struct dm_pool *mem,
{
int failed = 0, r = 0;
unsigned i;
- struct lvinfo info;
struct logical_volume *lv;
struct dm_status_raid *sr;
@@ -421,7 +420,7 @@ static int _raid_transient_status(struct dm_pool *mem,
if (seg->meta_areas)
for (i = 0; i < seg->area_count; ++i) {
lv = seg_metalv(seg, i);
- if (!lv_info(lv->vg->cmd, lv, 0, &info, 0, 0)) {
+ if (!lv_info(lv->vg->cmd, lv, 0, NULL, 0, 0)) {
log_error("Check for existence of raid meta %s failed.",
display_lvname(lv));
goto out;
@@ -430,7 +429,7 @@ static int _raid_transient_status(struct dm_pool *mem,
for (i = 0; i < seg->area_count; ++i) {
lv = seg_lv(seg, i);
- if (!lv_info(lv->vg->cmd, lv, 0, &info, 0, 0)) {
+ if (!lv_info(lv->vg->cmd, lv, 0, NULL, 0, 0)) {
log_error("Check for existence of raid image %s failed.",
display_lvname(lv));
goto out;
More information about the lvm-devel
mailing list