]> sourceware.org Git - lvm2.git/log
lvm2.git
10 years agocache: used cache-pool becomes invisible
Zdenek Kabelac [Sun, 9 Nov 2014 20:04:33 +0000 (21:04 +0100)]
cache: used cache-pool becomes invisible

While cache-pool is in use - it is considered invisible.

10 years agopools: prompt only when metadata lv exists
Zdenek Kabelac [Sat, 8 Nov 2014 12:53:13 +0000 (13:53 +0100)]
pools: prompt only when metadata lv exists

If the VG has no pool metadata volume, don't prompt about
removal of _pmspare.

10 years agopools: after fail of vg_write no restore
Zdenek Kabelac [Wed, 5 Nov 2014 19:27:51 +0000 (20:27 +0100)]
pools: after fail of vg_write no restore

Revert part of commit 51a29e60564d537,
it's probably bad idea to continue with any recovery, when
vg_write() or vg_commit() fail - so it's better to leave it as it is.

10 years agocleanup: avoid dm_list size calc in common path
Zdenek Kabelac [Tue, 4 Nov 2014 22:06:21 +0000 (23:06 +0100)]
cleanup: avoid dm_list size calc in common path

Calculate dm_list_size only when there is not just a single
ont segment in list - so it's only counted on error path.

10 years agoactivate: check all snap segs are inactive
Zdenek Kabelac [Wed, 5 Nov 2014 10:53:11 +0000 (11:53 +0100)]
activate: check all snap segs are inactive

When deactivating origin, we may have possibly left table in broken state,
where origin is not active, but snapshot volume is still present.

Let's ensure deactivation of origin detects also all associated
snapshots are inactive - otherwise do not skip deactivation.
(so i.e. 'vgchange -an' would detect errors)

10 years agolv: lv_active_change add needs_exclusive flag
Zdenek Kabelac [Wed, 5 Nov 2014 14:14:58 +0000 (15:14 +0100)]
lv: lv_active_change add needs_exclusive flag

Let's use this function for more activations in the code.

'needs_exlusive' will enforce exlusive type for any given LV.

We may want to activate LV in exlusive mode, even when we know
the LV (as is) supports non-exlusive activation as well.

lvcreate -ay   -> exclusive & local
lvcreate -aay  -> exclusive & local
lvcreate -aly  -> exclusive & local
lvcreate -aey  -> exclusive  (might be on any node).

10 years agosnapshot: no snapshot of any cache type LVs
Zdenek Kabelac [Tue, 4 Nov 2014 22:21:07 +0000 (23:21 +0100)]
snapshot: no snapshot of any cache type LVs

Unsupported as of now.

10 years agocleanup: keep 'fall through' switch case for LVSINFO for compiler to understand this...
Peter Rajnoha [Wed, 5 Nov 2014 09:46:52 +0000 (10:46 +0100)]
cleanup: keep 'fall through' switch case for LVSINFO for compiler to understand this properly

10 years agoreport: cleanup: simplify LVSINFO detection
Peter Rajnoha [Wed, 5 Nov 2014 09:35:38 +0000 (10:35 +0100)]
report: cleanup: simplify LVSINFO detection

LVSINFO is just a subtype of LVS report type with extra "info" ioctl
called for each LV reported (per output line) so include its processing
within "case LVS" switch, not as completely different kind of reporting
which may be misleading when reading the code.

There's already the "lv_info_needed" flag set in the _report fn, so
call the approriate reporting function based on this flag within the
"case LVS" switch line.

Actually the same is already done for LV is reported per segments
within the "case SEGS" switch line. So this patch makes the code more
consistent so it's processed the same way for all cases.

Also, this is a preparation for another and new subtype that will
be introduced later - the "LVSSTATUS" and "SEGSSTATUS" report type.

10 years agodmeventd: Add basic thread debugging messages.
Alasdair G Kergon [Tue, 4 Nov 2014 18:56:20 +0000 (18:56 +0000)]
dmeventd: Add basic thread debugging messages.

Only with -DDEBUG.

10 years agodmeventd: Include shutdown threads in responses.
Alasdair G Kergon [Tue, 4 Nov 2014 16:58:14 +0000 (16:58 +0000)]
dmeventd: Include shutdown threads in responses.

