All of lore.kernel.org
 help / color / mirror / Atom feed
* LVM2 ./WHATS_NEW lib/report/report.c
@ 2008-12-15 13:30 wysochanski
  0 siblings, 0 replies; 9+ messages in thread
From: wysochanski @ 2008-12-15 13:30 UTC (permalink / raw)
  To: lvm-devel

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	wysochanski at sourceware.org	2008-12-15 13:30:46

Modified files:
	.              : WHATS_NEW 
	lib/report     : report.c 

Log message:
	Fix segfault when invalid field given in reporting commands.
	
	Problem is dm_report_init() may return NULL and subsequent call to
	dm_report_set_output_field_name_prefix() doesn't handle NULL value.
	
	Example:
	pvs --nameprefixes --rows --unquoted --noheadings -opv_name,fred
	Logical Volume Fields
	---------------------
	lv_uuid              - Unique identifier
	lv_name              - Name.  LVs created for internal use are enclosed in brackets.
	...
	
	Physical Volume Segment Fields
	------------------------------
	pvseg_start          - Physical Extent number of start of segment.
	pvseg_size           - Number of extents in segment.
	
	Unrecognised field: fred
	Segmentation fault

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1008&r2=1.1009
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/report/report.c.diff?cvsroot=lvm2&r1=1.90&r2=1.91

--- LVM2/WHATS_NEW	2008/12/11 13:45:28	1.1008
+++ LVM2/WHATS_NEW	2008/12/15 13:30:45	1.1009
@@ -1,5 +1,6 @@
 Version 2.02.44 - 
 ====================================
+  Fix segfault when invalid field given in reporting commands.
   Refactor init_lvm() for lvmcmdline and clvmd.
   Add liblvm interactive test infrastructure to build.
   Use better random seed value in temp file creation.
--- LVM2/lib/report/report.c	2008/12/04 15:54:27	1.90
+++ LVM2/lib/report/report.c	2008/12/15 13:30:46	1.91
@@ -1108,7 +1108,7 @@
 	rh = dm_report_init(report_type, _report_types, _fields, format,
 			    separator, report_flags, keys, cmd);
 
-	if (field_prefixes)
+	if (rh && field_prefixes)
 		dm_report_set_output_field_name_prefix(rh, "lvm2_");
 
 	return rh;



^ permalink raw reply	[flat|nested] 9+ messages in thread

* LVM2 ./WHATS_NEW lib/report/report.c
@ 2010-05-20 22:24 agk
  0 siblings, 0 replies; 9+ messages in thread
From: agk @ 2010-05-20 22:24 UTC (permalink / raw)
  To: lvm-devel

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	agk at sourceware.org	2010-05-20 22:24:35

Modified files:
	.              : WHATS_NEW 
	lib/report     : report.c 

Log message:
	If unable to obtain snapshot percentage leave value blank on reports.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1571&r2=1.1572
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/report/report.c.diff?cvsroot=lvm2&r1=1.115&r2=1.116

--- LVM2/WHATS_NEW	2010/05/20 14:45:14	1.1571
+++ LVM2/WHATS_NEW	2010/05/20 22:24:33	1.1572
@@ -1,5 +1,6 @@
 Version 2.02.66 - 
 ===============================
+  If unable to obtain snapshot percentage leave value blank on reports.
   Add install_system_dirs and install_initscripts makefile targets.
   Add configure options for system and locking directories.
   Generate example.conf so default lvm.conf contents can be configured.
