master - cleanup: cast resulting value explicitely
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=0614c63579b9ab...
Commit: 0614c63579b9ab6ebf68b957b4de3806f231a14c
Parent: 0b2be6049730e8dbab3d715633e967b4b2992f78
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Thu Nov 19 11:59:19 2015 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Thu Nov 19 11:59:19 2015 +0100
cleanup: cast resulting value explicitely
---
libdm/libdm-report.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/libdm/libdm-report.c b/libdm/libdm-report.c
index 27044c0..b5149b8 100644
--- a/libdm/libdm-report.c
+++ b/libdm/libdm-report.c
@@ -2310,7 +2310,7 @@ static const char *_reserved_name(struct dm_report *rh,
}
if (reserved->type & DM_REPORT_FIELD_RESERVED_VALUE_FUZZY_NAMES) {
- handler = (dm_report_reserved_handler) frv ? frv->value : reserved->value;
+ handler = (dm_report_reserved_handler) (frv ? frv->value : reserved->value);
c = s[len];
tmp_s = (char *) s;
tmp_s[len] = '\0';
8 years, 5 months
master - cleanup: add stack traces
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=0b2be6049730e8...
Commit: 0b2be6049730e8dbab3d715633e967b4b2992f78
Parent: e2b00b0a899376b3336e146dc3f4c077726d938a
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Wed Nov 18 09:15:45 2015 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Wed Nov 18 22:17:26 2015 +0100
cleanup: add stack traces
---
libdm/libdm-report.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libdm/libdm-report.c b/libdm/libdm-report.c
index 8ca0dc0..27044c0 100644
--- a/libdm/libdm-report.c
+++ b/libdm/libdm-report.c
@@ -949,7 +949,7 @@ static int _get_field(struct dm_report *rh, const char *field, size_t flen,
return 0;
if (!_get_canonical_field_name(field, flen, field_canon, DM_REPORT_FIELD_TYPE_ID_LEN, NULL))
- return 0;
+ return_0;
for (f = 0; _implicit_report_fields[f].report_fn; f++) {
if (_is_same_field(_implicit_report_fields[f].id, field_canon, rh->field_prefix)) {
@@ -1063,7 +1063,7 @@ static int _key_match(struct dm_report *rh, const char *key, size_t len,
}
if (!_get_canonical_field_name(key, len, key_canon, DM_REPORT_FIELD_TYPE_ID_LEN, NULL))
- return 0;
+ return_0;
for (f = 0; _implicit_report_fields[f].report_fn; f++)
if (_is_same_field(_implicit_report_fields[f].id, key_canon, rh->field_prefix))
8 years, 5 months
master - cleanup: use display_lvname in pmspare
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=e2b00b0a899376...
Commit: e2b00b0a899376b3336e146dc3f4c077726d938a
Parent: 0a2cadf6b87acd62151451cff8fd596715f00718
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Wed Nov 18 09:14:24 2015 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Wed Nov 18 22:17:26 2015 +0100
cleanup: use display_lvname in pmspare
Just switch to use display_lvname().
Also squeeze possibly failing strncpy into INTERNAL_ERROR
as lvname always should fit.
---
lib/metadata/pool_manip.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/lib/metadata/pool_manip.c b/lib/metadata/pool_manip.c
index a57d90e..fd7edd2 100644
--- a/lib/metadata/pool_manip.c
+++ b/lib/metadata/pool_manip.c
@@ -709,7 +709,7 @@ int vg_remove_pool_metadata_spare(struct volume_group *vg)
if (!(lv->status & POOL_METADATA_SPARE)) {
log_error(INTERNAL_ERROR "LV %s is not pool metadata spare.",
- lv->name);
+ display_lvname(lv));
return 0;
}
@@ -718,10 +718,10 @@ int vg_remove_pool_metadata_spare(struct volume_group *vg)
lv_set_visible(lv);
/* Cut off suffix _pmspare */
- (void) dm_strncpy(new_name, lv->name, sizeof(new_name));
- if (!(c = strchr(new_name, '_'))) {
+ if (!dm_strncpy(new_name, lv->name, sizeof(new_name)) ||
+ !(c = strchr(new_name, '_'))) {
log_error(INTERNAL_ERROR "LV %s has no suffix for pool metadata spare.",
- new_name);
+ display_lvname(lv));
return 0;
}
*c = 0;
@@ -735,8 +735,8 @@ int vg_remove_pool_metadata_spare(struct volume_group *vg)
}
log_print_unless_silent("Renaming existing pool metadata spare "
- "logical volume \"%s/%s\" to \"%s/%s\".",
- vg->name, lv->name, vg->name, new_name);
+ "logical volume \"%s\" to \"%s/%s\".",
+ display_lvname(lv), vg->name, new_name);
if (!lv_rename_update(vg->cmd, lv, new_name, 0))
return_0;
8 years, 5 months
master - libdm: report: consolidate use of string list selection structures
by Peter Rajnoha
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=0a2cadf6b87acd...
Commit: 0a2cadf6b87acd62151451cff8fd596715f00718
Parent: 7b11ef6de057e4a26e88792cf4dc966a79ac4ba0
Author: Peter Rajnoha <prajnoha(a)redhat.com>
AuthorDate: Wed Nov 18 10:54:09 2015 +0100
Committer: Peter Rajnoha <prajnoha(a)redhat.com>
CommitterDate: Wed Nov 18 10:54:09 2015 +0100
libdm: report: consolidate use of string list selection structures
---
libdm/libdm-report.c | 32 ++++++++++++++++----------------
test/shell/select-report.sh | 3 +++
2 files changed, 19 insertions(+), 16 deletions(-)
diff --git a/libdm/libdm-report.c b/libdm/libdm-report.c
index 33a3010..8ca0dc0 100644
--- a/libdm/libdm-report.c
+++ b/libdm/libdm-report.c
@@ -175,8 +175,8 @@ static struct op_def _op_log[] = {
};
struct selection_str_list {
+ struct dm_str_list str_list;
unsigned type; /* either SEL_AND or SEL_OR */
- struct dm_list list;
};
struct field_selection_value {
@@ -1646,14 +1646,14 @@ static int _cmp_field_time(struct dm_report *rh,
static int _cmp_field_string_list_strict_all(const struct str_list_sort_value *val,
const struct selection_str_list *sel)
{
- unsigned int sel_list_size = dm_list_size(&sel->list);
+ unsigned int sel_list_size = dm_list_size(&sel->str_list.list);
struct dm_str_list *sel_item;
unsigned int i = 1;
if (!val->items[0].len) {
if (sel_list_size == 1) {
/* match blank string list with selection defined as blank string only */
- sel_item = dm_list_item(dm_list_first(&sel->list), struct dm_str_list);
+ sel_item = dm_list_item(dm_list_first(&sel->str_list.list), struct dm_str_list);
return !strcmp(sel_item->str, "");
}
return 0;
@@ -1664,7 +1664,7 @@ static int _cmp_field_string_list_strict_all(const struct str_list_sort_value *v
return 0;
/* both lists are sorted so they either match 1:1 or not */
- dm_list_iterate_items(sel_item, &sel->list) {
+ dm_list_iterate_items(sel_item, &sel->str_list.list) {
if ((strlen(sel_item->str) != val->items[i].len) ||
strncmp(sel_item->str, val->value + val->items[i].pos, val->items[i].len))
return 0;
@@ -1678,7 +1678,7 @@ static int _cmp_field_string_list_strict_all(const struct str_list_sort_value *v
static int _cmp_field_string_list_subset_all(const struct str_list_sort_value *val,
const struct selection_str_list *sel)
{
- unsigned int sel_list_size = dm_list_size(&sel->list);
+ unsigned int sel_list_size = dm_list_size(&sel->str_list.list);
struct dm_str_list *sel_item;
unsigned int i, last_found = 1;
int r = 0;
@@ -1686,14 +1686,14 @@ static int _cmp_field_string_list_subset_all(const struct str_list_sort_value *v
if (!val->items[0].len) {
if (sel_list_size == 1) {
/* match blank string list with selection defined as blank string only */
- sel_item = dm_list_item(dm_list_first(&sel->list), struct dm_str_list);
+ sel_item = dm_list_item(dm_list_first(&sel->str_list.list), struct dm_str_list);
return !strcmp(sel_item->str, "");
}
return 0;
}
/* check selection is a subset of the value */
- dm_list_iterate_items(sel_item, &sel->list) {
+ dm_list_iterate_items(sel_item, &sel->str_list.list) {
r = 0;
for (i = last_found; i <= val->items[0].len; i++) {
if ((strlen(sel_item->str) == val->items[i].len) &&
@@ -1718,14 +1718,14 @@ static int _cmp_field_string_list_any(const struct str_list_sort_value *val,
/* match blank string list with selection that contains blank string */
if (!val->items[0].len) {
- dm_list_iterate_items(sel_item, &sel->list) {
+ dm_list_iterate_items(sel_item, &sel->str_list.list) {
if (!strcmp(sel_item->str, ""))
return 1;
}
return 0;
}
- dm_list_iterate_items(sel_item, &sel->list) {
+ dm_list_iterate_items(sel_item, &sel->str_list.list) {
/*
* TODO: Optimize this so we don't need to compare the whole lists' content.
* Make use of the fact that the lists are sorted!
@@ -2581,7 +2581,7 @@ static const char *_tok_value_string_list(const struct dm_report_field_type *ft,
log_error("_tok_value_string_list: memory allocation failed for selection list");
goto bad;
}
- dm_list_init(&ssl->list);
+ dm_list_init(&ssl->str_list.list);
ssl->type = 0;
*begin = s;
@@ -2592,7 +2592,7 @@ static const char *_tok_value_string_list(const struct dm_report_field_type *ft,
log_error(_str_list_item_parsing_failed, ft->id);
goto bad;
}
- if (!_add_item_to_string_list(mem, begin_item, end_item, &ssl->list))
+ if (!_add_item_to_string_list(mem, begin_item, end_item, &ssl->str_list.list))
goto_bad;
ssl->type = SEL_OR | SEL_LIST_LS;
goto out;
@@ -2649,7 +2649,7 @@ static const char *_tok_value_string_list(const struct dm_report_field_type *ft,
ssl->type = end_op_flag_hit;
}
- if (!_add_item_to_string_list(mem, begin_item, end_item, &ssl->list))
+ if (!_add_item_to_string_list(mem, begin_item, end_item, &ssl->str_list.list))
goto_bad;
s = tmp;
@@ -2670,7 +2670,7 @@ static const char *_tok_value_string_list(const struct dm_report_field_type *ft,
ssl->type |= SEL_LIST_SUBSET_LS;
/* Sort the list. */
- if (!(list_size = dm_list_size(&ssl->list))) {
+ if (!(list_size = dm_list_size(&ssl->str_list.list))) {
log_error(INTERNAL_ERROR "_tok_value_string_list: list has no items");
goto bad;
} else if (list_size == 1)
@@ -2681,12 +2681,12 @@ static const char *_tok_value_string_list(const struct dm_report_field_type *ft,
}
i = 0;
- dm_list_iterate_items(item, &ssl->list)
+ dm_list_iterate_items(item, &ssl->str_list.list)
arr[i++] = item;
qsort(arr, list_size, sizeof(item), _str_list_item_cmp);
- dm_list_init(&ssl->list);
+ dm_list_init(&ssl->str_list.list);
for (i = 0; i < list_size; i++)
- dm_list_add(&ssl->list, &arr[i]->list);
+ dm_list_add(&ssl->str_list.list, &arr[i]->list);
dm_free(arr);
out:
diff --git a/test/shell/select-report.sh b/test/shell/select-report.sh
index 20d57c7..0ce48a9 100644
--- a/test/shell/select-report.sh
+++ b/test/shell/select-report.sh
@@ -110,6 +110,9 @@ not sel pv 'tags=["pv_tag1" && "pv_tag2" || "pv_tag3"]'
sel lv 'tags=""' xyz orig snap
sel lv 'tags={}' xyz orig snap
sel lv 'tags=[]' xyz orig snap
+# check subset selection
+sel pv 'tags={"pv_tag1"}' "$dev1" "$dev6"
+sel pv 'tags={"pv_tag1" && "pv_tag2"}' "$dev1"
##########################
# NUMBER FIELD SELECTION #
8 years, 5 months
master - tests: update lvmcache-exercise
by David Teigland
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=7b11ef6de057e4...
Commit: 7b11ef6de057e4a26e88792cf4dc966a79ac4ba0
Parent: 6167f5da103fe3d3619cfee1166a66b058e5b3ba
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Tue Nov 17 12:05:22 2015 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Tue Nov 17 12:12:17 2015 -0600
tests: update lvmcache-exercise
To handle multiple VGs with the same name.
Simply using the VG name is ambiguous, and
lvmetad requires the VG uuid be used to
specify which one is meant.
---
test/shell/lvmcache-exercise.sh | 16 +++++++++++++++-
1 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/test/shell/lvmcache-exercise.sh b/test/shell/lvmcache-exercise.sh
index 2c2be52..f3bddb7 100644
--- a/test/shell/lvmcache-exercise.sh
+++ b/test/shell/lvmcache-exercise.sh
@@ -18,12 +18,20 @@ aux prepare_pvs 5
vgcreate $vg1 "$dev1"
vgcreate $vg2 "$dev3" "$dev4" "$dev5"
+UUID1=$(get vg_field $vg1 uuid)
+
aux disable_dev "$dev1"
pvscan
# dev1 is missing
fail pvs $(cat DEVICES)
+# create a new vg1 on dev2,
+# so dev1 and dev2 have different VGs with the same name
vgcreate $vg1 "$dev2"
+
+UUID2=$(get vg_field $vg1 uuid)
+
+# Once dev1 is visible again, both VGs named "vg1" are visible.
aux enable_dev "$dev1"
pvs "$dev1"
@@ -36,9 +44,15 @@ lvconvert --yes --repair $vg2/$lv1
aux enable_dev "$dev3"
# here it should fix any reappeared devices
-lvs $vg1 $vg2
+lvs
lvs -a $vg2 -o+devices 2>&1 | tee out
not grep reappeared out
+# This removes the first "vg1" using its uuid
+vgremove -ff -S vg_uuid=$UUID1
+
+# This removes the second "vg1" using its name,
+# now that there is only one VG with that name.
vgremove -ff $vg1 $vg2
+
8 years, 5 months
master - coverity: trying different model
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=6167f5da103fe3...
Commit: 6167f5da103fe3d3619cfee1166a66b058e5b3ba
Parent: 83661c8f7f954816284baf385fedfea4c4d57a88
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Nov 17 18:58:15 2015 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Nov 17 19:01:25 2015 +0100
coverity: trying different model
Model reseting of given set, but it still makes
FD_SET to think it's accessing uninitialized value.
Maybe model also FD_SET.
---
coverity/coverity_model.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/coverity/coverity_model.c b/coverity/coverity_model.c
index d41c67c..dfd6158 100644
--- a/coverity/coverity_model.c
+++ b/coverity/coverity_model.c
@@ -66,8 +66,9 @@ void *memccpy(void *dest, const void *src, int c, size_t n)
void model_FD_ZERO(void *fdset)
{
unsigned i;
- for (i = 0; i < 1024 / 8 / sizeof(int); ++i)
- ((int*)fdset)[i];
+
+ for (i = 0; i < 1024 / 8 / sizeof(long); ++i)
+ ((long*)fdset)[i] = 0;
}
/*
8 years, 5 months
master - cleanup: use embeded list
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=83661c8f7f9548...
Commit: 83661c8f7f954816284baf385fedfea4c4d57a88
Parent: 6e71d3fbde344c26f8301dbd9550a110d5bc7ac4
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Nov 17 13:38:17 2015 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Nov 17 19:01:25 2015 +0100
cleanup: use embeded list
Skip pointer and put list into selection_str_list.
---
libdm/libdm-report.c | 36 ++++++++++++++++++------------------
1 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/libdm/libdm-report.c b/libdm/libdm-report.c
index 140a8d7..33a3010 100644
--- a/libdm/libdm-report.c
+++ b/libdm/libdm-report.c
@@ -176,7 +176,7 @@ static struct op_def _op_log[] = {
struct selection_str_list {
unsigned type; /* either SEL_AND or SEL_OR */
- struct dm_list *list;
+ struct dm_list list;
};
struct field_selection_value {
@@ -1646,14 +1646,14 @@ static int _cmp_field_time(struct dm_report *rh,
static int _cmp_field_string_list_strict_all(const struct str_list_sort_value *val,
const struct selection_str_list *sel)
{
- unsigned int sel_list_size = dm_list_size(sel->list);
+ unsigned int sel_list_size = dm_list_size(&sel->list);
struct dm_str_list *sel_item;
unsigned int i = 1;
if (!val->items[0].len) {
if (sel_list_size == 1) {
/* match blank string list with selection defined as blank string only */
- sel_item = dm_list_item(dm_list_first(sel->list), struct dm_str_list);
+ sel_item = dm_list_item(dm_list_first(&sel->list), struct dm_str_list);
return !strcmp(sel_item->str, "");
}
return 0;
@@ -1664,7 +1664,7 @@ static int _cmp_field_string_list_strict_all(const struct str_list_sort_value *v
return 0;
/* both lists are sorted so they either match 1:1 or not */
- dm_list_iterate_items(sel_item, sel->list) {
+ dm_list_iterate_items(sel_item, &sel->list) {
if ((strlen(sel_item->str) != val->items[i].len) ||
strncmp(sel_item->str, val->value + val->items[i].pos, val->items[i].len))
return 0;
@@ -1678,7 +1678,7 @@ static int _cmp_field_string_list_strict_all(const struct str_list_sort_value *v
static int _cmp_field_string_list_subset_all(const struct str_list_sort_value *val,
const struct selection_str_list *sel)
{
- unsigned int sel_list_size = dm_list_size(sel->list);
+ unsigned int sel_list_size = dm_list_size(&sel->list);
struct dm_str_list *sel_item;
unsigned int i, last_found = 1;
int r = 0;
@@ -1686,14 +1686,14 @@ static int _cmp_field_string_list_subset_all(const struct str_list_sort_value *v
if (!val->items[0].len) {
if (sel_list_size == 1) {
/* match blank string list with selection defined as blank string only */
- sel_item = dm_list_item(dm_list_first(sel->list), struct dm_str_list);
+ sel_item = dm_list_item(dm_list_first(&sel->list), struct dm_str_list);
return !strcmp(sel_item->str, "");
}
return 0;
}
/* check selection is a subset of the value */
- dm_list_iterate_items(sel_item, sel->list) {
+ dm_list_iterate_items(sel_item, &sel->list) {
r = 0;
for (i = last_found; i <= val->items[0].len; i++) {
if ((strlen(sel_item->str) == val->items[i].len) &&
@@ -1718,14 +1718,14 @@ static int _cmp_field_string_list_any(const struct str_list_sort_value *val,
/* match blank string list with selection that contains blank string */
if (!val->items[0].len) {
- dm_list_iterate_items(sel_item, sel->list) {
+ dm_list_iterate_items(sel_item, &sel->list) {
if (!strcmp(sel_item->str, ""))
return 1;
}
return 0;
}
- dm_list_iterate_items(sel_item, sel->list) {
+ dm_list_iterate_items(sel_item, &sel->list) {
/*
* TODO: Optimize this so we don't need to compare the whole lists' content.
* Make use of the fact that the lists are sorted!
@@ -2577,12 +2577,11 @@ static const char *_tok_value_string_list(const struct dm_report_field_type *ft,
int list_end = 0;
char c;
- if (!(ssl = dm_pool_alloc(mem, sizeof(*ssl))) ||
- !(ssl->list = dm_pool_alloc(mem, sizeof(*ssl->list)))) {
+ if (!(ssl = dm_pool_alloc(mem, sizeof(*ssl)))) {
log_error("_tok_value_string_list: memory allocation failed for selection list");
goto bad;
}
- dm_list_init(ssl->list);
+ dm_list_init(&ssl->list);
ssl->type = 0;
*begin = s;
@@ -2593,7 +2592,7 @@ static const char *_tok_value_string_list(const struct dm_report_field_type *ft,
log_error(_str_list_item_parsing_failed, ft->id);
goto bad;
}
- if (!_add_item_to_string_list(mem, begin_item, end_item, ssl->list))
+ if (!_add_item_to_string_list(mem, begin_item, end_item, &ssl->list))
goto_bad;
ssl->type = SEL_OR | SEL_LIST_LS;
goto out;
@@ -2650,7 +2649,7 @@ static const char *_tok_value_string_list(const struct dm_report_field_type *ft,
ssl->type = end_op_flag_hit;
}
- if (!_add_item_to_string_list(mem, begin_item, end_item, ssl->list))
+ if (!_add_item_to_string_list(mem, begin_item, end_item, &ssl->list))
goto_bad;
s = tmp;
@@ -2671,7 +2670,7 @@ static const char *_tok_value_string_list(const struct dm_report_field_type *ft,
ssl->type |= SEL_LIST_SUBSET_LS;
/* Sort the list. */
- if (!(list_size = dm_list_size(ssl->list))) {
+ if (!(list_size = dm_list_size(&ssl->list))) {
log_error(INTERNAL_ERROR "_tok_value_string_list: list has no items");
goto bad;
} else if (list_size == 1)
@@ -2682,18 +2681,19 @@ static const char *_tok_value_string_list(const struct dm_report_field_type *ft,
}
i = 0;
- dm_list_iterate_items(item, ssl->list)
+ dm_list_iterate_items(item, &ssl->list)
arr[i++] = item;
qsort(arr, list_size, sizeof(item), _str_list_item_cmp);
- dm_list_init(ssl->list);
+ dm_list_init(&ssl->list);
for (i = 0; i < list_size; i++)
- dm_list_add(ssl->list, &arr[i]->list);
+ dm_list_add(&ssl->list, &arr[i]->list);
dm_free(arr);
out:
*end = s;
if (sel_str_list)
*sel_str_list = ssl;
+
return s;
bad:
*end = s;
8 years, 5 months
master - cleanup: more readable code
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=6e71d3fbde344c...
Commit: 6e71d3fbde344c26f8301dbd9550a110d5bc7ac4
Parent: d8049dd17a50b704edea69c968305aee732cb256
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Nov 17 13:15:39 2015 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Nov 17 19:01:25 2015 +0100
cleanup: more readable code
Simplify if() expression.
Rename 'this' to 'vg'..
---
lib/cache/lvmetad.c | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/lib/cache/lvmetad.c b/lib/cache/lvmetad.c
index d300d39..dced80a 100644
--- a/lib/cache/lvmetad.c
+++ b/lib/cache/lvmetad.c
@@ -1187,16 +1187,17 @@ struct _lvmetad_pvscan_baton {
static int _lvmetad_pvscan_single(struct metadata_area *mda, void *baton)
{
struct _lvmetad_pvscan_baton *b = baton;
- struct volume_group *this;
+ struct volume_group *vg;
- if (!(this = mda_is_ignored(mda) ? NULL : mda->ops->vg_read(b->fid, "", mda, NULL, NULL, 1)))
+ if (mda_is_ignored(mda) ||
+ !(vg = mda->ops->vg_read(b->fid, "", mda, NULL, NULL, 1)))
return 1;
/* FIXME Also ensure contents match etc. */
- if (!b->vg || this->seqno > b->vg->seqno)
- b->vg = this;
+ if (!b->vg || vg->seqno > b->vg->seqno)
+ b->vg = vg;
else if (b->vg)
- release_vg(this);
+ release_vg(vg);
return 1;
}
8 years, 5 months
master - cleanup: add some test for NULL
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=d8049dd17a50b7...
Commit: d8049dd17a50b704edea69c968305aee732cb256
Parent: 011dd82050fb3225d7ea3c24be5c8dad026117d3
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Nov 17 13:21:22 2015 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Nov 17 19:01:25 2015 +0100
cleanup: add some test for NULL
Coverity here is a bit 'blind' here and cannot resolve which
code paths are actually able to hit this code path.
(It's using 'statistic' to resolve all possible paths,
and it's not scanning 'individual' code paths.)
This just cleans warns and add 'cheap' tests.
---
lib/metadata/metadata.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/metadata/metadata.c b/lib/metadata/metadata.c
index fa166e4..77bbeab 100644
--- a/lib/metadata/metadata.c
+++ b/lib/metadata/metadata.c
@@ -2254,7 +2254,7 @@ static int _lv_postorder_cleanup(struct logical_volume *lv, void *data)
static int _lv_postorder_level(struct logical_volume *lv, void *data)
{
struct _lv_postorder_baton *baton = data;
- return _lv_postorder_visit(lv, baton->fn, baton->data);
+ return (data) ? _lv_postorder_visit(lv, baton->fn, baton->data) : 0;
};
static int _lv_postorder_visit(struct logical_volume *lv,
@@ -2346,7 +2346,7 @@ struct _lv_mark_if_partial_baton {
static int _lv_mark_if_partial_collect(struct logical_volume *lv, void *data)
{
struct _lv_mark_if_partial_baton *baton = data;
- if (lv->status & PARTIAL_LV)
+ if (baton && lv->status & PARTIAL_LV)
baton->partial = 1;
return 1;
8 years, 5 months
master - cleanup: do not call vg_read with NULL mda
by Zdenek Kabelac
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=011dd82050fb32...
Commit: 011dd82050fb3225d7ea3c24be5c8dad026117d3
Parent: 121341e52c8cb3bf14571cad0c3d90c1ec9d717d
Author: Zdenek Kabelac <zkabelac(a)redhat.com>
AuthorDate: Tue Nov 17 13:23:28 2015 +0100
Committer: Zdenek Kabelac <zkabelac(a)redhat.com>
CommitterDate: Tue Nov 17 19:01:25 2015 +0100
cleanup: do not call vg_read with NULL mda
Use 'mda' instead of NULL to quite Coverity warn.
However this code seems to be actually not even possible to hit.
With proper analysis it may possibly be dropped from code to
simplify logic.
---
lib/cache/lvmetad.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/lib/cache/lvmetad.c b/lib/cache/lvmetad.c
index 8b5bcfb..d300d39 100644
--- a/lib/cache/lvmetad.c
+++ b/lib/cache/lvmetad.c
@@ -1370,9 +1370,10 @@ int lvmetad_pvscan_single(struct cmd_context *cmd, struct device *dev,
* can scan further devices.
*/
if (!baton.vg && !(baton.fid->fmt->features & FMT_MDAS)) {
+ /* This code seems to be unreachable */
if ((mda = (struct metadata_area *)dm_list_first(&baton.fid->metadata_areas_in_use)))
baton.vg = mda->ops->vg_read(baton.fid, lvmcache_vgname_from_info(info),
- NULL, NULL, NULL, 1);
+ mda, NULL, NULL, 1);
}
if (!baton.vg)
8 years, 5 months