When responding to DM_EVENT_CMD_GET_REGISTERED_DEVICE no longer
ignore threads that have already been unregistered but which
are still present.

This means the caller can unregister a device and poll dmeventd
to ensure the monitoring thread has gone away before removing
the device.  If a device was registered and unregistered in quick
succession and then removed, WAITEVENT could run in parallel with
the REMOVE.

Threads are moved to the _thread_registry_unused list when they
are unregistered.

10 years agodmeventd: Remove redundant checks.
Alasdair G Kergon [Tue, 4 Nov 2014 16:55:42 +0000 (16:55 +0000)]
dmeventd: Remove redundant checks.

The status of threads in _thread_registry is always DM_THREAD_RUNNING
(zero).

DM_EVENT_REGISTRATION_PENDING is never stored in thread->events.

10 years agotests: duplicate update of config
Zdenek Kabelac [Tue, 4 Nov 2014 14:07:40 +0000 (15:07 +0100)]
tests: duplicate update of config

10 years agothin: new pool is activated without overlay
Zdenek Kabelac [Tue, 4 Nov 2014 09:33:35 +0000 (10:33 +0100)]
thin: new pool is activated without overlay

Activate of new/unused/empty thin pool volume skips
the 'overlay' part and directly provides 'visible' thin-pool LV to the user.

Such thin pool still gets 'private' -tpool UUID suffix for easier
udev detection of protected lvm2 devices, and also gets udev flags to
avoid any scan.

Such pool device is 'public' LV with regular /dev/vgname/poolname link,
but it's still 'udev' hidden device for any other use.

To display proper active state we need to do few explicit tests
for this condition.

Before it's used for any lvm2 thin volume, deactivation is
now needed to avoid any 'race' with external usage.

10 years agothin: check for new pool before creating thin volume
Zdenek Kabelac [Tue, 4 Nov 2014 14:08:15 +0000 (15:08 +0100)]
thin: check for new pool before creating thin volume

