[lvm-devel] master - dmstats: replace --force with new stats-specific --alldevices

Bryn Reeves bmr at fedoraproject.org
Thu Aug 13 18:06:29 UTC 2015


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=6b81ac5807bdbfdd0063db4f53cc6d310c2fe4fc
Commit:        6b81ac5807bdbfdd0063db4f53cc6d310c2fe4fc
Parent:        988ca743519839b283ebdbaaf06243cb0541b935
Author:        Bryn M. Reeves <bmr at redhat.com>
AuthorDate:    Thu Aug 13 14:42:55 2015 +0100
Committer:     Bryn M. Reeves <bmr at redhat.com>
CommitterDate: Thu Aug 13 19:05:46 2015 +0100

dmstats: replace --force with new stats-specific --alldevices

The '--force' switch is only used by dmstats to allow either
creation or deletion of one or more regions on all devices.

These operations do not carry any risk: just a possible mess of
region IDs to be cleaned up.

Remove the use of '--force' for stats commands and change current
uses to a new '--alldevices' switch.
---
 WHATS_NEW_DM     |    1 +
 man/dmstats.8.in |   16 +++++++++++-----
 tools/dmsetup.c  |   16 ++++++++++------
 3 files changed, 22 insertions(+), 11 deletions(-)

diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM
index a72d3e0..45db0e4 100644
--- a/WHATS_NEW_DM
+++ b/WHATS_NEW_DM
@@ -1,6 +1,7 @@
 Version 1.02.105 - 
 ===================================
   Add more arg validation for dm_tree_node_add_cache_target().
+  Add --alldevices switch to replace use of --force for stats create / delete.
 
 Version 1.02.104 - 10th August 2015
 ===================================
diff --git a/man/dmstats.8.in b/man/dmstats.8.in
index c5ef47f..3b9f032 100644
--- a/man/dmstats.8.in
+++ b/man/dmstats.8.in
@@ -27,6 +27,7 @@ dmstats \(em device-mapper statistics management
 .br
 .B dmstats create
 .I device_name
+.RB [ \-\-alldevices ]
 .RB [[ \-\-areas
 .IR nr_areas ]
 .RB |[ \-\-areasize
@@ -43,7 +44,7 @@ dmstats \(em device-mapper statistics management
 .br
 .B dmstats delete
 .I device_name
-.RB [ \-\-force ]
+.RB [ \-\-alldevices ]
 .RB [ \-\-allregions
 .RB | \-\-regionid
 .IR id ]
@@ -115,10 +116,14 @@ when run as 'dmsetup stats'.
 
 When no device argument is given dmstats will by default operate on all
 device-mapper devices present. The \fBcreate\fP and \fBdelete\fP
-commands require the use of \fB--force\fP when used in this way.
+commands require the use of \fB--alldevices\fP when used in this way.
 
 .SH OPTIONS
 .TP
+.B \-\-alldevices
+If no device arguments are given allow operation on all devices when
+creating or deleting regions.
+.TP
 .B \-\-allprograms
 Include regions from all program IDs for list and report operations.
 .TP
@@ -267,7 +272,7 @@ stdout.
 .TP
 .B delete
 .I [ device_name ]
-.RB [ \-\-force ]
+.RB [ \-\-alldevices ]
 .RB [ \-\-allregions
 .RB | \-\-regionid
 .IR id ]
@@ -282,7 +287,8 @@ of subsequent list, print, or report operations.
 All regions registered on a device may be removed using
 \fB\-\-allregions\fP.
 
-To remove all regions on all devices \fB\-\-force\fP must be used.
+To remove all regions on all devices both \fB--allregions\fP and
+\fB\-\-alldevices\fP must be used.
 .br
 .TP
 .B help
@@ -601,7 +607,7 @@ Created region: 0
 Delete all regions on all devices
 .br
 .br
-# dmstats delete --allregions --force
+# dmstats delete --alldevices --allregions
 .br
 .br
 
diff --git a/tools/dmsetup.c b/tools/dmsetup.c
index 420e263..20ab3a0 100644
--- a/tools/dmsetup.c
+++ b/tools/dmsetup.c
@@ -120,6 +120,7 @@ enum {
 	READ_ONLY = 0,
 	ADD_NODE_ON_CREATE_ARG,
 	ADD_NODE_ON_RESUME_ARG,
+	ALL_DEVICES_ARG,
 	ALL_PROGRAMS_ARG,
 	ALL_REGIONS_ARG,
 	AREAS_ARG,
@@ -4418,9 +4419,9 @@ static int _stats_create(CMD_ARGS)
 		name = names->name;
 	else {
 		if (argc == 1 && !_switches[UUID_ARG] && !_switches[MAJOR_ARG]) {
-			if (!_switches[FORCE_ARG]) {
-				log_error("Creating regions on all devices "
-					  "requires --force.");
+			if (!_switches[ALL_DEVICES_ARG]) {
+				log_error("Please specify device(s) or use "
+					  "--alldevices.");
 				return 0;
 			}
 			return _process_all(cmd, subcommand, argc, argv, 0, _stats_create);
@@ -4506,9 +4507,9 @@ static int _stats_delete(CMD_ARGS)
 		name = names->name;
 	else {
 		if (argc == 1 && !_switches[UUID_ARG] && !_switches[MAJOR_ARG]) {
-			if (!_switches[FORCE_ARG]) {
-				log_error("Deleting regions from all devices "
-					  "requires --force.");
+			if (!_switches[ALL_DEVICES_ARG]) {
+				log_error("Please specify device(s) or use "
+					  "--alldevices.");
 				return 0;
 			}
 			return _process_all(cmd, subcommand, argc, argv, 0, _stats_delete);
@@ -5355,6 +5356,7 @@ static int _process_switches(int *argcp, char ***argvp, const char *dev_dir)
 #ifdef HAVE_GETOPTLONG
 	static struct option long_options[] = {
 		{"readonly", 0, &ind, READ_ONLY},
+		{"alldevices", 0, &ind, ALL_DEVICES_ARG},
 		{"allprograms", 0, &ind, ALL_PROGRAMS_ARG},
 		{"allregions", 0, &ind, ALL_REGIONS_ARG},
 		{"areas", 1, &ind, AREAS_ARG},
@@ -5479,6 +5481,8 @@ static int _process_switches(int *argcp, char ***argvp, const char *dev_dir)
 	optind = OPTIND_INIT;
 	while ((ind = -1, c = GETOPTLONG_FN(*argcp, *argvp, "cCfG:hj:m:M:no:O:rS:u:U:vy",
 					    long_options, NULL)) != -1) {
+		if (ind == ALL_DEVICES_ARG)
+			_switches[ALL_DEVICES_ARG]++;
 		if (ind == ALL_PROGRAMS_ARG)
 			_switches[ALL_PROGRAMS_ARG]++;
 		if (ind == ALL_REGIONS_ARG)




More information about the lvm-devel mailing list