mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
args: add --activate synonym for --available arg
We're refererring to 'activation' all over the code and we're talking about 'LVs being activated' all the time so let's use 'activation/activate' everywhere for clarity and consistency (still providing the old 'available' keyword as a synonym for backward compatibility with existing environments).
This commit is contained in:
parent
07a25c249b
commit
2729720fd3
@ -1,5 +1,6 @@
|
||||
Version 2.02.97 -
|
||||
===============================
|
||||
Add --activate synonym for --available arg and prefer --activate.
|
||||
Never issue discards when LV extents are being reconfigured, not deleted.
|
||||
Allow release_lv_segment_area to fail as functions it calls can fail.
|
||||
Open device read-only to obtain readahead value.
|
||||
|
@ -563,11 +563,11 @@ int update_pool_lv(struct logical_volume *lv, int activate);
|
||||
* Activation options
|
||||
*/
|
||||
typedef enum {
|
||||
CHANGE_AY = 0,
|
||||
CHANGE_AN = 1,
|
||||
CHANGE_AE = 2,
|
||||
CHANGE_ALY = 3,
|
||||
CHANGE_ALN = 4
|
||||
CHANGE_AY = 0, /* activate */
|
||||
CHANGE_AN = 1, /* deactivate */
|
||||
CHANGE_AE = 2, /* activate exclusively */
|
||||
CHANGE_ALY = 3, /* activate locally */
|
||||
CHANGE_ALN = 4 /* deactivate locally */
|
||||
} activation_change_t;
|
||||
|
||||
/* FIXME: refactor and reduce the size of this struct! */
|
||||
|
@ -7,7 +7,7 @@ lvchange \- change attributes of a logical volume
|
||||
.IR Tag ]
|
||||
.RB [ \-A | \-\-autobackup
|
||||
.RI { y | n }]
|
||||
.RB [ \-a | \-\-available
|
||||
.RB [ \-a | \-\-activate
|
||||
.RI [ e | l ]{ y | n }]
|
||||
.RB [ \-\-alloc
|
||||
.IR AllocationPolicy ]
|
||||
@ -46,7 +46,7 @@ including making them known to the kernel ready for use.
|
||||
.SH OPTIONS
|
||||
See \fBlvm\fP(8) for common options.
|
||||
.TP
|
||||
.BR \-a ", " \-\-available " [" \fIe | \fIl ]{ \fIy | \fIn }
|
||||
.BR \-a ", " \-\-activate " [" \fIe | \fIl ]{ \fIy | \fIn }
|
||||
Controls the availability of the logical volumes for use.
|
||||
Communicates with the kernel device-mapper driver via
|
||||
libdevmapper to activate (\-ay) or deactivate (\-an) the
|
||||
|
@ -7,7 +7,7 @@ lvcreate \- create a logical volume in an existing volume group
|
||||
.IR Tag ]
|
||||
.RB [ \-\-alloc
|
||||
.IR AllocationPolicy ]
|
||||
.RB [ \-a | \-\-available
|
||||
.RB [ \-a | \-\-activate
|
||||
.RI [ e | l ]{ y | n }]
|
||||
.RB [ \-A | \-\-autobackup
|
||||
.RI { y | n }]
|
||||
@ -107,7 +107,7 @@ See
|
||||
.BR lvm (8)
|
||||
for common options.
|
||||
.TP
|
||||
.IR \fB\-a ", " \fB\-\-available " {" y | n | ey | en | ly | ln }
|
||||
.IR \fB\-a ", " \fB\-\-activate " {" y | n | ey | en | ly | ln }
|
||||
Controls the availability of the Logical Volumes for immediate use after
|
||||
the command finishes running.
|
||||
By default, new Logical Volumes are activated automatically (\fB-a\fIy\fR).
|
||||
|
@ -9,7 +9,7 @@ vgchange \- change attributes of a volume group
|
||||
.IR AllocationPolicy ]
|
||||
.RB [ \-A | \-\-autobackup
|
||||
.RI { y | n }]
|
||||
.RB [ \-a | \-\-available
|
||||
.RB [ \-a | \-\-activate
|
||||
.RI [ e | l ]
|
||||
.RI { y | n }]
|
||||
.RB [ \-\-monitor
|
||||
@ -64,7 +64,7 @@ Controls automatic backup of metadata after the change. See
|
||||
.BR vgcfgbackup (8).
|
||||
Default is yes.
|
||||
.TP
|
||||
.BR \-a ", " \-\-available " [" \fIe | \fIl ]{ \fIy | \fIn }
|
||||
.BR \-a ", " \-\-activate " [" \fIe | \fIl ]{ \fIy | \fIn }
|
||||
Controls the availability of the logical volumes in the volume
|
||||
group for input/output.
|
||||
In other words, makes the logical volumes known/unknown to the kernel.
|
||||
|
@ -79,11 +79,12 @@ arg(thinpool_ARG, '\0', "thinpool", string_arg, 0)
|
||||
/* Allow some variations */
|
||||
arg(resizable_ARG, '\0', "resizable", yes_no_arg, 0)
|
||||
arg(allocation_ARG, '\0', "allocation", yes_no_arg, 0)
|
||||
arg(available_ARG, '\0', "available", activation_arg, 0)
|
||||
|
||||
/*
|
||||
* ... and now the short args.
|
||||
*/
|
||||
arg(available_ARG, 'a', "available", yes_no_excl_arg, 0)
|
||||
arg(activate_ARG, 'a', "activate", activation_arg, 0)
|
||||
arg(all_ARG, 'a', "all", NULL, 0)
|
||||
arg(autobackup_ARG, 'A', "autobackup", yes_no_arg, 0)
|
||||
arg(activevolumegroups_ARG, 'A', "activevolumegroups", NULL, 0)
|
||||
|
@ -61,7 +61,7 @@ xx(lvchange,
|
||||
CACHE_VGMETADATA | PERMITTED_READ_ONLY,
|
||||
"lvchange\n"
|
||||
"\t[-A|--autobackup y|n]\n"
|
||||
"\t[-a|--available [e|l]y|n]\n"
|
||||
"\t[-a|--activate [e|l]y|n]\n"
|
||||
"\t[--addtag Tag]\n"
|
||||
"\t[--alloc AllocationPolicy]\n"
|
||||
"\t[-C|--contiguous y|n]\n"
|
||||
@ -87,11 +87,11 @@ xx(lvchange,
|
||||
"\t[--version]" "\n"
|
||||
"\tLogicalVolume[Path] [LogicalVolume[Path]...]\n",
|
||||
|
||||
alloc_ARG, autobackup_ARG, available_ARG, contiguous_ARG, force_ARG,
|
||||
ignorelockingfailure_ARG, ignoremonitoring_ARG, major_ARG, minor_ARG,
|
||||
monitor_ARG, noudevsync_ARG, partial_ARG, permission_ARG, persistent_ARG,
|
||||
poll_ARG, readahead_ARG, resync_ARG, refresh_ARG, addtag_ARG, deltag_ARG,
|
||||
sysinit_ARG, test_ARG, yes_ARG)
|
||||
alloc_ARG, autobackup_ARG, activate_ARG, available_ARG, contiguous_ARG,
|
||||
force_ARG, ignorelockingfailure_ARG, ignoremonitoring_ARG, major_ARG,
|
||||
minor_ARG, monitor_ARG, noudevsync_ARG, partial_ARG, permission_ARG,
|
||||
persistent_ARG, poll_ARG, readahead_ARG, resync_ARG, refresh_ARG,
|
||||
addtag_ARG, deltag_ARG, sysinit_ARG, test_ARG, yes_ARG)
|
||||
|
||||
xx(lvconvert,
|
||||
"Change logical volume layout",
|
||||
@ -159,7 +159,7 @@ xx(lvcreate,
|
||||
0,
|
||||
"lvcreate " "\n"
|
||||
"\t[-A|--autobackup {y|n}]\n"
|
||||
"\t[-a|--available [e|l]y|n]\n"
|
||||
"\t[-a|--activate [e|l]y|n]\n"
|
||||
"\t[--addtag Tag]\n"
|
||||
"\t[--alloc AllocationPolicy]\n"
|
||||
"\t[-C|--contiguous {y|n}]\n"
|
||||
@ -214,13 +214,13 @@ xx(lvcreate,
|
||||
|
||||
"\t[PhysicalVolumePath...]\n\n",
|
||||
|
||||
addtag_ARG, alloc_ARG, autobackup_ARG, available_ARG, chunksize_ARG,
|
||||
contiguous_ARG, corelog_ARG, extents_ARG, ignoremonitoring_ARG, major_ARG,
|
||||
minor_ARG, mirrorlog_ARG, mirrors_ARG, monitor_ARG, name_ARG, nosync_ARG,
|
||||
noudevsync_ARG, permission_ARG, persistent_ARG, readahead_ARG,
|
||||
regionsize_ARG, size_ARG, snapshot_ARG, stripes_ARG, stripesize_ARG,
|
||||
test_ARG, thin_ARG, thinpool_ARG, type_ARG, virtualoriginsize_ARG,
|
||||
poolmetadatasize_ARG, virtualsize_ARG, zero_ARG)
|
||||
addtag_ARG, alloc_ARG, autobackup_ARG, activate_ARG, available_ARG,
|
||||
chunksize_ARG, contiguous_ARG, corelog_ARG, extents_ARG,
|
||||
ignoremonitoring_ARG, major_ARG, minor_ARG, mirrorlog_ARG, mirrors_ARG,
|
||||
monitor_ARG, name_ARG, nosync_ARG, noudevsync_ARG, permission_ARG,
|
||||
persistent_ARG, readahead_ARG, regionsize_ARG, size_ARG, snapshot_ARG,
|
||||
stripes_ARG, stripesize_ARG, test_ARG, thin_ARG, thinpool_ARG, type_ARG,
|
||||
virtualoriginsize_ARG, poolmetadatasize_ARG, virtualsize_ARG, zero_ARG)
|
||||
|
||||
xx(lvdisplay,
|
||||
"Display information about a logical volume",
|
||||
@ -742,7 +742,7 @@ xx(vgchange,
|
||||
"\t[-u|--uuid] " "\n"
|
||||
"\t[-v|--verbose] " "\n"
|
||||
"\t[--version]" "\n"
|
||||
"\t{-a|--available [e|l]{y|n} |" "\n"
|
||||
"\t{-a|--activate [e|l]{y|n} |" "\n"
|
||||
"\t -c|--clustered {y|n} |" "\n"
|
||||
"\t -x|--resizeable {y|n} |" "\n"
|
||||
"\t -l|--logicalvolume MaxLogicalVolumes |" "\n"
|
||||
@ -752,11 +752,11 @@ xx(vgchange,
|
||||
"\t --deltag Tag}\n"
|
||||
"\t[VolumeGroupName...]\n",
|
||||
|
||||
addtag_ARG, alloc_ARG, allocation_ARG, autobackup_ARG, available_ARG,
|
||||
clustered_ARG, deltag_ARG, ignorelockingfailure_ARG, ignoremonitoring_ARG,
|
||||
logicalvolume_ARG, maxphysicalvolumes_ARG, monitor_ARG, noudevsync_ARG,
|
||||
metadatacopies_ARG, vgmetadatacopies_ARG, partial_ARG,
|
||||
physicalextentsize_ARG, poll_ARG, refresh_ARG, resizeable_ARG,
|
||||
addtag_ARG, alloc_ARG, allocation_ARG, autobackup_ARG, activate_ARG,
|
||||
available_ARG, clustered_ARG, deltag_ARG, ignorelockingfailure_ARG,
|
||||
ignoremonitoring_ARG, logicalvolume_ARG, maxphysicalvolumes_ARG,
|
||||
monitor_ARG, noudevsync_ARG, metadatacopies_ARG, vgmetadatacopies_ARG,
|
||||
partial_ARG, physicalextentsize_ARG, poll_ARG, refresh_ARG, resizeable_ARG,
|
||||
resizable_ARG, sysinit_ARG, test_ARG, uuid_ARG)
|
||||
|
||||
xx(vgck,
|
||||
|
@ -127,12 +127,11 @@ static int lvchange_background_polling(struct cmd_context *cmd,
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int lvchange_availability(struct cmd_context *cmd,
|
||||
struct logical_volume *lv)
|
||||
static int _lvchange_activate(struct cmd_context *cmd, struct logical_volume *lv)
|
||||
{
|
||||
int activate;
|
||||
|
||||
activate = arg_uint_value(cmd, available_ARG, 0);
|
||||
activate = arg_uint_value(cmd, activate_ARG, 0);
|
||||
|
||||
if (lv_is_cow(lv) && !lv_is_virtual_origin(origin_from_cow(lv)))
|
||||
lv = origin_from_cow(lv);
|
||||
@ -556,7 +555,7 @@ static int lvchange_single(struct cmd_context *cmd, struct logical_volume *lv,
|
||||
}
|
||||
|
||||
if (lv_is_cow(lv) && !lv_is_virtual_origin(origin = origin_from_cow(lv)) &&
|
||||
arg_count(cmd, available_ARG)) {
|
||||
arg_count(cmd, activate_ARG)) {
|
||||
if (origin->origin_count < 2)
|
||||
snaps_msg[0] = '\0';
|
||||
else if (dm_snprintf(snaps_msg, sizeof(snaps_msg),
|
||||
@ -577,7 +576,7 @@ static int lvchange_single(struct cmd_context *cmd, struct logical_volume *lv,
|
||||
|
||||
if (lv->status & PVMOVE) {
|
||||
log_error("Unable to change pvmove LV %s", lv->name);
|
||||
if (arg_count(cmd, available_ARG))
|
||||
if (arg_count(cmd, activate_ARG))
|
||||
log_error("Use 'pvmove --abort' to abandon a pvmove");
|
||||
return ECMD_FAILED;
|
||||
}
|
||||
@ -594,7 +593,7 @@ static int lvchange_single(struct cmd_context *cmd, struct logical_volume *lv,
|
||||
}
|
||||
|
||||
/* If LV is sparse, activate origin instead */
|
||||
if (arg_count(cmd, available_ARG) && lv_is_cow(lv) &&
|
||||
if (arg_count(cmd, activate_ARG) && lv_is_cow(lv) &&
|
||||
lv_is_virtual_origin(origin = origin_from_cow(lv)))
|
||||
lv = origin;
|
||||
|
||||
@ -696,9 +695,9 @@ static int lvchange_single(struct cmd_context *cmd, struct logical_volume *lv,
|
||||
return ECMD_FAILED;
|
||||
}
|
||||
|
||||
/* availability change */
|
||||
if (arg_count(cmd, available_ARG)) {
|
||||
if (!lvchange_availability(cmd, lv)) {
|
||||
/* activation change */
|
||||
if (arg_count(cmd, activate_ARG)) {
|
||||
if (!_lvchange_activate(cmd, lv)) {
|
||||
stack;
|
||||
return ECMD_FAILED;
|
||||
}
|
||||
@ -710,7 +709,7 @@ static int lvchange_single(struct cmd_context *cmd, struct logical_volume *lv,
|
||||
return ECMD_FAILED;
|
||||
}
|
||||
|
||||
if (!arg_count(cmd, available_ARG) &&
|
||||
if (!arg_count(cmd, activate_ARG) &&
|
||||
!arg_count(cmd, refresh_ARG) &&
|
||||
arg_count(cmd, monitor_ARG)) {
|
||||
if (!lvchange_monitoring(cmd, lv)) {
|
||||
@ -719,7 +718,7 @@ static int lvchange_single(struct cmd_context *cmd, struct logical_volume *lv,
|
||||
}
|
||||
}
|
||||
|
||||
if (!arg_count(cmd, available_ARG) &&
|
||||
if (!arg_count(cmd, activate_ARG) &&
|
||||
!arg_count(cmd, refresh_ARG) &&
|
||||
arg_count(cmd, poll_ARG)) {
|
||||
if (!lvchange_background_polling(cmd, lv)) {
|
||||
@ -745,7 +744,7 @@ int lvchange(struct cmd_context *cmd, int argc, char **argv)
|
||||
arg_count(cmd, resync_ARG) || arg_count(cmd, alloc_ARG);
|
||||
|
||||
if (!update &&
|
||||
!arg_count(cmd, available_ARG) && !arg_count(cmd, refresh_ARG) &&
|
||||
!arg_count(cmd, activate_ARG) && !arg_count(cmd, refresh_ARG) &&
|
||||
!arg_count(cmd, monitor_ARG) && !arg_count(cmd, poll_ARG)) {
|
||||
log_error("Need 1 or more of -a, -C, -M, -p, -r, "
|
||||
"--resync, --refresh, --alloc, --addtag, --deltag, "
|
||||
@ -753,7 +752,7 @@ int lvchange(struct cmd_context *cmd, int argc, char **argv)
|
||||
return EINVALID_CMD_LINE;
|
||||
}
|
||||
|
||||
if (arg_count(cmd, available_ARG) && arg_count(cmd, refresh_ARG)) {
|
||||
if (arg_count(cmd, activate_ARG) && arg_count(cmd, refresh_ARG)) {
|
||||
log_error("Only one of -a and --refresh permitted.");
|
||||
return EINVALID_CMD_LINE;
|
||||
}
|
||||
|
@ -560,11 +560,11 @@ static int _read_activation_params(struct lvcreate_params *lp, struct cmd_contex
|
||||
unsigned pagesize;
|
||||
|
||||
lp->activate = (activation_change_t)
|
||||
arg_uint_value(cmd, available_ARG, CHANGE_AY);
|
||||
arg_uint_value(cmd, activate_ARG, CHANGE_AY);
|
||||
|
||||
if (lp->activate == CHANGE_AN || lp->activate == CHANGE_ALN) {
|
||||
if (lp->zero && !seg_is_thin(lp)) {
|
||||
log_error("--available n requires --zero n");
|
||||
log_error("--activate n requires --zero n");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -172,7 +172,7 @@ int yes_no_arg(struct cmd_context *cmd __attribute__((unused)), struct arg_value
|
||||
return 1;
|
||||
}
|
||||
|
||||
int yes_no_excl_arg(struct cmd_context *cmd __attribute__((unused)), struct arg_values *av)
|
||||
int activation_arg(struct cmd_context *cmd __attribute__((unused)), struct arg_values *av)
|
||||
{
|
||||
av->sign = SIGN_NONE;
|
||||
av->percent = PERCENT_NONE;
|
||||
@ -889,7 +889,8 @@ static int _get_settings(struct cmd_context *cmd)
|
||||
if (!_merge_synonym(cmd, resizable_ARG, resizeable_ARG) ||
|
||||
!_merge_synonym(cmd, allocation_ARG, allocatable_ARG) ||
|
||||
!_merge_synonym(cmd, allocation_ARG, resizeable_ARG) ||
|
||||
!_merge_synonym(cmd, virtualoriginsize_ARG, virtualsize_ARG))
|
||||
!_merge_synonym(cmd, virtualoriginsize_ARG, virtualsize_ARG) ||
|
||||
!_merge_synonym(cmd, available_ARG, activate_ARG))
|
||||
return EINVALID_CMD_LINE;
|
||||
|
||||
if ((!strncmp(cmd->command->name, "pv", 2) &&
|
||||
|
@ -129,7 +129,7 @@ int process_each_lv_in_vg(struct cmd_context *cmd,
|
||||
|
||||
/* Skip availability change for non-virt snaps when processing all LVs */
|
||||
/* FIXME: pass process_all to process_single_lv() */
|
||||
if (process_all && arg_count(cmd, available_ARG) &&
|
||||
if (process_all && arg_count(cmd, activate_ARG) &&
|
||||
lv_is_cow(lvl->lv) && !lv_is_virtual_origin(origin_from_cow(lvl->lv)))
|
||||
continue;
|
||||
|
||||
|
@ -138,7 +138,7 @@ void usage(const char *name);
|
||||
|
||||
/* the argument verify/normalise functions */
|
||||
int yes_no_arg(struct cmd_context *cmd, struct arg_values *av);
|
||||
int yes_no_excl_arg(struct cmd_context *cmd, struct arg_values *av);
|
||||
int activation_arg(struct cmd_context *cmd, struct arg_values *av);
|
||||
int size_kb_arg(struct cmd_context *cmd, struct arg_values *av);
|
||||
int size_mb_arg(struct cmd_context *cmd, struct arg_values *av);
|
||||
int int_arg(struct cmd_context *cmd, struct arg_values *av);
|
||||
|
@ -211,10 +211,10 @@ static int _vgchange_background_polling(struct cmd_context *cmd, struct volume_g
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int _vgchange_available(struct cmd_context *cmd, struct volume_group *vg)
|
||||
static int _vgchange_activate(struct cmd_context *cmd, struct volume_group *vg)
|
||||
{
|
||||
int lv_open, active, monitored = 0;
|
||||
int available, r = 1;
|
||||
int activate_arg, r = 1;
|
||||
int activate = 1;
|
||||
|
||||
/*
|
||||
@ -223,9 +223,9 @@ static int _vgchange_available(struct cmd_context *cmd, struct volume_group *vg)
|
||||
*/
|
||||
cmd->handles_missing_pvs = 1;
|
||||
|
||||
available = arg_uint_value(cmd, available_ARG, 0);
|
||||
activate_arg = arg_uint_value(cmd, activate_ARG, 0);
|
||||
|
||||
if ((available == CHANGE_AN) || (available == CHANGE_ALN))
|
||||
if ((activate_arg == CHANGE_AN) || (activate_arg == CHANGE_ALN))
|
||||
activate = 0;
|
||||
|
||||
/* FIXME: Force argument to deactivate them? */
|
||||
@ -252,7 +252,7 @@ static int _vgchange_available(struct cmd_context *cmd, struct volume_group *vg)
|
||||
}
|
||||
}
|
||||
|
||||
if (!_activate_lvs_in_vg(cmd, vg, available))
|
||||
if (!_activate_lvs_in_vg(cmd, vg, activate_arg))
|
||||
r = 0;
|
||||
|
||||
/* Print message only if there was not found a missing VG */
|
||||
@ -508,8 +508,8 @@ static int vgchange_single(struct cmd_context *cmd, const char *vg_name,
|
||||
log_print("Volume group \"%s\" successfully changed", vg->name);
|
||||
}
|
||||
|
||||
if (arg_count(cmd, available_ARG)) {
|
||||
if (!_vgchange_available(cmd, vg))
|
||||
if (arg_count(cmd, activate_ARG)) {
|
||||
if (!_vgchange_activate(cmd, vg))
|
||||
return ECMD_FAILED;
|
||||
}
|
||||
|
||||
@ -519,7 +519,7 @@ static int vgchange_single(struct cmd_context *cmd, const char *vg_name,
|
||||
return ECMD_FAILED;
|
||||
}
|
||||
|
||||
if (!arg_count(cmd, available_ARG) &&
|
||||
if (!arg_count(cmd, activate_ARG) &&
|
||||
!arg_count(cmd, refresh_ARG) &&
|
||||
arg_count(cmd, monitor_ARG)) {
|
||||
/* -ay* will have already done monitoring changes */
|
||||
@ -551,7 +551,7 @@ int vgchange(struct cmd_context *cmd, int argc, char **argv)
|
||||
arg_count(cmd, vgmetadatacopies_ARG);
|
||||
|
||||
if (!update &&
|
||||
!arg_count(cmd, available_ARG) &&
|
||||
!arg_count(cmd, activate_ARG) &&
|
||||
!arg_count(cmd, monitor_ARG) &&
|
||||
!arg_count(cmd, poll_ARG) &&
|
||||
!arg_count(cmd, refresh_ARG)) {
|
||||
@ -562,7 +562,7 @@ int vgchange(struct cmd_context *cmd, int argc, char **argv)
|
||||
return EINVALID_CMD_LINE;
|
||||
}
|
||||
|
||||
if (arg_count(cmd, available_ARG) && arg_count(cmd, refresh_ARG)) {
|
||||
if (arg_count(cmd, activate_ARG) && arg_count(cmd, refresh_ARG)) {
|
||||
log_error("Only one of -a and --refresh permitted.");
|
||||
return EINVALID_CMD_LINE;
|
||||
}
|
||||
@ -573,9 +573,9 @@ int vgchange(struct cmd_context *cmd, int argc, char **argv)
|
||||
return EINVALID_CMD_LINE;
|
||||
}
|
||||
|
||||
if (arg_count(cmd, available_ARG) &&
|
||||
if (arg_count(cmd, activate_ARG) &&
|
||||
(arg_count(cmd, monitor_ARG) || arg_count(cmd, poll_ARG))) {
|
||||
int activate = arg_uint_value(cmd, available_ARG, 0);
|
||||
int activate = arg_uint_value(cmd, activate_ARG, 0);
|
||||
if (activate == CHANGE_AN || activate == CHANGE_ALN) {
|
||||
log_error("Only -ay* allowed with --monitor or --poll.");
|
||||
return EINVALID_CMD_LINE;
|
||||
@ -587,7 +587,7 @@ int vgchange(struct cmd_context *cmd, int argc, char **argv)
|
||||
return EINVALID_CMD_LINE;
|
||||
}
|
||||
|
||||
if (arg_count(cmd, available_ARG) == 1
|
||||
if (arg_count(cmd, activate_ARG) == 1
|
||||
&& arg_count(cmd, autobackup_ARG)) {
|
||||
log_error("-A option not necessary with -a option");
|
||||
return EINVALID_CMD_LINE;
|
||||
|
Loading…
Reference in New Issue
Block a user