]> sourceware.org Git - lvm2.git/commitdiff
Refactor and add code for (lv) 'mirror_log' get function.
authorDave Wysochanski <dwysocha@redhat.com>
Tue, 12 Oct 2010 16:12:50 +0000 (16:12 +0000)
committerDave Wysochanski <dwysocha@redhat.com>
Tue, 12 Oct 2010 16:12:50 +0000 (16:12 +0000)
Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Reviewed-By: Petr Rockai <prockai@redhat.com>
lib/metadata/lv.c
lib/metadata/lv.h
lib/report/properties.c
lib/report/report.c

index ba2e00cc72ee9928e57614463758e58df673eda7..345f958bf3e83cdc1d8528cdc16c20e29b3b47f0 100644 (file)
 #include "metadata.h"
 #include "activate.h"
 #include "toolcontext.h"
+#include "segtype.h"
+
+char *lv_mirror_log_dup(struct dm_pool *mem, const struct logical_volume *lv)
+{
+       struct lv_segment *seg;
+
+       dm_list_iterate_items(seg, &lv->segments) {
+               if (!seg_is_mirrored(seg) || !seg->log_lv)
+                       continue;
+               return dm_pool_strdup(mem, seg->log_lv->name);
+       }
+       return NULL;
+}
 
 int lv_kernel_minor(const struct logical_volume *lv)
 {
index 557f54aef7981db1bb68d845edb79f9a4167f8f4..8d069afd36ae02906ccd8b8577534d4cbf160ec9 100644 (file)
@@ -58,5 +58,6 @@ char *lv_move_pv_dup(struct dm_pool *mem, const struct logical_volume *lv);
 char *lv_convert_lv_dup(struct dm_pool *mem, const struct logical_volume *lv);
 int lv_kernel_major(const struct logical_volume *lv);
 int lv_kernel_minor(const struct logical_volume *lv);
+char *lv_mirror_log_dup(struct dm_pool *mem, const struct logical_volume *lv);
 
 #endif
index 5e420149dafce169e8c6154d699704d753e63846..eba2b59377fb14856fd8143e5f2cfb933da5dcab 100644 (file)
@@ -135,7 +135,7 @@ GET_LV_STR_PROPERTY_FN(convert_lv, lv_convert_lv_dup(lv->vg->vgmem, lv))
 #define _convert_lv_set _not_implemented_set
 GET_LV_STR_PROPERTY_FN(lv_tags, lv_tags_dup(lv))
 #define _lv_tags_set _not_implemented_set
-#define _mirror_log_get _not_implemented_get
+GET_LV_STR_PROPERTY_FN(mirror_log, lv_mirror_log_dup(lv->vg->vgmem, lv))
 #define _mirror_log_set _not_implemented_set
 #define _modules_get _not_implemented_get
 #define _modules_set _not_implemented_set
index f3e3e4175bc9678417ed0c528f15d4c3b72849c8..e6510c5cc45ab2f06658868d74e77f5c35903773 100644 (file)
@@ -297,14 +297,10 @@ static int _loglv_disp(struct dm_report *rh, struct dm_pool *mem __attribute__((
                       const void *data, void *private __attribute__((unused)))
 {
        const struct logical_volume *lv = (const struct logical_volume *) data;
-       struct lv_segment *seg;
+       const char *name;
 
-       dm_list_iterate_items(seg, &lv->segments) {
-               if (!seg_is_mirrored(seg) || !seg->log_lv)
-                       continue;
-               return dm_report_field_string(rh, field,
-                                             (const char **) &seg->log_lv->name);
-       }
+       if ((name = lv_mirror_log_dup(mem, lv)))
+               return dm_report_field_string(rh, field, &name);
 
        dm_report_field_set_value(field, "", NULL);
        return 1;
This page took 0.037326 seconds and 5 git commands to generate.