[lvm-devel] LVM2 ./WHATS_NEW tools/lvmcmdline.c

zkabelac at sourceware.org zkabelac at sourceware.org
Fri Sep 16 12:10:03 UTC 2011


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	zkabelac at sourceware.org	2011-09-16 12:10:03

Modified files:
	.              : WHATS_NEW 
	tools          : lvmcmdline.c 

Log message:
	Fix command line option decoding
	
	LVM has huge set of options now - it's approaching 60 short-arg less options
	and we get interesting case of misdetection for 'merge' option which has been
	put into the middle of options with 'short_arg' - thus certainly past 65. (ASCII 'A').
	
	To avoid confusion of short_arg with long_opt number - add  '128' to all such
	non-short-arg options.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.2114&r2=1.2115
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/tools/lvmcmdline.c.diff?cvsroot=lvm2&r1=1.147&r2=1.148

--- LVM2/WHATS_NEW	2011/09/16 12:01:48	1.2114
+++ LVM2/WHATS_NEW	2011/09/16 12:10:02	1.2115
@@ -1,5 +1,6 @@
 Version 2.02.89 - 
 ==================================
+  Fix command line option decoding.
   Reset LV status when unlinking LV from VG.
   Fix overly strict extent-count divisibility requirements for striped mirrors.
   Fix rounding direction in lvresize when reducing volume size.
--- LVM2/tools/lvmcmdline.c	2011/09/02 01:32:08	1.147
+++ LVM2/tools/lvmcmdline.c	2011/09/16 12:10:02	1.148
@@ -641,7 +641,7 @@
 		if (a->short_arg)
 			(*o)->val = a->short_arg;
 		else
-			(*o)->val = arg;
+			(*o)->val = arg + 128;
 		(*o)++;
 	}
 #endif
@@ -662,7 +662,7 @@
 		 * the_args.
 		 */
 		if ((a->short_arg && (opt == a->short_arg)) ||
-		    (!a->short_arg && (opt == arg)))
+		    (!a->short_arg && (opt == (arg + 128))))
 			return arg;
 	}
 




More information about the lvm-devel mailing list