--- LVM2/lib/report/report.c	2010/02/15 20:27:33	1.115
+++ LVM2/lib/report/report.c	2010/05/20 22:24:35	1.116
@@ -1019,7 +1019,7 @@
 	}
 
 	if ((!lv_is_cow(lv) && !lv_is_merging_origin(lv)) ||
-	    (lv_info(lv->vg->cmd, lv, &info, 0, 0) && !info.exists)) {
+	    !lv_info(lv->vg->cmd, lv, &info, 0, 0) || !info.exists) {
 		*sortval = UINT64_C(0);
 		dm_report_field_set_value(field, "", sortval);
 		return 1;



^ permalink raw reply	[flat|nested] 9+ messages in thread

* LVM2 ./WHATS_NEW lib/report/report.c
@ 2010-01-07 14:37 zkabelac
  0 siblings, 0 replies; 9+ messages in thread
From: zkabelac @ 2010-01-07 14:37 UTC (permalink / raw)
  To: lvm-devel

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	zkabelac at sourceware.org	2010-01-07 14:37:12

Modified files:
	.              : WHATS_NEW 
	lib/report     : report.c 

Log message:
	Use offsetof() macro and avoid defining dummy static union for FIELD() macro.
	Makes it compilable by clang compiler.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1367&r2=1.1368
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/report/report.c.diff?cvsroot=lvm2&r1=1.106&r2=1.107

--- LVM2/WHATS_NEW	2010/01/06 13:27:06	1.1367
+++ LVM2/WHATS_NEW	2010/01/07 14:37:11	1.1368
@@ -1,5 +1,6 @@
 Version 2.02.57 -
 ====================================
+  Use offsetof() macro for FIELD() macro in lib/report/report.c.
   Rename mirror_device_fault_policy to mirror_image_fault policy.
   Remove empty PV devices if lvconvert --repair is using defined policies.
   Use fixed buffer to prevent stack overflow in persistent filter dump.
--- LVM2/lib/report/report.c	2009/10/31 17:26:14	1.106
+++ LVM2/lib/report/report.c	2010/01/07 14:37:12	1.107
@@ -24,6 +24,8 @@
 #include "str_list.h"
 #include "lvmcache.h"
 
+#include <stddef.h> /* offsetof() */
+
 struct lvm_report_object {
 	struct volume_group *vg;
 	struct logical_volume *lv;
@@ -32,17 +34,6 @@
 	struct pv_segment *pvseg;
 };
 
-/*
- * For macro use
- */
-static union {
-	struct physical_volume _pv;
-	struct logical_volume _lv;
-	struct volume_group _vg;
-	struct lv_segment _seg;
-	struct pv_segment _pvseg;
-} _dummy;
-
 static char _alloc_policy_char(alloc_policy_t alloc)
 {
 	switch (alloc) {
@@ -1156,9 +1147,17 @@
 
 #define STR DM_REPORT_FIELD_TYPE_STRING
 #define NUM DM_REPORT_FIELD_TYPE_NUMBER
-#define FIELD(type, strct, sorttype, head, field, width, func, id, desc) {type, sorttype, (off_t)((uintptr_t)&_dummy._ ## strct.field - (uintptr_t)&_dummy._ ## strct), width, id, head, &_ ## func ## _disp, desc},
+#define FIELD(type, strct, sorttype, head, field, width, func, id, desc) \
+	{type, sorttype, offsetof(type_ ## strct, field), width, \
+	 id, head, &_ ## func ## _disp, desc},
+
+typedef struct physical_volume type_pv;
+typedef struct logical_volume type_lv;
+typedef struct volume_group type_vg;
+typedef struct lv_segment type_seg;
+typedef struct pv_segment type_pvseg;
 
-static struct dm_report_field_type _fields[] = {
+static const struct dm_report_field_type _fields[] = {
 #include "columns.h"
 {0, 0, 0, 0, "", "", NULL, NULL},
 };



^ permalink raw reply	[flat|nested] 9+ messages in thread

* LVM2 ./WHATS_NEW lib/report/report.c
  2009-02-06 12:41 mbroz
@ 2009-02-16 20:25 ` Alasdair G Kergon
  0 siblings, 0 replies; 9+ messages in thread
From: Alasdair G Kergon @ 2009-02-16 20:25 UTC (permalink / raw)
  To: lvm-devel

On Fri, Feb 06, 2009 at 12:41:52PM -0000, mbroz at sourceware.org wrote:
> 	Fix pvs segfault when pv mda attributes requested for not available PV.
 
Ack.

> -	info = info_from_pvid(pvid, 0);

Have you reviewed all instances of this throughout the tree, now that it is
acceptable for disks to be missing?

Alasdair



^ permalink raw reply	[flat|nested] 9+ messages in thread

* LVM2 ./WHATS_NEW lib/report/report.c
@ 2009-02-06 12:41 mbroz
  2009-02-16 20:25 ` Alasdair G Kergon
  0 siblings, 1 reply; 9+ messages in thread
From: mbroz @ 2009-02-06 12:41 UTC (permalink / raw)
  To: lvm-devel

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	mbroz at sourceware.org	2009-02-06 12:41:52

Modified files:
	.              : WHATS_NEW 
	lib/report     : report.c 

Log message:
	Fix pvs segfault when pv mda attributes requested for not available PV.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1035&r2=1.1036
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/report/report.c.diff?cvsroot=lvm2&r1=1.94&r2=1.95

--- LVM2/WHATS_NEW	2009/02/04 12:47:05	1.1035
+++ LVM2/WHATS_NEW	2009/02/06 12:41:51	1.1036
@@ -1,5 +1,6 @@
 Version 2.02.45 - 
 ===================================
+  Fix pvs segfault when pv mda attributes requested for not available PV.
   Add support for ext4 resize in fsadm
   Move locking_type reading inside init_locking().
   Rename get_vgs() to get_vgnames() and clarify related error messages.
--- LVM2/lib/report/report.c	2009/01/10 17:09:40	1.94
+++ LVM2/lib/report/report.c	2009/02/06 12:41:51	1.95
@@ -868,15 +868,14 @@
 	const char *pvid = (const char *)(&((struct id *) data)->uuid);
 	struct metadata_area *mda;
 
-	info = info_from_pvid(pvid, 0);
-
-	dm_list_iterate_items(mda, &info->mdas) {
-		if (!mda->ops->mda_free_sectors)
-			continue;
-		mda_free = mda->ops->mda_free_sectors(mda);
-		if (mda_free < freespace)
-			freespace = mda_free;
-	}
+	if ((info = info_from_pvid(pvid, 0)))
+		dm_list_iterate_items(mda, &info->mdas) {
+			if (!mda->ops->mda_free_sectors)
+				continue;
+			mda_free = mda->ops->mda_free_sectors(mda);
+			if (mda_free < freespace)
+				freespace = mda_free;
+		}
 
 	if (freespace == UINT64_MAX)
 		freespace = UINT64_C(0);
@@ -908,13 +907,12 @@
 			   const void *data, void *private)
 {
 	struct lvmcache_info *info;
-	uint64_t min_mda_size;
+	uint64_t min_mda_size = 0;
 	const char *pvid = (const char *)(&((struct id *) data)->uuid);
 
-	info = info_from_pvid(pvid, 0);
-
 	/* PVs could have 2 mdas of different sizes (rounding effect) */
-	min_mda_size = _find_min_mda_size(&info->mdas);
+	if ((info = info_from_pvid(pvid, 0)))
+		min_mda_size = _find_min_mda_size(&info->mdas);
 
 	return _size64_disp(rh, mem, field, &min_mda_size, private);
 }



^ permalink raw reply	[flat|nested] 9+ messages in thread

* LVM2 ./WHATS_NEW lib/report/report.c
@ 2009-01-10 17:09 agk
  0 siblings, 0 replies; 9+ messages in thread
From: agk @ 2009-01-10 17:09 UTC (permalink / raw)
  To: lvm-devel

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	agk at sourceware.org	2009-01-10 17:09:40

Modified files:
	.              : WHATS_NEW 
	lib/report     : report.c 

Log message:
	More fields can cause segfaults with orphans.
	Fix these by populating the dummy VG struct more completely.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1019&r2=1.1020
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/report/report.c.diff?cvsroot=lvm2&r1=1.93&r2=1.94

--- LVM2/WHATS_NEW	2009/01/10 15:04:28	1.1019
+++ LVM2/WHATS_NEW	2009/01/10 17:09:40	1.1020
@@ -1,6 +1,6 @@
 Version 2.02.44 - 
 ====================================
-  Fix pvs segfault when run with orphan PV and vg_mda_size or vg_mda_free.
+  Fix pvs segfault when run with orphan PV and some VG fields.
   Display a 'dev_size' of zero for missing devices in reports.
   Add pv_mda_size to pvs and vg_mda_size to vgs.
   Fix lvmdump /sys listing to include virtual devices directory.
--- LVM2/lib/report/report.c	2009/01/10 15:04:29	1.93
+++ LVM2/lib/report/report.c	2009/01/10 17:09:40	1.94
@@ -926,13 +926,7 @@
 	const struct volume_group *vg = (const struct volume_group *) data;
 	uint64_t min_mda_size;
 
-	/*
-	 * An orphan PV will have vg->fid == NULL
-	 */
-	if (vg->fid == NULL)
-		min_mda_size = UINT64_C(0);
-	else
-		min_mda_size = _find_min_mda_size(&vg->fid->metadata_areas);
+	min_mda_size = _find_min_mda_size(&vg->fid->metadata_areas);
 
 	return _size64_disp(rh, mem, field, &min_mda_size, private);
 }
@@ -945,12 +939,6 @@
 	uint64_t freespace = UINT64_MAX, mda_free;
 	struct metadata_area *mda;
 
-	/*
-	 * An orphan PV will have vg->fid == NULL
-	 */
-	if (vg->fid == NULL)
-		goto calc_done;
-
 	dm_list_iterate_items(mda, &vg->fid->metadata_areas) {
 		if (!mda->ops->mda_free_sectors)
 			continue;
@@ -958,7 +946,7 @@
 		if (mda_free < freespace)
 			freespace = mda_free;
 	}
-calc_done:
+
 	if (freespace == UINT64_MAX)
 		freespace = UINT64_C(0);
 
@@ -1081,8 +1069,17 @@
 /* Report object types */
 
 /* necessary for displaying something for PVs not belonging to VG */
+static struct format_instance _dummy_fid = {
+	.metadata_areas = { &(_dummy_fid.metadata_areas), &(_dummy_fid.metadata_areas) },
+};
+
 static struct volume_group _dummy_vg = {
+	.fid = &_dummy_fid,
 	.name = (char *) "",
+	.system_id = (char *) "",
+	.pvs = { &(_dummy_vg.pvs), &(_dummy_vg.pvs) },
+	.lvs = { &(_dummy_vg.lvs), &(_dummy_vg.lvs) },
+	.tags = { &(_dummy_vg.tags), &(_dummy_vg.tags) },
 };
 
 static void *_obj_get_vg(void *obj)
@@ -1182,6 +1179,10 @@
 {
 	struct lvm_report_object obj;
 
+	/* The two format fields might as well match. */
+	if (!vg && pv)
+		_dummy_fid.fmt = pv->fmt;
+
 	obj.vg = vg;
 	obj.lv = lv;
 	obj.pv = pv;



^ permalink raw reply	[flat|nested] 9+ messages in thread

* LVM2 ./WHATS_NEW lib/report/report.c
@ 2009-01-10 15:04 wysochanski
  0 siblings, 0 replies; 9+ messages in thread
From: wysochanski @ 2009-01-10 15:04 UTC (permalink / raw)
  To: lvm-devel

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	wysochanski at sourceware.org	2009-01-10 15:04:29

Modified files:
	.              : WHATS_NEW 
	lib/report     : report.c 

Log message:
	Fix pvs segfault when run with orphan PV and vg_mda_size or vg_mda_free fields
	
	We display '0' for these fields now in this case.  Ideally these values are
	undefined for an orphan PV but today there is no way to specify undefined
	with display functions such as _size64_disp().

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.1018&r2=1.1019
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/report/report.c.diff?cvsroot=lvm2&r1=1.92&r2=1.93

--- LVM2/WHATS_NEW	2009/01/10 02:43:52	1.1018
+++ LVM2/WHATS_NEW	2009/01/10 15:04:28	1.1019
@@ -1,5 +1,6 @@
 Version 2.02.44 - 
 ====================================
+  Fix pvs segfault when run with orphan PV and vg_mda_size or vg_mda_free.
   Display a 'dev_size' of zero for missing devices in reports.
   Add pv_mda_size to pvs and vg_mda_size to vgs.
   Fix lvmdump /sys listing to include virtual devices directory.
--- LVM2/lib/report/report.c	2009/01/09 22:44:34	1.92
+++ LVM2/lib/report/report.c	2009/01/10 15:04:29	1.93
@@ -926,7 +926,13 @@
 	const struct volume_group *vg = (const struct volume_group *) data;
 	uint64_t min_mda_size;
 
-	min_mda_size = _find_min_mda_size(&vg->fid->metadata_areas);
+	/*
+	 * An orphan PV will have vg->fid == NULL
+	 */
+	if (vg->fid == NULL)
+		min_mda_size = UINT64_C(0);
+	else
+		min_mda_size = _find_min_mda_size(&vg->fid->metadata_areas);
 
 	return _size64_disp(rh, mem, field, &min_mda_size, private);
 }
@@ -939,6 +945,12 @@
 	uint64_t freespace = UINT64_MAX, mda_free;
 	struct metadata_area *mda;
 
+	/*
+	 * An orphan PV will have vg->fid == NULL
+	 */
+	if (vg->fid == NULL)
+		goto calc_done;
+
 	dm_list_iterate_items(mda, &vg->fid->metadata_areas) {
 		if (!mda->ops->mda_free_sectors)
 			continue;
@@ -946,7 +958,7 @@
 		if (mda_free < freespace)
 			freespace = mda_free;
 	}
-
+calc_done:
 	if (freespace == UINT64_MAX)
 		freespace = UINT64_C(0);
 



^ permalink raw reply	[flat|nested] 9+ messages in thread

* LVM2 ./WHATS_NEW lib/report/report.c
@ 2007-01-22 15:07 agk
  0 siblings, 0 replies; 9+ messages in thread
From: agk @ 2007-01-22 15:07 UTC (permalink / raw)
  To: lvm-devel

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	agk at sourceware.org	2007-01-22 15:07:21

Modified files:
	.              : WHATS_NEW 
	lib/report     : report.c 

Log message:
	Streamline dm_report_field_* interface.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.549&r2=1.550
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/report/report.c.diff?cvsroot=lvm2&r1=1.52&r2=1.53

--- LVM2/WHATS_NEW	2007/01/19 22:21:44	1.549
+++ LVM2/WHATS_NEW	2007/01/22 15:07:20	1.550
@@ -1,5 +1,6 @@
 Version 2.02.20 -
 ===================================
+  Streamline dm_report_field_* interface.
   Change remaining dmeventd terminology 'register' to 'monitor'.
   Update reporting man pages.
   No longer necessary to specify alignment for report fields.
--- LVM2/lib/report/report.c	2007/01/18 17:48:29	1.52
+++ LVM2/lib/report/report.c	2007/01/22 15:07:21	1.53
@@ -66,7 +66,7 @@
 			struct dm_report_field *field,
 			const void *data, void *private)
 {
-	return dm_report_field_string(rh, mem, field, data);
+	return dm_report_field_string(rh, field, (const char **) data);
 }
 
 static int _dev_name_disp(struct dm_report *rh, struct dm_pool *mem,
@@ -75,7 +75,7 @@
 {
 	const char *name = dev_name(*(const struct device **) data);
 
-	return dm_report_field_string(rh, mem, field, &name);
+	return dm_report_field_string(rh, field, &name);
 }
 
 static int _devices_disp(struct dm_report *rh, struct dm_pool *mem,
@@ -227,9 +227,9 @@
 	uint64_t minusone = UINT64_C(-1);
 
 	if (lv_info(lv->vg->cmd, lv, &info, 0) && info.exists)
-		return dm_report_field_int(rh, mem, field, &info.major);
+		return dm_report_field_int(rh, field, &info.major);
 
-	return dm_report_field_int(rh, mem, field, &minusone);
+	return dm_report_field_uint64(rh, field, &minusone);
 }
 
 static int _lvkmin_disp(struct dm_report *rh, struct dm_pool *mem,
@@ -241,9 +241,9 @@
 	uint64_t minusone = UINT64_C(-1);
 
 	if (lv_info(lv->vg->cmd, lv, &info, 0) && info.exists)
-		return dm_report_field_int(rh, mem, field, &info.minor);
+		return dm_report_field_int(rh, field, &info.minor);
 
-	return dm_report_field_int(rh, mem, field, &minusone);
+	return dm_report_field_uint64(rh, field, &minusone);
 }
 
 static int _lvstatus_disp(struct dm_report *rh, struct dm_pool *mem,
@@ -423,8 +423,8 @@
 	const struct logical_volume *lv = (const struct logical_volume *) data;
 
 	if (lv_is_cow(lv))
-		return dm_report_field_string(rh, mem, field,
-					      &origin_from_cow(lv)->name);
+		return dm_report_field_string(rh, field,
+					      (const char **) &origin_from_cow(lv)->name);
 
 	dm_report_field_set_value(field, "", NULL);
 	return 1;
@@ -440,8 +440,8 @@
 	list_iterate_items(seg, &lv->segments) {
 		if (!seg_is_mirrored(seg) || !seg->log_lv)
 			continue;
-		return dm_report_field_string(rh, mem, field,
-					      &seg->log_lv->name);
+		return dm_report_field_string(rh, field,
+					      (const char **) &seg->log_lv->name);
 	}
 
 	dm_report_field_set_value(field, "", NULL);
@@ -458,7 +458,7 @@
 
 	if (lv_is_visible(lv)) {
 		repstr = lv->name;
-		return dm_report_field_string(rh, mem, field, &repstr);
+		return dm_report_field_string(rh, field, (const char **) &repstr);
 	}
 
 	len = strlen(lv->name) + 3;
@@ -494,7 +494,7 @@
 		if (!(seg->status & PVMOVE))
 			continue;
 		name = dev_name(seg_dev(seg, 0));
-		return dm_report_field_string(rh, mem, field, &name);
+		return dm_report_field_string(rh, field, &name);
 	}
 
 	dm_report_field_set_value(field, "", NULL);
@@ -708,14 +708,14 @@
 			struct dm_report_field *field,
 			const void *data, void *private)
 {
-	return dm_report_field_uint32(rh, mem, field, data);
+	return dm_report_field_uint32(rh, field, data);
 }
 
 static int _int32_disp(struct dm_report *rh, struct dm_pool *mem,
 		       struct dm_report_field *field,
 		       const void *data, void *private)
 {
-	return dm_report_field_int32(rh, mem, field, data);
+	return dm_report_field_int32(rh, field, data);
 }
 
 static int _lvsegcount_disp(struct dm_report *rh, struct dm_pool *mem,



^ permalink raw reply	[flat|nested] 9+ messages in thread

* LVM2 ./WHATS_NEW lib/report/report.c
@ 2007-01-18 17:48 agk
  0 siblings, 0 replies; 9+ messages in thread
From: agk @ 2007-01-18 17:48 UTC (permalink / raw)
  To: lvm-devel

CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	agk at sourceware.org	2007-01-18 17:48:29

Modified files:
	.              : WHATS_NEW 
	lib/report     : report.c 

Log message:
	No longer necessary to specify alignment for report fields.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.546&r2=1.547
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/report/report.c.diff?cvsroot=lvm2&r1=1.51&r2=1.52

--- LVM2/WHATS_NEW	2007/01/17 17:56:15	1.546
+++ LVM2/WHATS_NEW	2007/01/18 17:48:29	1.547
@@ -1,5 +1,6 @@
 Version 2.02.20 -
 ===================================
+  No longer necessary to specify alignment for report fields.
 
 Version 2.02.19 - 17th January 2007
 ===================================
--- LVM2/lib/report/report.c	2007/01/16 18:06:11	1.51
+++ LVM2/lib/report/report.c	2007/01/18 17:48:29	1.52
@@ -866,8 +866,8 @@
  * Import column definitions
  */
 
-#define STR (DM_REPORT_FIELD_STRING | DM_REPORT_FIELD_ALIGN_LEFT)
-#define NUM (DM_REPORT_FIELD_NUMBER | DM_REPORT_FIELD_ALIGN_RIGHT)
+#define STR DM_REPORT_FIELD_TYPE_STRING
+#define NUM DM_REPORT_FIELD_TYPE_NUMBER
 #define FIELD(type, strct, sorttype, head, field, width, func, id) {type, id, (off_t)((void *)&_dummy._ ## strct.field - (void *)&_dummy._ ## strct), head, width, sorttype, &_ ## func ## _disp},
 
 static struct dm_report_field_type _fields[] = {



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2010-05-20 22:24 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-12-15 13:30 LVM2 ./WHATS_NEW lib/report/report.c wysochanski
  -- strict thread matches above, loose matches on Subject: below --
2010-05-20 22:24 agk
2010-01-07 14:37 zkabelac
2009-02-06 12:41 mbroz
2009-02-16 20:25 ` Alasdair G Kergon
2009-01-10 17:09 agk
2009-01-10 15:04 wysochanski
2007-01-22 15:07 agk
2007-01-18 17:48 agk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.