summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Rajnoha <prajnoha@redhat.com>2012-06-28 04:15:07 -0400
committerPeter Rajnoha <prajnoha@redhat.com>2012-06-28 09:44:07 -0400
commita2f4ccd83907590d16e6d06e1aea7e70efcf1fe5 (patch)
tree813d18e82fe314ca85075ea786bf393302bd6473
parentc9b9077b44119db0bfd926730cb79ebf0990c980 (diff)
downloadlvm2-a2f4ccd83907590d16e6d06e1aea7e70efcf1fe5.tar.gz
lvm2-a2f4ccd83907590d16e6d06e1aea7e70efcf1fe5.tar.xz
lvm2-a2f4ccd83907590d16e6d06e1aea7e70efcf1fe5.zip
lvcreate: add --activate ay (autoactivate)
One can use "lvcreate --aay" to have the newly created volume activated or not activated based on the activation/auto_activation_volume_list this way. Note: -Z/--zero is not compatible with -aay, zeroing is not used in this case! When using lvcreate -aay, a default warning message is also issued that zeroing is not done.
-rw-r--r--WHATS_NEW1
-rw-r--r--lib/metadata/lv_manip.c9
-rw-r--r--tools/commands.h2
-rw-r--r--tools/lvcreate.c6
4 files changed, 17 insertions, 1 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index ec554bf4..152ec08a 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.97 -
===============================
+ Add --activate ay to lvcreate.
Add --activate ay to lvchange.
Add --activate ay to pvscan.
Add --activate ay to vgchange.
diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c
index a0be8875..0666a514 100644
--- a/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c
@@ -4433,6 +4433,15 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg, struct l
backup(vg);
+ /*
+ * Check for autoactivation.
+ * If the LV passes the auto activation filter, activate
+ * it just as if CHANGE_AY was used, CHANGE_AN otherwise.
+ */
+ if (lp->activate == CHANGE_AAY)
+ lp->activate = lv_passes_auto_activation_filter(cmd, lv) ?
+ CHANGE_ALY : CHANGE_ALN;
+
if (test_mode()) {
log_verbose("Test mode: Skipping activation and zeroing.");
goto out;
diff --git a/tools/commands.h b/tools/commands.h
index b863c66c..3454951a 100644
--- a/tools/commands.h
+++ b/tools/commands.h
@@ -159,7 +159,7 @@ xx(lvcreate,
0,
"lvcreate " "\n"
"\t[-A|--autobackup {y|n}]\n"
- "\t[-a|--activate [e|l]y|n]\n"
+ "\t[-a|--activate [a|e|l]{y|n}]\n"
"\t[--addtag Tag]\n"
"\t[--alloc AllocationPolicy]\n"
"\t[-C|--contiguous {y|n}]\n"
diff --git a/tools/lvcreate.c b/tools/lvcreate.c
index a81e39d3..ab217cfb 100644
--- a/tools/lvcreate.c
+++ b/tools/lvcreate.c
@@ -567,6 +567,12 @@ static int _read_activation_params(struct lvcreate_params *lp, struct cmd_contex
log_error("--activate n requires --zero n");
return 0;
}
+ } else if (lp->activate == CHANGE_AAY) {
+ if (arg_count(cmd, zero_ARG)) {
+ log_error("-Z is incompatible with --activate a");
+ return 0;
+ }
+ lp->zero = 0;
}
/*