diff options
author | Alasdair Kergon <agk@redhat.com> | 2009-05-27 16:30:29 +0000 |
---|---|---|
committer | Alasdair Kergon <agk@redhat.com> | 2009-05-27 16:30:29 +0000 |
commit | 154753db8b7595525f7b9b33b517eab946e0ec51 (patch) | |
tree | e0c86676f2e78de21cc59ad5d819bc7c284806ef /tools/lvcreate.c | |
parent | 36a1d9e9b4c26416986b9aa675731cf9dbf4099f (diff) | |
download | lvm2-154753db8b7595525f7b9b33b517eab946e0ec51.tar.gz lvm2-154753db8b7595525f7b9b33b517eab946e0ec51.tar.xz lvm2-154753db8b7595525f7b9b33b517eab946e0ec51.zip |
Make --snapshot optional with lvcreate --virtualsize.
Generalise --virtualoriginsize to --virtualsize.
Diffstat (limited to 'tools/lvcreate.c')
-rw-r--r-- | tools/lvcreate.c | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/tools/lvcreate.c b/tools/lvcreate.c index 65dc39a4..b7dce37b 100644 --- a/tools/lvcreate.c +++ b/tools/lvcreate.c @@ -66,7 +66,7 @@ static int _lvcreate_name_params(struct lvcreate_params *lp, if (arg_count(cmd, name_ARG)) lp->lv_name = arg_value(cmd, name_ARG); - if (lp->snapshot && !arg_count(cmd, virtualoriginsize_ARG)) { + if (lp->snapshot && !arg_count(cmd, virtualsize_ARG)) { if (!argc) { log_err("Please specify a logical volume to act as " "the snapshot origin."); @@ -178,12 +178,12 @@ static int _read_size_params(struct lvcreate_params *lp, } /* Size returned in kilobyte units; held in sectors */ - if (arg_count(cmd, virtualoriginsize_ARG)) { - if (arg_sign_value(cmd, virtualoriginsize_ARG, 0) == SIGN_MINUS) { + if (arg_count(cmd, virtualsize_ARG)) { + if (arg_sign_value(cmd, virtualsize_ARG, 0) == SIGN_MINUS) { log_error("Negative virtual origin size is invalid"); return 0; } - lp->voriginsize = arg_uint64_value(cmd, virtualoriginsize_ARG, + lp->voriginsize = arg_uint64_value(cmd, virtualsize_ARG, UINT64_C(0)); if (!lp->voriginsize) { log_error("Virtual origin size may not be zero"); @@ -362,7 +362,8 @@ static int _lvcreate_params(struct lvcreate_params *lp, struct cmd_context *cmd, if (arg_count(cmd, stripes_ARG) && lp->stripes == 1) log_print("Redundant stripes argument: default is 1"); - if (arg_count(cmd, snapshot_ARG) || seg_is_snapshot(lp)) + if (arg_count(cmd, snapshot_ARG) || seg_is_snapshot(lp) || + arg_count(cmd, virtualsize_ARG)) lp->snapshot = 1; lp->mirrors = 1; @@ -406,10 +407,6 @@ static int _lvcreate_params(struct lvcreate_params *lp, struct cmd_context *cmd, log_error("-c is only available with snapshots"); return 0; } - if (arg_count(cmd, virtualoriginsize_ARG)) { - log_error("--virtualoriginsize is only available with snapshots"); - return 0; - } } if (lp->mirrors > 1) { @@ -722,7 +719,7 @@ static int _lvcreate(struct cmd_context *cmd, struct volume_group *vg, /* Must zero cow */ status |= LVM_WRITE; - if (arg_count(cmd, virtualoriginsize_ARG)) + if (arg_count(cmd, virtualsize_ARG)) origin_active = 1; else { @@ -733,7 +730,7 @@ static int _lvcreate(struct cmd_context *cmd, struct volume_group *vg, } if (lv_is_virtual_origin(org)) { log_error("Can't share virtual origins. " - "Use --virtualoriginsize."); + "Use --virtualsize."); return 0; } if (lv_is_cow(org)) { |