summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorPeter Rajnoha <prajnoha@redhat.com>2012-06-27 10:21:15 -0400
committerPeter Rajnoha <prajnoha@redhat.com>2012-06-28 09:42:48 -0400
commit215a314f195ea4af5265e37999502462fcf2a341 (patch)
tree393e7fbc2d647de522ed52b78441eb4b48d373c3 /tools
parent95ced7a7be26499fed2ffa03d71002e73c2d3ca9 (diff)
downloadlvm2-215a314f195ea4af5265e37999502462fcf2a341.tar.gz
lvm2-215a314f195ea4af5265e37999502462fcf2a341.tar.xz
lvm2-215a314f195ea4af5265e37999502462fcf2a341.zip
vgchange: add --activate ay option (autoactivate)
Normally, the 'vgchange -ay' activates all volume groups (that pass the activation/volume_list filter if set). This call can appear in two scenarios: - system boot (so activation within a script in general) - manual call on command line (so activaton on user's direct request) For the former one, we would like to select which VGs should be actually activated. One can define the list of VGs directly to do that. But that would require the same list to be provided in all the scripts. The 'vgchange -aay' will check for the activation/auto_activation_volume_list in adition and it will activate only those VGs/LVs that pass this filter (assuming all to be activated if the list is not defined - the same logic we already have for activation/volume_list). Init/boot scripts should use this form of activation primarily (which, anyway, becomes only a fallback now with autoactivation done on PV appearance in tandem with lvmetad in place).
Diffstat (limited to 'tools')
-rw-r--r--tools/commands.h2
-rw-r--r--tools/vgchange.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/tools/commands.h b/tools/commands.h
index a8c6587f..8bec0929 100644
--- a/tools/commands.h
+++ b/tools/commands.h
@@ -742,7 +742,7 @@ xx(vgchange,
"\t[-u|--uuid] " "\n"
"\t[-v|--verbose] " "\n"
"\t[--version]" "\n"
- "\t{-a|--activate [e|l]{y|n} |" "\n"
+ "\t{-a|--activate [a|e|l]{y|n} |" "\n"
"\t -c|--clustered {y|n} |" "\n"
"\t -x|--resizeable {y|n} |" "\n"
"\t -l|--logicalvolume MaxLogicalVolumes |" "\n"
diff --git a/tools/vgchange.c b/tools/vgchange.c
index 29562a58..ebabb088 100644
--- a/tools/vgchange.c
+++ b/tools/vgchange.c
@@ -131,6 +131,12 @@ static int _activate_lvs_in_vg(struct cmd_context *cmd, struct volume_group *vg,
continue;
}
+ if (activate == CHANGE_AAY) {
+ if (!lv_passes_auto_activation_filter(cmd, lv))
+ continue;
+ activate = CHANGE_ALY;
+ }
+
expected_count++;
if (activate == CHANGE_AN) {