[lvm-devel] LVM2 lib/metadata/lv.c lib/metadata/lv.h lib/r ...
Zdenek Kabelac
zkabelac at redhat.com
Tue Apr 12 12:40:07 UTC 2011
Dne 12.4.2011 14:24, mornfall at sourceware.org napsal(a):
> CVSROOT: /cvs/lvm2
> Module name: LVM2
> Changes by: mornfall at sourceware.org 2011-04-12 12:24:30
>
> Modified files:
> lib/metadata : lv.c lv.h
> lib/report : properties.c report.c
> test/api : test.c
>
> Log message:
> This patchset refactors some reporting code and completes the remaining
> lvseg properties for lvm2app, 'devices' and 'seg_pe_ranges'.
>
> Signed-off-by: Dave Wysochanski <dwysocha at redhat.com>
> Reviewed-by: Petr Rockai <prockai at redhat.com>
>
> Patches:
> http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/lv.c.diff?cvsroot=lvm2&r1=1.23&r2=1.24
> http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/lv.h.diff?cvsroot=lvm2&r1=1.19&r2=1.20
> http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/report/properties.c.diff?cvsroot=lvm2&r1=1.30&r2=1.31
> http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/report/report.c.diff?cvsroot=lvm2&r1=1.143&r2=1.144
> http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/api/test.c.diff?cvsroot=lvm2&r1=1.36&r2=1.37
>
> --- LVM2/lib/metadata/lv.c 2011/03/29 12:51:57 1.23
> +++ LVM2/lib/metadata/lv.c 2011/04/12 12:24:29 1.24
> @@ -21,6 +21,88 @@
> #include "segtype.h"
> #include "str_list.h"
>
> +static char *_format_pvsegs(struct dm_pool *mem, const struct lv_segment *seg,
> + int range_format)
> +{
> + unsigned int s;
> + const char *name = NULL;
> + uint32_t extent = 0;
> + char extent_str[32];
> +
> + if (!dm_pool_begin_object(mem, 256)) {
> + log_error("dm_pool_begin_object failed");
> + return NULL;
> + }
> +
> + for (s = 0; s < seg->area_count; s++) {
> + switch (seg_type(seg, s)) {
> + case AREA_LV:
> + name = seg_lv(seg, s)->name;
> + extent = seg_le(seg, s);
> + break;
> + case AREA_PV:
> + name = dev_name(seg_dev(seg, s));
> + extent = seg_pe(seg, s);
> + break;
> + case AREA_UNASSIGNED:
> + name = "unassigned";
> + extent = 0;
> + }
> +
> + if (!dm_pool_grow_object(mem, name, strlen(name))) {
> + log_error("dm_pool_grow_object failed");
> + return NULL;
> + }
> +
unified error path for failing allocation could be: { goto err; }
err:
log_error("error");
dm_pool_abandon_object(mem);
return NULL;
Zdenek
More information about the lvm-devel
mailing list