]> sourceware.org Git - lvm2.git/commitdiff
lv: add common lv_metadata_lv fn for use in report and dup, use brackets for invisibl...
authorPeter Rajnoha <prajnoha@redhat.com>
Tue, 12 Jan 2016 10:23:56 +0000 (11:23 +0100)
committerPeter Rajnoha <prajnoha@redhat.com>
Wed, 13 Jan 2016 10:19:58 +0000 (11:19 +0100)
The common lv_metadata_lv fn avoids code duplication and also
the reporting part now uses _lvname_disp and _uuid_disp to display
name and uuid respectively, including brackets for the name if the
dev is invisible.

lib/metadata/lv.c
lib/metadata/lv.h
lib/report/report.c

index e8b5adaf3c32a64c22b0407cf9fe0c54b1fd6c3b..f30839542a032fd156df48d9927da4437b46b011 100644 (file)
@@ -431,21 +431,27 @@ char *lv_data_lv_uuid_dup(struct dm_pool *mem, const struct logical_volume *lv)
        return _do_lv_data_lv_dup(mem, lv, 1);
 }
 
+struct logical_volume *lv_metadata_lv(const struct logical_volume *lv)
+{
+       struct lv_segment *seg = (lv_is_thin_pool(lv) || lv_is_cache_pool(lv)) ?
+                                 first_seg(lv) : NULL;
+       struct logical_volume *metadata_lv = seg ? seg->metadata_lv : NULL;
+
+       return metadata_lv;
+}
 
 static char *_do_lv_metadata_lv_dup(struct dm_pool *mem, const struct logical_volume *lv,
                                    int uuid)
 {
-       struct lv_segment *seg = (lv_is_thin_pool(lv) || lv_is_cache_pool(lv)) ?
-               first_seg(lv) : NULL;
+       struct logical_volume *metadata_lv = lv_metadata_lv(lv);
 
-       if (seg) {
-               if (uuid)
-                       return lv_uuid_dup(mem, seg->metadata_lv);
-               else
-                       return lv_name_dup(mem, seg->metadata_lv);
-       }
+       if (!metadata_lv)
+               return NULL;
 
-       return NULL;
+       if (uuid)
+               return lv_uuid_dup(mem, metadata_lv);
+       else
+               return lv_name_dup(mem, metadata_lv);
 }
 
 char *lv_metadata_lv_dup(struct dm_pool *mem, const struct logical_volume *lv)
index 44f7fda50037beda6ce4c5f7896970a38cd7f7f8..d1c95ed3acbc276659322b12e0b8b6d35fd1114d 100644 (file)
@@ -90,6 +90,11 @@ struct logical_volume *lv_convert_lv(const struct logical_volume *lv);
 struct logical_volume *lv_origin_lv(const struct logical_volume *lv);
 struct logical_volume *lv_mirror_log_lv(const struct logical_volume *lv);
 struct logical_volume *lv_data_lv(const struct logical_volume *lv);
+struct logical_volume *lv_convert(const struct logical_volume *lv);
+struct logical_volume *lv_origin(const struct logical_volume *lv);
+struct logical_volume *lv_mirror_log(const struct logical_volume *lv);
+struct logical_volume *lv_data(const struct logical_volume *lv);
+struct logical_volume *lv_metadata_lv(const struct logical_volume *lv);
 char *lv_parent_dup(struct dm_pool *mem, const struct logical_volume *lv);
 char *lv_origin_dup(struct dm_pool *mem, const struct logical_volume *lv);
 char *lv_origin_uuid_dup(struct dm_pool *mem, const struct logical_volume *lv);
index 467cf85a349f8d12b8e48842c741947fe0829f23..a170bfa3b7245ce55ed93eaeae3525e4b154fb9d 100644 (file)
@@ -1701,16 +1701,15 @@ static int _do_metadatalv_disp(struct dm_report *rh, struct dm_pool *mem __attri
                               int uuid)
 {
        const struct logical_volume *lv = (const struct logical_volume *) data;
-       const struct lv_segment *seg = (lv_is_pool(lv)) ? first_seg(lv) : NULL;
+       struct logical_volume *metadata_lv = lv_metadata_lv(lv);
 
-       if (seg) {
-               if (uuid)
-                       return _uuid_disp(rh, mem, field, &seg->metadata_lv->lvid.id[1], private);
-               else
-                       return _lvname_disp(rh, mem, field, seg->metadata_lv, private);
-       }
+       if (!metadata_lv)
+               return _field_set_value(field, "", NULL);               
 
-       return _field_set_value(field, "", NULL);
+       if (uuid)
+               return _uuid_disp(rh, mem, field, &metadata_lv->lvid.id[1], private);
+       else
+               return _lvname_disp(rh, mem, field, metadata_lv, private);
 }
 
 static int _metadatalv_disp(struct dm_report *rh, struct dm_pool *mem __attribute__((unused)),
This page took 0.041128 seconds and 5 git commands to generate.