]> sourceware.org Git - lvm2.git/log
lvm2.git
7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 02:56:10 +0000 (03:56 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Change:
- add missing raid1 <-> raid5 conversions to support
  linear <-> raid5 <-> raid0(_meta)/striped conversions
- rename related new takeover functions to
  _takeover_from_raid1_to_raid5 and _takeover_from_raid5_to_raid1,
  because a reshape to > 2 legs is only possible with
  raid5 layout

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 02:46:14 +0000 (03:46 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Change:
- enhance _clear_meta_lvs() to support raid0 allowing
  raid0_meta -> raid10 conversions to succeed by clearing
  the raid0 rmeta images or the kernel will fail because
  of discovering reordered raid devices

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 02:37:12 +0000 (03:37 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- enhance _raid45610_to_raid0_or_striped_wrapper() to support
  raid5_n with 2 areas to raid1 conversion to allow for
  striped/raid0(_meta)/raid4/5/6 -> raid1/linear conversions;
  rename it to _takeover_downconvert_wrapper to discontinue the
  illegible function name
- enhance _striped_or_raid0_to_raid45610_wrapper()  to support
  raid1 with 2 areas to raid5* conversions to allow for
  linear/raid1 -> striped/raid0(_meta)/raid4/5/6 conversions;
  rename it to _takeover_upconvert_wrapper for the same reason

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 02:11:41 +0000 (03:11 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- add missing possible reshape conversions and conversion options
  to allow/prohibit changing stripesize or number fo stripes
- enhance setting convenient riad types in reshape conversions
  (e.g. raid1 with 2 legs -> radi5_n)

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 01:53:18 +0000 (02:53 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- add _raid_reshape() using the pre/post callbacks and
  the stripes add/remove reshape functions introduced before
- and _reshape_requested function checking if a reshape
  was requested

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 01:39:04 +0000 (02:39 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- add vg metadata update functions
- add pre and post activation callback functions for
  proper sequencing of sub lv activations during reshaping
- move and enhance _lv_update_reload_fns_reset_eliminate_lvs()
  to support pre and post activation callbacks
- add _reset_flags_passed_to_kernel() which resets anyxi
  rebuild/reshape flags after they have been passed into the kernel
  and sets the SubLV remove after reshape flags on legs to be removed

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 01:12:30 +0000 (02:12 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- add function to support disk adding reshapes
- add function to support disk removing reshapes
- add function to support layout (e.g. raid5ls -> raid5_rs)
  or stripesize reshaping

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 01:05:36 +0000 (02:05 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- add function providing state of a reshaped RaidLV
- add function to adjust the size of a RaidLV was
  reshaped to add/remove stripes

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 00:57:04 +0000 (01:57 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces more local infrastructure to raid_manip.c
used by followup patches.

Changes:
- add lv_raid_data_copies returning raid type specific number;
  needed for raid10 with more than 2 data copies
- remove _shift_and_rename_image_components() constraint
  to support more than 10 raid legs
- add function to calculate total rimage length used by out-of-place
  reshape space allocation
- add out-of-place reshape space alloc/relocate/free functions
- move _data_rimages_count() used by reshape space alloc/realocate functions

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agoraid: typo
Heinz Mauelshagen [Fri, 24 Feb 2017 00:29:37 +0000 (01:29 +0100)]
raid: typo

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Fri, 24 Feb 2017 00:18:38 +0000 (01:18 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces local infrastructure to raid_manip.c
used by followup patches.

Add functions:
- to check reshaping is supported in target attibute
- to return device health string needed to check
  the raid device is ready to reshape

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agolvconvert: add infrastructure for RaidLV reshaping support
Heinz Mauelshagen [Thu, 23 Feb 2017 23:50:00 +0000 (00:50 +0100)]
lvconvert: add infrastructure for RaidLV reshaping support

In order to support striped raid5/6/10 LV reshaping (change
of LV type, stripesize or number of legs), this patch
introduces infrastructure prerequisites to be used
by raid_manip.c extensions in followup patches.

This base is needed for allocation of out-of-place
reshape space required by the MD raid personalities to
avoid writing over data in-place when reading off the
current RAID layout or number of legs and writing out
the new layout or to a different number of legs
(i.e. restripe)

Changes:
- add members reshape_len to 'struct lv_segment' to store
  out-of-place reshape length per component rimage
- add member data_copies to struct lv_segment
  to support more than 2 raid10 data copies
- make alloc_lv_segment() aware of both reshape_len and data_copies
- adjust all alloc_lv_segment() callers to the new API
- add functions to retrieve the current data offset (needed for
  out-of-place reshaping space allocation) and the devices count
  from the kernel
- make libdm deptree code aware of reshape_len
- add LV flags for disk add/remove reshaping
- support import/export of the new 'struct lv_segment' members
- enhance lv_extend/_lv_reduce to cope with reshape_len
- add seg_is_*/segtype_is_* macros related to reshaping
- add target version check for reshaping
- grow rebuilds/writemostly bitmaps to 246 bit to support kernel maximal
- enhance libdm deptree code to support data_offset (out-of-place reshaping)
  and delta_disk (legs add/remove reshaping) target arguments

Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978

7 years agoman: improve line breaks
David Teigland [Thu, 23 Feb 2017 23:06:42 +0000 (17:06 -0600)]
man: improve line breaks

Borrow tricks from dmsetup man page to improve
the line break and indentation using .ad l, .ad b,
and soft break \%.

7 years agoman/help: change syntax to UNIT
David Teigland [Thu, 23 Feb 2017 20:24:28 +0000 (14:24 -0600)]
man/help: change syntax to UNIT

(Change to recent commit 3f4ecaf8c2.)

Use --foo Number[k|UNIT] to indicate that
the default units of the number is k, but other
units listed below are also accepted.

Previously, underlined/italic Unit was used,
like other of variables, but this UNIT is more
like a shortcut than an actual variable.

7 years agolvchange: reject writemostly/writebehind on raid1 during resync sourceware_master
Heinz Mauelshagen [Thu, 23 Feb 2017 14:09:29 +0000 (15:09 +0100)]
lvchange: reject writemostly/writebehind on raid1 during resync

The MD kernel raid1 personality does no use any writemostly leg as the primary.

In case a previous linear LV holding data gets upconverted to
raid1 it becomes the primary leg of the new raid1 LV and a full
resynchronization is started to update the new legs.

No writemostly and/or writebehind setting may be allowed during
this initial, full synchronization period of this new raid1 LV
(using the lvchange(8) command), because that would change the
primary (i.e the previous linear LV) thus causing data loss.

lvchange has a bug not preventing this scenario.

Fix rejects setting writemostly and/or writebehind on resychronizing raid1 LVs.

Once we have status in the lvm2 metadata about the linear -> raid upconversion,
we may relax this constraint for other types of resynchronization
(e.g. for user requested "lvchange --resync ").

New lvchange-raid1-writemostly.sh test is added to the test suite.

Resolves: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=855895

7 years agoman/help: improve the style of units indicator
David Teigland [Wed, 22 Feb 2017 22:50:30 +0000 (16:50 -0600)]
man/help: improve the style of units indicator

We use --foo Number[k|Units] to indicate that
the default units of the number is k, but other
units listed below are also accepted.

Capitalize and underline Units so it is consistent
with other variables, and reference it at the end.

Technically, the k should be bold, but this
tends to make the text visually hard to read
because of the excessive highlights scattered
everywhere.  So it's left normal text for now
(it's unlikely to confuse anyone.)

7 years agoman: indicate repeatable options
David Teigland [Wed, 22 Feb 2017 22:38:54 +0000 (16:38 -0600)]
man: indicate repeatable options

Print ... after a repeatable option in the OPTIONS section.
An alternative would be to just mention in the text description
that the option is repeatable.

7 years agoman: improve writemostly PV arg
David Teigland [Wed, 22 Feb 2017 21:20:44 +0000 (15:20 -0600)]
man: improve writemostly PV arg

7 years agotests: support zero_dev
Zdenek Kabelac [Wed, 22 Feb 2017 14:16:20 +0000 (15:16 +0100)]
tests: support zero_dev

When the test would need to try to write some large amount of data
we can give it 'zero' segments - for obvious reason such written data
can't be verified but in some test cases it doesn't really matter.

Usage follows  'error_dev' style.

For now test suite is not supporting any combination of
error/delay/zero segments so only 1 type could be used per PV.

7 years agotests: not slowing work with metadata
Zdenek Kabelac [Tue, 21 Feb 2017 12:06:00 +0000 (13:06 +0100)]
tests: not slowing work with metadata

Slows only data extents on a PV.

7 years agosnapshot: improve removal of active origin volume
Zdenek Kabelac [Wed, 22 Feb 2017 14:12:54 +0000 (15:12 +0100)]
snapshot: improve removal of active origin volume

Previously when lvremove tried to remove 'active' origin,
it had been asking for every 'snapshot' LV separately
and doing individual single snapshot removals first.

To be faster it now deactivates origin before removal
all connected snapshots.

This avoids multiple reloads of dm table for origin volume
which were unnecessary as origin was meant to be removed as well.

7 years agoWHATS_NEW: add entry
Zdenek Kabelac [Wed, 22 Feb 2017 14:20:23 +0000 (15:20 +0100)]
WHATS_NEW: add entry

7 years agoman/help: enclose each option in brackets
David Teigland [Tue, 21 Feb 2017 20:59:52 +0000 (14:59 -0600)]
man/help: enclose each option in brackets

Placing [] around each individual option is the most
common style, and it improves the readability.

7 years agoman/help: use separate common option lists
David Teigland [Tue, 21 Feb 2017 20:32:54 +0000 (14:32 -0600)]
man/help: use separate common option lists

There are two kinds of common options:
1. options common to all variants of a given command name
2. options common to all lvm commands

Previously, both kinds of common options were listed together
under "Common options".  Now the first are printed under
"Common options for command" (when needed), and the second
are printed under "Common options for lvm" (always).

7 years agoman: teaking output format
David Teigland [Tue, 21 Feb 2017 18:05:36 +0000 (12:05 -0600)]
man: teaking output format

7 years agocommands: adjust default help output
David Teigland [Tue, 21 Feb 2017 17:40:51 +0000 (11:40 -0600)]
commands: adjust default help output

Remove the "usage notes" which should just
live in the man pages.

When there are 3 or more variants of a command,
print all the options produces a lot of output,
so require --longhelp to print all the options
in these cases.

7 years agoman lvm: update see also list
David Teigland [Tue, 21 Feb 2017 17:13:23 +0000 (11:13 -0600)]
man lvm: update see also list

add several missing references
remove references to lvmdiskscan lvmchange

7 years agoman: expand type option description
David Teigland [Tue, 21 Feb 2017 17:09:01 +0000 (11:09 -0600)]
man: expand type option description

7 years agodmsetup: Indicate device repetition in usage summaries.
Alasdair G Kergon [Tue, 21 Feb 2017 11:25:18 +0000 (11:25 +0000)]
dmsetup: Indicate device repetition in usage summaries.

7 years agotests: some debug code
Zdenek Kabelac [Tue, 21 Feb 2017 08:40:21 +0000 (09:40 +0100)]
tests: some debug code

Checking if --deferred would make it any faster - but it's as slow
as without this new optional flag anyway (4.10).

7 years agotests: ensure first call is version test
Zdenek Kabelac [Tue, 21 Feb 2017 08:38:49 +0000 (09:38 +0100)]
tests: ensure first call is version test

Check 'dmsetup version'  is called before starting any more
advanced logic in $DM_DEV_DIR.

Call also replaces mkdir as it creates needed path with control node.

7 years agotests: make sure which PV is used for allocation
Zdenek Kabelac [Tue, 21 Feb 2017 08:38:04 +0000 (09:38 +0100)]
tests: make sure which PV is used for allocation

7 years agotests: paralelize creation and teardown
Zdenek Kabelac [Mon, 20 Feb 2017 23:49:49 +0000 (00:49 +0100)]
tests: paralelize creation and teardown

To speedup initial construction and destruction of test devices
(mainly in case more then 1 is needed)  call dmsetup
in parallel.

7 years agotests: use exclusive activation for mirror
Zdenek Kabelac [Mon, 20 Feb 2017 22:50:27 +0000 (23:50 +0100)]
tests: use exclusive activation for mirror

Test suite does not support clustered mirroring.

7 years agoman: use .HP instead of .TP
David Teigland [Mon, 20 Feb 2017 23:10:11 +0000 (17:10 -0600)]
man: use .HP instead of .TP

7 years agoman/help: print general raid type as "raid"
David Teigland [Mon, 20 Feb 2017 21:41:24 +0000 (15:41 -0600)]
man/help: print general raid type as "raid"

Instead of printing "raid*".  There are already
notes mentioning that "raid" refers to "raid<N>"

7 years agoman vgchange/lvchange: note special option usage
David Teigland [Mon, 20 Feb 2017 21:26:24 +0000 (15:26 -0600)]
man vgchange/lvchange: note special option usage

7 years agoman lvcreate: add special option notes at the start
David Teigland [Mon, 20 Feb 2017 21:17:10 +0000 (15:17 -0600)]
man lvcreate: add special option notes at the start

The --name, --size, --extents options deserve a special
note at the start of the man page, before appearing in
the usage section.

7 years agoman: add variables descriptions
David Teigland [Mon, 20 Feb 2017 21:09:02 +0000 (15:09 -0600)]
man: add variables descriptions

Add a section describing variables.

In the full options list, include common
options in the alphabetical listing instead
of at the end.

7 years agolvresize/lvextend: accept type option
David Teigland [Mon, 20 Feb 2017 17:23:46 +0000 (11:23 -0600)]
lvresize/lvextend: accept type option

The --type option has previously been accepted for
lvresize/lvextend.  Using it did not affect the operation
of the command.  The value was simply verified as matching
the current seg type of the LV.

7 years agotests: update lvresize testing
Zdenek Kabelac [Sun, 19 Feb 2017 21:59:21 +0000 (22:59 +0100)]
tests: update lvresize testing

Add missing tests for some lvresize acceptable options.

7 years agocleanup: simplier code
Zdenek Kabelac [Sat, 18 Feb 2017 18:46:22 +0000 (19:46 +0100)]
cleanup: simplier code

Already know string is 'lvm-' so use name[3].

7 years agocleanup: same sign for compare
Zdenek Kabelac [Sat, 18 Feb 2017 18:45:17 +0000 (19:45 +0100)]
cleanup: same sign for compare

7 years agocleanup: use multiline string
Zdenek Kabelac [Sat, 18 Feb 2017 18:09:24 +0000 (19:09 +0100)]
cleanup: use multiline string

7 years agocleanup: use const
Zdenek Kabelac [Sat, 18 Feb 2017 17:50:22 +0000 (18:50 +0100)]
cleanup: use const

7 years agoman: thin dmeventd plugin update
Zdenek Kabelac [Sun, 19 Feb 2017 14:50:19 +0000 (15:50 +0100)]
man: thin dmeventd plugin update

Document new dmeventd/thin_command lvm.conf configurable.

7 years agoman: dmstats update
Zdenek Kabelac [Sun, 19 Feb 2017 14:51:06 +0000 (15:51 +0100)]
man: dmstats update

Fixing colorization bugs

7 years agoman: dmsetup update
Zdenek Kabelac [Sun, 19 Feb 2017 14:50:49 +0000 (15:50 +0100)]
man: dmsetup update

7 years agocommands: fix memleak
Zdenek Kabelac [Sat, 18 Feb 2017 17:49:19 +0000 (18:49 +0100)]
commands: fix memleak

Keep all allocations 'mempool' allocated for simple cleanup.

7 years agolvresize: fix regressiong on accepting args
Zdenek Kabelac [Sun, 19 Feb 2017 18:08:48 +0000 (19:08 +0100)]
lvresize: fix regressiong on accepting args

Commit f45b68940667563e1a8d3bbd5d30864c04381bdf caused regression
of lvresize -m and --type  parameter

After fix this sequence may work when we also fix syntax description:

lvcreate -l1 -m1 -n lv1 vg
lvextend --type mirror -m1 -l+1 vg/lv1

7 years agoman/help: fix description of r|R unit
David Teigland [Fri, 17 Feb 2017 21:44:26 +0000 (15:44 -0600)]
man/help: fix description of r|R unit

7 years agoman: print space before built-in name
David Teigland [Fri, 17 Feb 2017 21:33:04 +0000 (15:33 -0600)]
man: print space before built-in name

print 'lvm config' not 'lvm-config'

7 years agoman pvmove: move details to notes
David Teigland [Fri, 17 Feb 2017 21:28:00 +0000 (15:28 -0600)]
man pvmove: move details to notes

7 years agoman: mention force behavior in various places
David Teigland [Fri, 17 Feb 2017 21:11:19 +0000 (15:11 -0600)]
man: mention force behavior in various places

7 years agoman lvmconfig: refer to typeconfig option name
David Teigland [Fri, 17 Feb 2017 20:46:10 +0000 (14:46 -0600)]
man lvmconfig: refer to typeconfig option name

7 years agoman/help: show recently added r|R unit
David Teigland [Fri, 17 Feb 2017 20:02:13 +0000 (14:02 -0600)]
man/help: show recently added r|R unit

7 years agoargs: in yes option mention qq for auto-no
David Teigland [Fri, 17 Feb 2017 20:42:13 +0000 (14:42 -0600)]
args: in yes option mention qq for auto-no

7 years agolvconvert: include swap behavior in generic pool syntax
David Teigland [Fri, 17 Feb 2017 17:45:13 +0000 (11:45 -0600)]
lvconvert: include swap behavior in generic pool syntax

For this syntax:
lvconvert --thinpool LV1 --poolmetadata LV2
lvconvert --cachepool LV1 --poolmetadata LV2

Restore the metadata swapping behavior in addition to
the pool creation behavior.  When LV1 is already a pool,
the metadata LV will be swapped with LV2.
When LV1 is not a pool, it will be converted to a
pool using the specified LV for metadata.

This syntax is no longer advertised because of the
ambiguous behavior.  The primary syntaxes for pool
creation and metadata swapping will be the advertised
methods.

7 years agocommands: compensate --uuid
Zdenek Kabelac [Fri, 17 Feb 2017 12:57:59 +0000 (13:57 +0100)]
commands: compensate --uuid

As we now user binary search - it's nondeterministict
which of the same 'args' will be give - so duplicates
need 'extra' care.

So provide same hack for output for --uuidstr_ARG as
for input.

Solves 'pvscan -u'.

7 years agocommands: some more dm wrappers
Zdenek Kabelac [Fri, 17 Feb 2017 12:36:57 +0000 (13:36 +0100)]
commands: some more dm wrappers

As man-generator is not liked with libdm as of now - some more wrappers.

7 years agocleanup: unused uninit vars
Zdenek Kabelac [Fri, 17 Feb 2017 12:16:27 +0000 (13:16 +0100)]
cleanup: unused uninit vars

7 years agocleanup: use strchr for 1-byte lookup
Zdenek Kabelac [Fri, 17 Feb 2017 12:09:06 +0000 (13:09 +0100)]
cleanup: use strchr for 1-byte lookup

7 years agocleanup: add comment for longer macro
Zdenek Kabelac [Fri, 17 Feb 2017 10:51:24 +0000 (11:51 +0100)]
cleanup: add comment for longer macro

7 years agocommands: optimize binary search
Zdenek Kabelac [Fri, 17 Feb 2017 09:00:43 +0000 (10:00 +0100)]
commands: optimize binary search

Since there is a lot of options and lot of searches,
use binary search to keep strcmp at minimum.

The interesting part is - alphabetically sorted array contains
duplicates and some of them are not the 'right anwer', so
after we find matching string but not matching long_ARG,
we may need to check if the surrouding strings are the right matching
one.

The single loops is used also for strictly define --foo_long
(i.e. --stripes)  and just differs at final part.

TODO1: replace strstr call with some flag (just like short_opt).
TODO2: drop '--' from being stored and tests by strcmp.

7 years agocommands: use dm_strncpy
Zdenek Kabelac [Fri, 17 Feb 2017 08:59:29 +0000 (09:59 +0100)]
commands: use dm_strncpy

Easier code using dm_strncpy() an dm_snprintf().

7 years agocommands: cheap optimisation for parser
Zdenek Kabelac [Fri, 17 Feb 2017 10:52:37 +0000 (11:52 +0100)]
commands: cheap optimisation for parser

Some low-hanging fruits to cut of signification number of strcmp calls.

7 years agocommands: track errors in command def parsing
David Teigland [Thu, 16 Feb 2017 21:26:42 +0000 (15:26 -0600)]
commands: track errors in command def parsing

When parsing command defs, track and report all
errors that are found.  Add an error return case
from define_commands so the standard error exit
path is used.

7 years agocommands: initialize commands[] once
David Teigland [Thu, 16 Feb 2017 19:59:52 +0000 (13:59 -0600)]
commands: initialize commands[] once

When using liblvm2cmd, a process can do multiple
init/exit calls, i.e.

lvm2_init(); lvm2_run(); lvm2_exit();
lvm2_init(); lvm2_run(); lvm2_exit();
...

define_commands() needs to set up the global commands[]
definitions only the first time.

7 years agocommands: avoid factoring options until needed
David Teigland [Thu, 16 Feb 2017 15:36:55 +0000 (09:36 -0600)]
commands: avoid factoring options until needed

7 years agohelp/man: remove commas from list of options
David Teigland [Wed, 15 Feb 2017 20:00:09 +0000 (14:00 -0600)]
help/man: remove commas from list of options

Using commas between options does not seem to
be done anywhere else, so remove them.

7 years agocommands: use dm wrappers for malloc/free
David Teigland [Wed, 15 Feb 2017 21:49:18 +0000 (15:49 -0600)]
commands: use dm wrappers for malloc/free

7 years agocommands: use existing vg/lv name parsing functions
David Teigland [Wed, 15 Feb 2017 21:06:52 +0000 (15:06 -0600)]
commands: use existing vg/lv name parsing functions

inside the new lv arg parsing function.

This includes getting the VG name from the env var,
and some added checks on the format of the vg/lv string.

7 years agolvcreate: fix LVM_VG_NAME detection
David Teigland [Wed, 15 Feb 2017 20:09:45 +0000 (14:09 -0600)]
lvcreate: fix LVM_VG_NAME detection

Commit d3af0e7528dbba30824379fc98cb4db437559ad5 was
not quite right in testing if the env var was set.

7 years agotoollib: skip dev prefix from lv names
David Teigland [Wed, 15 Feb 2017 19:42:35 +0000 (13:42 -0600)]
toollib: skip dev prefix from lv names

_get_arg_lvnames_using_options() was missing skip_dev_dir()

7 years agolvconvert: handle old arg quirk when combining snapshot
David Teigland [Wed, 15 Feb 2017 18:40:35 +0000 (12:40 -0600)]
lvconvert: handle old arg quirk when combining snapshot

The old ad hoc arg parsing when combining a split snapshot
allowed the first lv to have a vgname, but not the second.
Since lvconvert now uses the standard arg parsing in
process_each_lv(), the old one-off behavior requires a
work around.

7 years agolvcreate: LVM_VG_NAME applies even without name arg
David Teigland [Wed, 15 Feb 2017 18:07:51 +0000 (12:07 -0600)]
lvcreate: LVM_VG_NAME applies even without name arg

There was a small flaw in the logic regarding when LVM_VG_NAME
can replace a VG position arg.

7 years agoRevert "lvconvert: enable previous syntax to swap metadata"
David Teigland [Tue, 14 Feb 2017 22:02:54 +0000 (16:02 -0600)]
Revert "lvconvert: enable previous syntax to swap metadata"

This reverts commit 717363bb9427c02addeb22ef77396132cb30c782.

These alternate forms for swapping metadata cannot be
distinguished from the command for creating a pool.
If we were to add these alternate forms for swapping
metadata, we would need to overload the pool creation
command defs, making those definitions ambiguous.

7 years agocoverity cleanups
David Teigland [Tue, 14 Feb 2017 21:53:29 +0000 (15:53 -0600)]
coverity cleanups

7 years agoman-generator: fix compiler warnings
David Teigland [Tue, 14 Feb 2017 16:28:52 +0000 (10:28 -0600)]
man-generator: fix compiler warnings

7 years agoman/help: use separator in units list
David Teigland [Tue, 14 Feb 2017 16:20:38 +0000 (10:20 -0600)]
man/help: use separator in units list

h|H|b|B|... instead of hHbB...

7 years agocommands: skip parsing command defs for other command names
David Teigland [Tue, 14 Feb 2017 16:16:13 +0000 (10:16 -0600)]
commands: skip parsing command defs for other command names

The base command name can be used to skip parsing
command defs that will not be needed.

7 years agocommands: improve help/usage output
David Teigland [Tue, 14 Feb 2017 15:49:26 +0000 (09:49 -0600)]
commands: improve help/usage output

Replace --help --help with --long-help.
Some blank lines were needed.
Add 'lvm help all' to print help for all commands.

7 years agoMakefile: all_man also requires man-generator now
Alasdair G Kergon [Tue, 14 Feb 2017 13:24:31 +0000 (13:24 +0000)]
Makefile: all_man also requires man-generator now

7 years agomakefiles: missing deps
Zdenek Kabelac [Tue, 14 Feb 2017 09:24:25 +0000 (10:24 +0100)]
makefiles: missing deps

7 years agomakefiles: use configure vars
Zdenek Kabelac [Tue, 14 Feb 2017 08:48:24 +0000 (09:48 +0100)]
makefiles: use configure vars

Use binaries found in configure.

7 years agolibdm: move code for _stats_resize_group
Zdenek Kabelac [Tue, 14 Feb 2017 08:53:13 +0000 (09:53 +0100)]
libdm: move code for _stats_resize_group

Code is only needed when "fiemap.h" so keep it under single #ifdef.

7 years agoconfigure: update
Zdenek Kabelac [Mon, 13 Feb 2017 21:55:30 +0000 (22:55 +0100)]
configure: update

7 years agoactivation: trust 'pending' status reported by dmeventd
Zdenek Kabelac [Mon, 13 Feb 2017 21:50:19 +0000 (22:50 +0100)]
activation: trust 'pending' status reported by dmeventd

Only usleep when dmeventd reports 'pending' otherwise trust reported
state.

7 years agodmeventd: unify error handling
Zdenek Kabelac [Mon, 13 Feb 2017 18:00:59 +0000 (19:00 +0100)]
dmeventd: unify error handling

Always make sure the 'status' is release on 'error' path (thin pluging missed)
Make code looking same across all plugins.

7 years agocoverity cleanups for recent command defs commits
David Teigland [Mon, 13 Feb 2017 22:11:04 +0000 (16:11 -0600)]
coverity cleanups for recent command defs commits

7 years agoWHATS_NEW: changes for recent command defs
David Teigland [Mon, 13 Feb 2017 21:36:17 +0000 (15:36 -0600)]
WHATS_NEW: changes for recent command defs

7 years agoWHATS_NEW: items from command definitions patch set
David Teigland [Mon, 13 Feb 2017 21:22:26 +0000 (15:22 -0600)]
WHATS_NEW: items from command definitions patch set

7 years agolvconvert: enable previous syntax to swap metadata
David Teigland [Mon, 13 Feb 2017 20:40:53 +0000 (14:40 -0600)]
lvconvert: enable previous syntax to swap metadata

7 years agocommands: suggest --help if command doesn't match
David Teigland [Mon, 13 Feb 2017 19:46:17 +0000 (13:46 -0600)]
commands: suggest --help if command doesn't match

7 years agogenerate man pages
David Teigland [Fri, 10 Feb 2017 22:20:19 +0000 (16:20 -0600)]
generate man pages

7 years agoargs: use arg parsing function for region size
David Teigland [Tue, 7 Feb 2017 21:12:24 +0000 (15:12 -0600)]
args: use arg parsing function for region size

Consolidate the validation of the region size arg
in a new arg parsing function.

7 years agolvconvert: remove code for changing region size
David Teigland [Tue, 7 Feb 2017 21:01:30 +0000 (15:01 -0600)]
lvconvert: remove code for changing region size

from the generic raid type conversion code.

7 years agolvconvert: add command to change region size of a raid LV
David Teigland [Tue, 7 Feb 2017 17:52:13 +0000 (11:52 -0600)]
lvconvert: add command to change region size of a raid LV

7 years agovgchange: fix uint32 parsing of logicalvolume arg
David Teigland [Mon, 6 Feb 2017 22:10:09 +0000 (16:10 -0600)]
vgchange: fix uint32 parsing of logicalvolume arg

7 years agocommands: recognize raid variations
David Teigland [Mon, 6 Feb 2017 17:51:06 +0000 (11:51 -0600)]
commands: recognize raid variations

This page took 0.065004 seconds and 5 git commands to generate.