summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2015-11-11 22:06:27 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2015-11-13 11:17:06 +0100
commit1f2a42c7b79ff99b29a999f0b636f340e5355456 (patch)
tree19738aa5ab87759c2b38095b10a89daa13c097a5
parent70af08122e26a3b7397e3f35b0e80a65543e157e (diff)
downloadlvm2-1f2a42c7b79ff99b29a999f0b636f340e5355456.tar.gz
cleanup: check LVs in one statement
Use a single statement to check all LVs we want to deref via get_only_segment_using_this_lv().
-rw-r--r--lib/metadata/lv.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/metadata/lv.c b/lib/metadata/lv.c
index 3126086d6..0310e70ad 100644
--- a/lib/metadata/lv.c
+++ b/lib/metadata/lv.c
@@ -289,17 +289,19 @@ char *lv_fullname_dup(struct dm_pool *mem, const struct logical_volume *lv)
struct logical_volume *lv_parent(const struct logical_volume *lv)
{
struct logical_volume *parent_lv = NULL;
+ struct lv_segment *seg;
if (lv_is_visible(lv))
;
- else if (lv_is_mirror_image(lv) || lv_is_mirror_log(lv))
- parent_lv = get_only_segment_using_this_lv(lv)->lv;
- else if (lv_is_raid_image(lv) || lv_is_raid_metadata(lv))
- parent_lv = get_only_segment_using_this_lv(lv)->lv;
- else if (lv_is_cache_pool_data(lv) || lv_is_cache_pool_metadata(lv))
- parent_lv = get_only_segment_using_this_lv(lv)->lv;
- else if (lv_is_thin_pool_data(lv) || lv_is_thin_pool_metadata(lv))
- parent_lv = get_only_segment_using_this_lv(lv)->lv;
+ else if ((lv_is_mirror_image(lv) || lv_is_mirror_log(lv)) ||
+ (lv_is_raid_image(lv) || lv_is_raid_metadata(lv)) ||
+ (lv_is_cache_pool_data(lv) || lv_is_cache_pool_metadata(lv)) ||
+ (lv_is_thin_pool_data(lv) || lv_is_thin_pool_metadata(lv))) {
+ if (!(seg = get_only_segment_using_this_lv(lv)))
+ stack;
+ else
+ parent_lv = seg->lv;
+ }
return parent_lv;
}