Call check_new_thin_pool() to detect in-use thin-pool.
Save extra reactivation of thin-pool when thin pool is not active.
(it's now a bit more expensive to invoke thin_check for new pools.)

For new pools:

We now active locally exclusively thin-pool as 'public' LV.
Validate transaction_id is till 0.
Deactive.
Prepare create message for thin-pool and exclusively active pool.
Active new thin LV.
And deactivate thin pool if it used to be inactive.

10 years agothin: validate unused thin pool
Zdenek Kabelac [Tue, 4 Nov 2014 14:06:55 +0000 (15:06 +0100)]
thin: validate unused thin pool

Function tests, that given new thin pool is still unused.

10 years agothin: no validation skip of new thin pools
Zdenek Kabelac [Tue, 4 Nov 2014 08:51:58 +0000 (09:51 +0100)]
thin: no validation skip of new thin pools

Allowing 'external' use of thin-pools requires to validate even
so far 'unused' new thin pools.

Later we may have 'smarter' way to resolve which thin-pools are
owned by lvm2 and which are external.

10 years agothin: add lv_is_new_thin_pool
Zdenek Kabelac [Tue, 4 Nov 2014 09:31:28 +0000 (10:31 +0100)]
thin: add lv_is_new_thin_pool

Recognize 'new' (and never used) lvm2 thin pool - it has 'transaction_id' == 0
(lv_is_used_thin_pool() has slightly different meaning).

10 years agolibdm: allow to activate any pool with tid == 0
Zdenek Kabelac [Tue, 4 Nov 2014 08:42:15 +0000 (09:42 +0100)]
libdm: allow to activate any pool with tid == 0

When transaction_id is set 0 for thin-pool, libdm avoids validation
of thin-pool, unless there are real messages to be send to thin-pool.
This relaxes strict policy which always required to know
in front transaction_id for the kernel target.

It now allows to activate thin-pool with any transaction_id
(when transaction_id is passed in)

It is now upto application to validate transaction_id from life
thin-pool volume with transaction_id within it's own metadata.

10 years agolvconvert: convert missing sizes to extents
Zdenek Kabelac [Tue, 4 Nov 2014 13:14:52 +0000 (14:14 +0100)]
lvconvert: convert missing sizes to extents

After initial 'size' usage converted to extents, continue to use
only extents.

(in-release fix).

10 years agotests: thin
Zdenek Kabelac [Thu, 30 Oct 2014 22:18:40 +0000 (23:18 +0100)]
tests: thin

10 years agotests: usage of -m0 -Mn
Zdenek Kabelac [Fri, 31 Oct 2014 22:18:31 +0000 (23:18 +0100)]
tests: usage of -m0 -Mn

Test -m0 passed with types.
Check --readahead and thins.

10 years agocleanup: use lv_is_pool
Zdenek Kabelac [Sun, 2 Nov 2014 18:43:35 +0000 (19:43 +0100)]
cleanup: use lv_is_pool

Use lv_is_pool() to detect both pool versions.

10 years agocleanup: use logical_volume* directly
Zdenek Kabelac [Fri, 31 Oct 2014 09:15:00 +0000 (10:15 +0100)]
cleanup: use logical_volume* directly

10 years agocleanup: consistent name
Zdenek Kabelac [Fri, 31 Oct 2014 10:52:30 +0000 (11:52 +0100)]
cleanup: consistent name

10 years agocleanup: shorter code
Zdenek Kabelac [Fri, 31 Oct 2014 12:36:54 +0000 (13:36 +0100)]
cleanup: shorter code

10 years agocleanup: rename function
Zdenek Kabelac [Sun, 2 Nov 2014 19:59:57 +0000 (20:59 +0100)]
cleanup: rename function

Make more clear dm_info type.

10 years agocleanup: standard params ordering
Zdenek Kabelac [Fri, 31 Oct 2014 10:31:22 +0000 (11:31 +0100)]
cleanup: standard params ordering

Pass lvconvert_params as last arg.

10 years agocleanup: init of lcp
Zdenek Kabelac [Fri, 31 Oct 2014 09:25:05 +0000 (10:25 +0100)]
cleanup: init of lcp

Use struct initializer instead of memset().

10 years agocleanup: correcting tracing
Zdenek Kabelac [Mon, 3 Nov 2014 11:52:24 +0000 (12:52 +0100)]
cleanup: correcting tracing

Use log_error for real error.

10 years agocleanup: use arg_is_set
Zdenek Kabelac [Fri, 31 Oct 2014 10:41:03 +0000 (11:41 +0100)]
cleanup: use arg_is_set

10 years agocache: report stats for cache volumes usage
Zdenek Kabelac [Mon, 3 Nov 2014 11:38:29 +0000 (12:38 +0100)]
cache: report stats for cache volumes usage

Show some stats with 'lvs'
Display same info for active cache volume and cache-pool.

data% - #used cache blocks/#total cache blocks
meta% - #used metadata blocks/#total metadata blocks
copy% - #dirty/#used cache blocks

TODO: maybe there is a better mapping
 - should be seen as first-try-and-see.

10 years agocache: wipe cache-pool before reuse
Zdenek Kabelac [Sun, 2 Nov 2014 18:41:46 +0000 (19:41 +0100)]
cache: wipe cache-pool before reuse

Before we reuse cache-pool - we need to ensure metadata volume
has wiped header.

10 years agocache: support activation of empty cache-pool
Zdenek Kabelac [Sun, 2 Nov 2014 18:34:50 +0000 (19:34 +0100)]
cache: support activation of empty cache-pool

When the cache pool is unused, lvm2 code will internally
allow to activate such cache-pool.

Cache-pool is activate as metadata LV, so lvm2 could easily
wipe such volume before cache-pool is reused.

10 years agocache: lv_cache_status
Zdenek Kabelac [Mon, 3 Nov 2014 11:52:29 +0000 (12:52 +0100)]
cache: lv_cache_status

Replace lv_cache_block_info() and lv_cache_policy_info()
with lv_cache_status() which directly returns
dm_status_cache structure together with some calculated
values.

After use  mem pool stored inside lv_status_cache structure
needs to be destroyed.

10 years agocleanup: add arg to _setup_task
Zdenek Kabelac [Sun, 2 Nov 2014 16:22:32 +0000 (17:22 +0100)]
cleanup: add arg to _setup_task

Add init of  no_open_count into _setup_task().
Report problem as warning (cannot happen anyway).

Also drop some duplicated debug messages - we have already
printed the info about operation so make log a bit shorter.

10 years agocleanup: rename virtual_extents
Zdenek Kabelac [Fri, 31 Oct 2014 10:33:19 +0000 (11:33 +0100)]
cleanup: rename virtual_extents

Use standard 'virtual_extents' naming.
Move virtual_size into  'lcp' struct out of lvcreate_params.

10 years agocleanup: use extents to pass size to /lib
Zdenek Kabelac [Thu, 30 Oct 2014 12:04:06 +0000 (13:04 +0100)]
cleanup: use extents to pass size to /lib

Lib takes sizes in extens - do the same for pool_metadata.

10 years agocache: add wipe_cache_pool
Zdenek Kabelac [Sun, 2 Nov 2014 17:36:41 +0000 (18:36 +0100)]
cache: add wipe_cache_pool

Add function for wiping cache pool volume.
Only unused cache-pool could be wiped.

10 years agocache: allow deactivation of empty pool
Zdenek Kabelac [Sun, 2 Nov 2014 16:48:21 +0000 (17:48 +0100)]
cache: allow deactivation of empty pool

Tool will use internal activation of unused cache pool to
clear metadata area before next use of cache-pool.
So allow to deactivation unused pool in case some error
case happend and we were not able to deactivation pool
right after metadata wipe.

10 years agocache: convert thin-pool
Zdenek Kabelac [Sun, 2 Nov 2014 16:03:14 +0000 (17:03 +0100)]
cache: convert thin-pool

Support caching of thin-pool.

lvresize needs to be resolved - so far, user
has to manually drop cache-pool before resizing.

10 years agothin: allow to convert chunksize of empty pool
Zdenek Kabelac [Mon, 3 Nov 2014 13:00:09 +0000 (14:00 +0100)]
thin: allow to convert chunksize of empty pool

When pool is not used, allow to change its chunksize.

10 years agothin: reporting of thin volumes simplified
Zdenek Kabelac [Mon, 3 Nov 2014 11:38:24 +0000 (12:38 +0100)]
thin: reporting of thin volumes simplified

Simplify reporting of percentage.
Allows easier support for more types.

Move testing of device availability into activate.c

10 years agopool: validate sizes
Zdenek Kabelac [Fri, 31 Oct 2014 10:41:49 +0000 (11:41 +0100)]
pool: validate sizes

0 size are not supported as well as negative.

10 years agofilters: change return code
Zdenek Kabelac [Fri, 31 Oct 2014 19:25:25 +0000 (20:25 +0100)]
filters: change return code

No data for writing should be seen as 'dump' success.
(reduces one <bactrace> in the log) - it has no other
effect.

10 years agolvcreate: tollerate defaults
Zdenek Kabelac [Fri, 31 Oct 2014 12:37:39 +0000 (13:37 +0100)]
lvcreate: tollerate defaults

lvcreate -m0 and -Mn goes with anything.
Read ahead works either with pools or thin/cache, but not with both.

10 years agolibdm: init char array
Zdenek Kabelac [Fri, 31 Oct 2014 12:04:46 +0000 (13:04 +0100)]
libdm: init char array

When non-root uses dm_check_version() it's been printing some unit
values from stack. So always init those vars.

10 years agotests: update raid sync
Zdenek Kabelac [Thu, 30 Oct 2014 23:37:35 +0000 (00:37 +0100)]
tests: update raid sync

10 years agotests: wait for raid sync
Zdenek Kabelac [Thu, 30 Oct 2014 23:31:54 +0000 (00:31 +0100)]
tests: wait for raid sync

10 years agotests: explicitely use old snapshots
Zdenek Kabelac [Thu, 30 Oct 2014 23:28:25 +0000 (00:28 +0100)]
tests: explicitely use old snapshots

10 years agotests: lvcreate snapshot usage update
Zdenek Kabelac [Thu, 30 Oct 2014 22:16:03 +0000 (23:16 +0100)]
tests: lvcreate snapshot usage update

10 years agotests: use aux func to disable device
Zdenek Kabelac [Sun, 26 Oct 2014 19:41:49 +0000 (20:41 +0100)]
tests: use aux func to disable device

10 years agotests: raid syncaction test
Zdenek Kabelac [Sat, 25 Oct 2014 14:03:44 +0000 (16:03 +0200)]
tests: raid syncaction test

Add sync wait for syncaction of raid1 test.
--syncaction requires raid to be in sync first.

10 years agocleanup: shorter code
Zdenek Kabelac [Thu, 30 Oct 2014 12:04:41 +0000 (13:04 +0100)]
cleanup: shorter code

10 years agocleanup: extents_from_size is 32bit value
Zdenek Kabelac [Thu, 30 Oct 2014 10:38:49 +0000 (11:38 +0100)]
cleanup: extents_from_size is 32bit value

Current lvm2 does support only 32bit extents count.

10 years agocleanup: prints and stacks
Zdenek Kabelac [Thu, 30 Oct 2014 10:38:03 +0000 (11:38 +0100)]
cleanup: prints and stacks

10 years agocleanup: remove unneeded assign
Zdenek Kabelac [Tue, 28 Oct 2014 19:09:08 +0000 (20:09 +0100)]
cleanup: remove unneeded assign

10 years agometadata: add extents_from_percent_size
Zdenek Kabelac [Thu, 30 Oct 2014 22:43:12 +0000 (23:43 +0100)]
metadata: add extents_from_percent_size

Add API call to calculate extents from percentage value.
Size is based in DM_PERCENT_1 units.
(Supporting decimal point number).
This commit is preparing functionality for more global
usage of % with i.e. --size option.

10 years agopv_manip: check for pe_ranges
Zdenek Kabelac [Tue, 28 Oct 2014 10:02:58 +0000 (11:02 +0100)]
pv_manip: check for pe_ranges

10 years agolvmcmdline: support size_mb_arg_with_percent
Zdenek Kabelac [Thu, 30 Oct 2014 13:52:37 +0000 (14:52 +0100)]
lvmcmdline: support size_mb_arg_with_percent

New size_mb_arg_with_percent is able to read  size_mb_arg
but also it's able to read % values.

Percent parsing is share with int_arg_with_sign_and_percent.

10 years agolvmcmdline: extra support for decimal point
Zdenek Kabelac [Tue, 28 Oct 2014 10:20:33 +0000 (11:20 +0100)]
lvmcmdline: extra support for decimal point

If root has locales with different decimal point then '.'
(i.e. Czech with ',') lets be tolerant and retry with
"C" locales in the case '.' is found during parse of number.

Locales are then restored back.

10 years agosegtype: drop cmdcontex pointer
Zdenek Kabelac [Mon, 27 Oct 2014 09:50:52 +0000 (10:50 +0100)]
segtype: drop cmdcontex pointer

Users of context provide their cmd pointer,
so don't keep it inside segtype.

10 years agolvcreate: improving recent lvcreate updates
Zdenek Kabelac [Thu, 30 Oct 2014 22:36:07 +0000 (23:36 +0100)]
lvcreate: improving recent lvcreate updates

We need to be able to parse:

lvcreate --type snapshot -s
lvcreate --type thin -s
lvcreate --type cache-pool -H

10 years agoman: update lvcreate with sparse
Zdenek Kabelac [Thu, 30 Oct 2014 18:44:42 +0000 (19:44 +0100)]
man: update lvcreate with sparse

Document sparse device creation and its default segtype selection.

10 years agoconfigure: autoreconf
Zdenek Kabelac [Thu, 30 Oct 2014 16:07:58 +0000 (17:07 +0100)]
configure: autoreconf

Just rebuild after configure.in update.

10 years agosparse: configurable type for sparse volumes
Zdenek Kabelac [Thu, 30 Oct 2014 22:38:02 +0000 (23:38 +0100)]
sparse: configurable type for sparse volumes

Support compile type configurable defaults for creation
of sparse volumes.

By default now create 'thin-pools' for sparse volumes.
Use the global/sparse_segtype_default to switch back to old
snapshots if needed.

Apply the same compile logic for newly introduces mirror/raid1 options.

10 years agoconfigure: option cleanup
Zdenek Kabelac [Thu, 30 Oct 2014 16:13:05 +0000 (17:13 +0100)]
configure: option cleanup

Drop double [[ ]] around default args.
(AC_HELP_STRING is already quoted so double [[]] are not needed).

10 years agotest: for issue fixed in previous commit 2f7f6932dcd450ba75fe590aba8c09838d2618dc
Peter Rajnoha [Mon, 27 Oct 2014 10:53:01 +0000 (11:53 +0100)]
test: for issue fixed in previous commit 2f7f6932dcd450ba75fe590aba8c09838d2618dc

10 years agoreport: selection: fix selection criteria to not match reserved values when using...
Peter Rajnoha [Mon, 27 Oct 2014 10:25:08 +0000 (11:25 +0100)]
report: selection: fix selection criteria to not match reserved values when using >, <, >=, <

Some values are reserved for special purpose like 'undefined', 'unmanaged' etc.
When using >, <, >= and < comparison operators where the range is considered,
do not include reserved values as proper values in this range which
would otherwise result in not so obvious criteria match (as the reserved value is
actually transparent for the user). It's incorrect.

Example scenario:
$ vgs -o vg_name,vg_mda_copies vg1 vg2
  VG   #VMdaCps
  vg1          1
  vg2  unmanaged

The "unmanaged" is actually mapped onto reserved value
18446744073709551615 (2^64 - 1) internally.

Such reseved value is already caught on selection criteria input
properly:

$ vgs -o name,vg_mda_copies vg1 vg2 -S 'vg_mda_copies=18446744073709551615'
  Numeric value 18446744073709551615 found in selection is reserved.

However, we still need to fix situaton where the reserved value may be
included in resulting range:

Before this patch:
$ vgs -o vg_name,vg_mda_copies vg1 vg2 -S 'vg_mda_copies >= 1'
  VG   #VMdaCps
  vg1          1
  vg2  unmanaged

With this patch applied:
$ vgs -o vg_name,vg_mda_copies vg1 vg2 -S 'vg_mda_copies >= 1'
  VG   #VMdaCps
  vg1         1

From the examples above, we can see that without this patch applied,
the vg_mda_copies >= 1 also matched the reserved value 18446744073709551615
(which is represented by the "unamanged" string on report). When
applying the operators, such values must be skipped! They're meant to
be matched only against their string representation only, e.g.:

$ vgs -o name,vg_mda_copies vg1 vg2 -S 'vg_mda_copies=unmanaged'
  VG   #VMdaCps
  vg2  unmanaged

...or any synonyms:

$ vgs -o name,vg_mda_copies vg1 vg2 -S 'vg_mda_copies=undefined'
  VG   #VMdaCps
  vg2  unmanaged

10 years agopools: workaround hints
Zdenek Kabelac [Sun, 26 Oct 2014 18:45:17 +0000 (19:45 +0100)]
pools: workaround hints

Missing code for stacked hint estimation

10 years agotests: update cache creation tests
Zdenek Kabelac [Sun, 26 Oct 2014 15:19:30 +0000 (16:19 +0100)]
tests: update cache creation tests

10 years agotests: lvcreate-update
Zdenek Kabelac [Sun, 26 Oct 2014 06:29:25 +0000 (07:29 +0100)]
tests: lvcreate-update

Test with old mirror type.

10 years agotests: pytest update
Zdenek Kabelac [Sun, 26 Oct 2014 06:27:23 +0000 (07:27 +0100)]
tests: pytest update

10 years agolvcreate: delay check for free extents
Zdenek Kabelac [Sun, 26 Oct 2014 15:18:53 +0000 (16:18 +0100)]
lvcreate: delay check for free extents

As the rounding for cache creation may change the value of extents
postpone check for free extents.

10 years agocache: support more args
Zdenek Kabelac [Sun, 26 Oct 2014 15:17:14 +0000 (16:17 +0100)]
cache: support more args

Unlike with thin-pool - with cache we support all args also
directly when create cache volume.

So the result of 'separate' cache-pool creation and setting its
options should give same result as specifying those args
during cache creation.

Cache-pool values are used as defaults if the params are
not specified with cache creation.

10 years agothin: simplify thin volume creation
Zdenek Kabelac [Sun, 26 Oct 2014 07:13:59 +0000 (08:13 +0100)]
thin: simplify thin volume creation

Move code for creation of thin volume into a single place
out of lv_extend().  This allows to drop extra pool arg
for alloc_lv_segment() && lv_extend() and makes code
more easier to read and follow.

10 years agocache: apply chunk rounding also for cache creation.
Zdenek Kabelac [Sun, 26 Oct 2014 17:17:59 +0000 (18:17 +0100)]
cache: apply chunk rounding also for cache creation.

When we create volumes with chunk size bigger then extent size
we try to round up to some nearest chunk boundary.
Until now we did this for thins - use same logic for
cache volumes.

10 years agopools: prefetch pool_lv and origin_lv
Zdenek Kabelac [Sun, 26 Oct 2014 17:17:40 +0000 (18:17 +0100)]
pools: prefetch pool_lv and origin_lv

Load pool_lv and origin_lv at a single place and
use it for more types as they need them.

10 years agolvm2app: update to new lv_create_single API
Zdenek Kabelac [Sun, 26 Oct 2014 06:25:30 +0000 (07:25 +0100)]
lvm2app: update to new lv_create_single API

lv_create_single is more type based.

10 years agovg_read: Remove unused READ_WITHOUT_LOCK.
David Teigland [Fri, 24 Oct 2014 20:54:04 +0000 (21:54 +0100)]
vg_read: Remove unused READ_WITHOUT_LOCK.

Unused since 67a7b7a87da65b2350f975272e581be5f41976e0:
  report: Iterate over labels instead of PVs for label-only reports.
(included in 2.02.105).

10 years agotests: syncaction needs kernel fix
Zdenek Kabelac [Tue, 21 Oct 2014 08:52:57 +0000 (10:52 +0200)]
tests: syncaction needs kernel fix

Add 'should' as we currently cannot pass this test.

FIXME:
Add properly wrapper to not use 'should' with fixed kernel.

10 years agotests: new lvcreate functionality
Zdenek Kabelac [Mon, 20 Oct 2014 12:56:55 +0000 (14:56 +0200)]
tests: new lvcreate functionality

Fixed syntax parsing means that some commands that used to work are now
failing. Particullary this case:

$ invalid lvcreate -l1 --type thin vg/pool
> Needs to fail becase thin type LV needs  --virtualsize

$ invalid lvcreate --type snapshot vg/lv1
> Needs to fail because old-snapshot segment type needs --size

Some reported error messages have been also updated.

10 years agotests: lvcreate usage
Zdenek Kabelac [Sat, 11 Oct 2014 07:12:56 +0000 (09:12 +0200)]
tests: lvcreate usage

10 years agomirror: extra parsing for mirrorlog arg
Zdenek Kabelac [Wed, 22 Oct 2014 19:02:29 +0000 (21:02 +0200)]
mirror: extra parsing for mirrorlog arg

Put validation of mirrorlog arg into a separate function.

10 years agoman: lvconvert/create updates
Zdenek Kabelac [Tue, 7 Oct 2014 12:48:38 +0000 (14:48 +0200)]
man: lvconvert/create updates

More description for cache support.
Introduce --pooldatasize option.

10 years agocache: separate func for pool/origin validation
Zdenek Kabelac [Wed, 22 Oct 2014 19:01:03 +0000 (21:01 +0200)]
cache: separate func for pool/origin validation

Split validate_lv_cache_create() into 2 function
once is called for pool validation other for origin.

It's less misleading the accepting NULLs.

10 years agosegments: mark more of them unzeroable
Zdenek Kabelac [Mon, 20 Oct 2014 12:57:24 +0000 (14:57 +0200)]
segments: mark more of them unzeroable

Use segment flags to avoid zeroing of cache, cache pool
snapshot and thin pool segments.

We never want to zero these segment types.

Note:
Snapshot COW and Cache origin are created as stripes
thus are then properly zeroed.

10 years agolvcreate: check for conflicting -Zy -Wy
Zdenek Kabelac [Tue, 21 Oct 2014 18:50:26 +0000 (20:50 +0200)]
lvcreate: check for conflicting -Zy -Wy

Let the finaly state of zero & wipe_signature to be
resolved later together with all the types.

Don't play with zero assigment and segtype flag
(i.e. thin-pool -Z  has different meaning).

Check if the passed options do allow requested zeroing/wiping.

lvcreate without -Z or -W will fallback to warning if the device
cannot be zeroed, however if user requested them explicitely
it will give user error.

10 years agotoollib: persistent major minor
Zdenek Kabelac [Thu, 23 Oct 2014 12:26:16 +0000 (14:26 +0200)]
toollib: persistent major minor

Deduce -M from presence of --minor, --major option if
not specified on command line.

10 years agolvcreate: new validation code
Zdenek Kabelac [Fri, 24 Oct 2014 13:26:41 +0000 (15:26 +0200)]
lvcreate: new validation code

Refactor lvcreate code.

Prefer to use arg_outside_list_is_set() so we get automatic 'white-list'
validation of supported options with different segment types.

Drop used lp->cache, lp->cache and use seg_is_cache(), seg_is_thin()

Draw clear border where is the last moment we could change create
segment type.

When segment type is given with --type - do not allow it to be changed
later.

Put together tests related to individual segment types.

Finish cache conversion at proper part of lv_manip code after
the vg_metadata are written - so we could correcly clean-up created
stripe LV for cache volume.

10 years agopools: error path removes metadata
Zdenek Kabelac [Fri, 24 Oct 2014 13:21:48 +0000 (15:21 +0200)]
pools: error path removes metadata

When pool volume is create - it has already managed to update metadata
once within lv_extend - so revert new created LV here.

10 years agolvcreate: handle linear segment
Zdenek Kabelac [Sat, 11 Oct 2014 16:36:40 +0000 (18:36 +0200)]
lvcreate: handle linear segment

Put in code to accept 'linear' segment type
(when specified stripes cannot be used)

Also report 'error' when unknown type is specified.

10 years agopool: better error path handling
Zdenek Kabelac [Fri, 24 Oct 2014 12:22:25 +0000 (14:22 +0200)]
pool: better error path handling

Move test for size of new LV names in front before
any creation of LV.

Properly check striped  segtype kernel presence,
since passed 'segtype' is already tested.

Keep deactivation error path local to wiping part of the function.

Create metadata with temporary flag (it's activated, zeroed
and deactivated).

10 years agocleanup: code move
Zdenek Kabelac [Wed, 22 Oct 2014 11:53:36 +0000 (13:53 +0200)]
cleanup: code move

Update comment and move code to new place.
Gets updated with next commit.

10 years agocleanup: function embeded
Zdenek Kabelac [Wed, 22 Oct 2014 11:40:16 +0000 (13:40 +0200)]
cleanup: function embeded

It's used just in one place now.

10 years agocleanup: better stack tracing
Zdenek Kabelac [Wed, 22 Oct 2014 11:38:47 +0000 (13:38 +0200)]
cleanup: better stack tracing

Show proper backtrace on error path.

10 years agooptions: introduce pooldatasize option
Zdenek Kabelac [Sat, 18 Oct 2014 08:58:30 +0000 (10:58 +0200)]
options: introduce pooldatasize option

Introduce new option to specify pool data size.
This will be user to create i.e.  cache & cachepool at once.
And possible for thin external origin snapshot.

This is only very basic patch to enable options, the
real working code will come later.

10 years agocleanup: use matching flags for permissions
Zdenek Kabelac [Fri, 24 Oct 2014 11:07:02 +0000 (13:07 +0200)]
cleanup: use matching flags for permissions

Since our status bits are 64b - use uint64_t for permissions.

10 years agocleanup: lv_manip drops duplicated internal error
Zdenek Kabelac [Thu, 23 Oct 2014 10:40:15 +0000 (12:40 +0200)]
cleanup: lv_manip drops duplicated internal error

No reason to check the same condition twice with internal error.

10 years agocleanup: use arg_is_set
Zdenek Kabelac [Tue, 21 Oct 2014 10:03:07 +0000 (12:03 +0200)]
cleanup: use arg_is_set

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