]> sourceware.org Git - lvm2.git/log
lvm2.git
11 years agotests: update test
Zdenek Kabelac [Tue, 4 Jun 2013 08:37:08 +0000 (10:37 +0200)]
tests: update test

Fix !test -> test !

11 years agotests: compilation updates
Zdenek Kabelac [Mon, 3 Jun 2013 10:09:21 +0000 (12:09 +0200)]
tests: compilation updates

11 years agotests: configurable LVM_TEST_RESULTS
Zdenek Kabelac [Mon, 3 Jun 2013 10:07:31 +0000 (12:07 +0200)]
tests: configurable  LVM_TEST_RESULTS

Make LVM_TEST_RESULTS configurable
Cleanup results dir on 'make clean'

11 years agomakefiles: cleanup update
Zdenek Kabelac [Mon, 3 Jun 2013 10:05:02 +0000 (12:05 +0200)]
makefiles: cleanup update

Cleanup also test dir.
Distclean unit tests.

11 years agotests: bigger alignment
Zdenek Kabelac [Sun, 2 Jun 2013 21:57:53 +0000 (23:57 +0200)]
tests: bigger alignment

Test names got a bit longer...

11 years agocleanup: code update and typo fix
Zdenek Kabelac [Mon, 3 Jun 2013 06:38:07 +0000 (08:38 +0200)]
cleanup: code update and typo fix

Use the same style of loop for all filter functions.
Fix type compsoite -> Composite.

11 years agofilters: dump filter returns error code
Zdenek Kabelac [Sun, 2 Jun 2013 21:27:34 +0000 (23:27 +0200)]
filters: dump filter returns error code

Add int return value from dump() function.
Report stack for error case.
Update composable filter.

11 years agofilters: compile fix
Zdenek Kabelac [Sun, 2 Jun 2013 21:16:41 +0000 (23:16 +0200)]
filters: compile fix

Add missing cast in previous commit.

11 years agofilters: update composable filter
Zdenek Kabelac [Sun, 2 Jun 2013 19:59:57 +0000 (21:59 +0200)]
filters: update composable filter

Last commit made dump filter only partially composable.
Add remaining functionality and also support composable wipe,
which is needed, when i.e. vgscan needs to remove cache.

(in release fix)

11 years agotests: clear write to /tmp
Zdenek Kabelac [Sat, 1 Jun 2013 22:27:00 +0000 (00:27 +0200)]
tests: clear write to /tmp

11 years agotests: do not expose duplicate PVs in vgimportclone.sh
Petr Rockai [Mon, 27 May 2013 12:48:45 +0000 (14:48 +0200)]
tests: do not expose duplicate PVs in vgimportclone.sh

11 years agotests: collect all test results in files
Petr Rockai [Mon, 27 May 2013 02:26:33 +0000 (04:26 +0200)]
tests: collect all test results in files

Use files  for later processing with suffix .txt
to avoid mime type confusion.

11 years agotests: run all the test flavours in a single batch
Petr Rockai [Mon, 27 May 2013 01:12:03 +0000 (03:12 +0200)]
tests: run all the test flavours in a single batch

This means that a test failure in one flavour no longer prevents all the
subsequent flavours from running. We also get an aggregate summary at
the end of the entire batch, instead of summaries interspersed with
progress output. Do not fail when flavour overrides are empty

11 years agotests: make filter extension more robust
Petr Rockai [Mon, 27 May 2013 00:03:00 +0000 (02:03 +0200)]
tests: make filter extension more robust

11 years agotests: set up global_filter instead of just filter
Petr Rockai [Sun, 26 May 2013 22:53:03 +0000 (00:53 +0200)]
tests: set up global_filter instead of just filter

For testing setup global_filter.

11 years agotests: skip the double log failure test on 2.6
Petr Rockai [Sun, 26 May 2013 16:53:29 +0000 (18:53 +0200)]
tests: skip the double log failure test on 2.6

On 2.6 kernels this deadlocks.

11 years agotests: add hide_dev/unhide_dev to aux
Petr Rockai [Sun, 28 Apr 2013 20:41:15 +0000 (22:41 +0200)]
tests: add hide_dev/unhide_dev to aux

Add helper func for easy filter adjustment.

11 years agolvmetad: no use of persistent filter with lvmetad
Petr Rockai [Sun, 26 May 2013 23:55:14 +0000 (01:55 +0200)]
lvmetad: no use of persistent filter with lvmetad

11 years agofilters: toplevel filter not persistent
Petr Rockai [Sun, 26 May 2013 22:49:40 +0000 (00:49 +0200)]
filters: toplevel filter not persistent

Add a generic dump operation to filters and make the composite filter call
through to its components. Previously, when global filter was set, the code
would treat the toplevel composite filter's private area as if it belonged a
persistent filter, trying to write nonsense into a non-sensical file.
Also deal with NULL cmd->filter gracefully.

11 years agovgimportclone: override global_filter in lvm.conf
Petr Rockai [Sun, 28 Apr 2013 20:38:22 +0000 (22:38 +0200)]
vgimportclone: override global_filter in lvm.conf

The global filter in system's lvm.conf may conflict with the custom filter we
set up in vgimportclone (they can easily fail to intersect). Since we explicitly
avoid talking to lvmetad in vgimportclone, it is safe and reasonable to do so.

11 years agotests: missed skip in test
Zdenek Kabelac [Fri, 31 May 2013 19:58:51 +0000 (21:58 +0200)]
tests: missed skip in test

11 years agotests: test mirrors in clustered way
Zdenek Kabelac [Fri, 31 May 2013 19:11:51 +0000 (21:11 +0200)]
tests: test mirrors in clustered way

Make the clustered testing using cluster locking for most of the tests.
Use exclusive activation for mirrors and snapshot origins.

11 years agotests: move raid test to separate file
Zdenek Kabelac [Fri, 31 May 2013 15:35:24 +0000 (17:35 +0200)]
tests: move raid test to separate file

11 years agotests: skip if the system already uses tested minor
Zdenek Kabelac [Fri, 31 May 2013 10:48:37 +0000 (12:48 +0200)]
tests: skip if the system already uses tested minor

11 years agotests: min snap chunk count is 3
Zdenek Kabelac [Fri, 31 May 2013 09:01:59 +0000 (11:01 +0200)]
tests: min snap chunk count is 3

11 years agomirror: implement check for remotely active LV
Zdenek Kabelac [Fri, 31 May 2013 17:10:07 +0000 (19:10 +0200)]
mirror: implement check for remotely active LV

If the mirror is active exclusively and locally, then we may proceed.

11 years agolvcreate: update thin validation
Zdenek Kabelac [Fri, 31 May 2013 09:02:52 +0000 (11:02 +0200)]
lvcreate: update thin validation

Merge duplicate code that was validating lvcreate args
for creation of thin and snapshot.

Keep most of thin checks in _check_thin_parameters().

Update couple error messages.

11 years agolvcreate: update snapshot test
Zdenek Kabelac [Fri, 31 May 2013 09:00:29 +0000 (11:00 +0200)]
lvcreate: update snapshot test

With last commit, there has been missing test for valid setting
of extents - there is no need to test max size when creating
thin snapshots.

11 years agoDM RAID: Add ability to throttle sync operations for RAID LVs.
Jonathan Brassow [Fri, 31 May 2013 16:25:52 +0000 (11:25 -0500)]
DM RAID:  Add ability to throttle sync operations for RAID LVs.

This patch adds the ability to set the minimum and maximum I/O rate for
sync operations in RAID LVs.  The options are available for 'lvcreate' and
'lvchange' and are as follows:
  --minrecoveryrate <Rate> [bBsSkKmMgG]
  --maxrecoveryrate <Rate> [bBsSkKmMgG]
The rate is specified in size/sec/device.  If a suffix is not given,
kiB/sec/device is assumed.  Setting the rate to 0 removes the preference.

11 years agoClean-up: Fix copy-n-paste error
Jonathan Brassow [Fri, 17 May 2013 19:30:29 +0000 (14:30 -0500)]
Clean-up:  Fix copy-n-paste error

Description for --with-raid should be s/mirror/raid/.

11 years agotests: snapshot needs 3 chunks
Zdenek Kabelac [Thu, 30 May 2013 15:55:44 +0000 (17:55 +0200)]
tests: snapshot needs 3 chunks

11 years agocleanup: fix tabs
Zdenek Kabelac [Thu, 30 May 2013 15:56:02 +0000 (17:56 +0200)]
cleanup: fix tabs

11 years agotests: snapshot testing
Zdenek Kabelac [Wed, 29 May 2013 21:36:44 +0000 (23:36 +0200)]
tests: snapshot testing

11 years agotests: drop testing of raids in cluster
Zdenek Kabelac [Wed, 29 May 2013 10:48:29 +0000 (12:48 +0200)]
tests: drop testing of raids in cluster

Since raid is not clustered yet - drop it from testing in cluster phase.
(saving running some time)

11 years agolibdm: compensate suspend counter for live table
Zdenek Kabelac [Thu, 30 May 2013 09:19:28 +0000 (11:19 +0200)]
libdm: compensate suspend counter for live table

This patch may not be fully correct. It tries to solve
the imbalanced suspend counter.

The problem starts when some LV is created and fails in resume path.
(i.e. resuming to large PV (enforced) over small loop devices)

This fails in _resume_node() after dm_task_run(). And while
existing device with empty table is left in inactive table,
further calls are reporting this device is in suspend state.

When later the lvm2 tries to rollback created device and deactivate it,
it will end with internal error, when we try to decrement
never incremented suspend counter.

As an 'easy fix' for now update suspend counter only for live nodes.

TODO: explore better fix.

11 years agolvresize: drop monitoring of 100% covered origin
Zdenek Kabelac [Wed, 29 May 2013 19:23:18 +0000 (21:23 +0200)]
lvresize: drop monitoring of 100% covered origin

11 years agolvresize: check for max snapshot size
Zdenek Kabelac [Wed, 29 May 2013 19:23:02 +0000 (21:23 +0200)]
lvresize: check for max snapshot size

As for lvcreate, lvresize also doesn't need to grow bigger then needed.

11 years agolvcreate: reduce too large cow
Zdenek Kabelac [Wed, 29 May 2013 19:43:46 +0000 (21:43 +0200)]
lvcreate: reduce too large cow

Detect maximum usable size of snapshot COW device,
and do not waste more space for such LV then needed.

11 years agosnapshot: add cow_max_extents
Zdenek Kabelac [Wed, 29 May 2013 10:44:54 +0000 (12:44 +0200)]
snapshot: add cow_max_extents

Add more precise calculation of the maximum usable snapshot size.
Using only percentage fails for small size of snapshot and extents.

11 years agosnapshot: require 3 chunks for creation
Zdenek Kabelac [Wed, 29 May 2013 10:39:33 +0000 (12:39 +0200)]
snapshot: require 3 chunks for creation

There is no point in creation of 2chunks snapshot,
since the snapshot is invalidated immeditelly with the first write
as there is no free chunk for COW blocks
(2 chunks are used by the snap header and the 1st. metadata chunk).

Enhance error message about the lowest usable size.

11 years agocleanup: test for -1 value for lseek error
Zdenek Kabelac [Wed, 29 May 2013 10:38:09 +0000 (12:38 +0200)]
cleanup: test for -1 value for lseek error

Error is defined as -1.
Yet it seems we are unable to seek to 0 for devices > 8Exabytes.

11 years agosnapshot: fix resize of 100% full cow
Zdenek Kabelac [Wed, 29 May 2013 19:17:15 +0000 (21:17 +0200)]
snapshot: fix resize of 100% full cow

When the COW area is using all the available space (100%) it can be still
a valid snapshot which may need a resize. So support it.

11 years agoargs: do not accept >=16EiB sizes
Zdenek Kabelac [Wed, 29 May 2013 12:50:21 +0000 (14:50 +0200)]
args: do not accept >=16EiB sizes

Instead of seeing wierd overflows inside the lvm code,
giving false error messages, kill the user experiment in the begining.

Who needs to use more then 16EiB with lvm2 and 64bit anyway...

11 years agolibdm: add public macro DM_TO_STRING
Zdenek Kabelac [Wed, 29 May 2013 10:46:21 +0000 (12:46 +0200)]
libdm: add public macro DM_TO_STRING

Since this stringifying macro is usable in more places,
move it to the public header with DM_ prefix.

11 years agofid: fix reset of PV fid
Zdenek Kabelac [Wed, 29 May 2013 10:42:09 +0000 (12:42 +0200)]
fid: fix reset of PV fid

Avoid hitting memory corruption (double free) in code path,
where PV FID has been already destroyed and the released pointer
was left in PV structure and could have been tried to be released
from there 2nd. time with final context destruction.

11 years agodmeventd: revert back percent to int
Zdenek Kabelac [Wed, 29 May 2013 10:29:48 +0000 (12:29 +0200)]
dmeventd: revert back percent to int

int is perfectly ok here.

11 years agoman: ea_start/ea_size -> ba_start/ba_size
Peter Rajnoha [Thu, 30 May 2013 09:45:44 +0000 (11:45 +0200)]
man: ea_start/ea_size -> ba_start/ba_size

11 years agoWHATS_NEW: return success on dmeventd -V
Peter Rajnoha [Wed, 29 May 2013 11:24:16 +0000 (13:24 +0200)]
WHATS_NEW: return success on dmeventd -V

11 years agodmeventd: always return success on dmevetnd -V
Peter Rajnoha [Wed, 29 May 2013 10:54:42 +0000 (12:54 +0200)]
dmeventd: always return success on dmevetnd -V

11 years agoWHATS_NEW: ea_start,ea_size -> ba_start,ba_size
Peter Rajnoha [Tue, 28 May 2013 10:43:26 +0000 (12:43 +0200)]
WHATS_NEW: ea_start,ea_size -> ba_start,ba_size

11 years agorefactor: rename embedding area -> bootloader area
Peter Rajnoha [Tue, 28 May 2013 10:37:22 +0000 (12:37 +0200)]
refactor: rename embedding area -> bootloader area

11 years agosnapshot: skip monitor for large cows
Zdenek Kabelac [Mon, 27 May 2013 08:20:06 +0000 (10:20 +0200)]
snapshot: skip monitor for large cows

If snapshot cow device is already big enough to
cover whole origin, do not monitor it.

11 years agosnapshot: add lv_is_cow_covering_origin
Zdenek Kabelac [Mon, 27 May 2013 08:18:20 +0000 (10:18 +0200)]
snapshot: add lv_is_cow_covering_origin

Add function to check is size of cow is already big enough
to cover whole origin.

11 years agodmeventd: use dm_get_status_snapshot()
Zdenek Kabelac [Sun, 26 May 2013 15:07:08 +0000 (17:07 +0200)]
dmeventd: use dm_get_status_snapshot()

Switch to use libdm dm_get_status_snapshot() function for
reading status info.
This fixes bug, where the code was using 32bit integers,
while the snapshot target is able to return 64bit sizes.
However this also means, someone is using >1TB snapshot
cow devices, which is actually very bad idea anyway, since the
perfomance and memory usage in this case is very bad.

11 years agosnapshot: use dm_get_status_snapshot()
Zdenek Kabelac [Sun, 26 May 2013 15:04:14 +0000 (17:04 +0200)]
snapshot: use dm_get_status_snapshot()

Replace code with libdm call to dm_get_status_snapshot().

11 years agolibdm: free mem pool on err path
Zdenek Kabelac [Sun, 26 May 2013 15:00:14 +0000 (17:00 +0200)]
libdm: free mem pool on err path

Since we use get_status also in dmeventd, which may use one pool
for a single device, in case it would be repeatedly returning error,
it may not be freeing the pool and would cause slow but steady growth.
To stay safe in the error path release any allocated memory.

11 years agolibdm: add dm_get_status_snapshot
Zdenek Kabelac [Sun, 26 May 2013 14:57:50 +0000 (16:57 +0200)]
libdm: add dm_get_status_snapshot

Add dm_get_status_snapshot() for parsing snapshot status.

11 years agocleanup: drop backtrace
Zdenek Kabelac [Thu, 23 May 2013 14:17:08 +0000 (16:17 +0200)]
cleanup: drop backtrace

After log_error/log_warn there is no point to show <backtrace>
in debug log trace from the next code line.

11 years agocleanup: use last_seg
Zdenek Kabelac [Wed, 22 May 2013 13:04:51 +0000 (15:04 +0200)]
cleanup: use last_seg

Use function to obtain last segment type.

11 years agolv_manip: use lv_is_active
Zdenek Kabelac [Thu, 16 May 2013 21:12:39 +0000 (23:12 +0200)]
lv_manip: use lv_is_active

Updated reverted commit.
The usage of lv_is_active() is needed here, so the
(!lv_is_active_exclusive_locally) gives the correct
report.

11 years agovgchange: check for mounted fs
Zdenek Kabelac [Thu, 8 Mar 2012 22:43:28 +0000 (23:43 +0100)]
vgchange: check for mounted fs

Check for mounted fs also for vgchange command, not just lvchange.

NOTE: Code is using lv_info() just like lvs_in_vg_opened().
It should be probably converted into  lv_is_active_locally().

11 years agodmeventd: use dm_mountinfo_read
Zdenek Kabelac [Mon, 20 May 2013 11:10:07 +0000 (13:10 +0200)]
dmeventd: use dm_mountinfo_read

Reuse mountinfo reading code from libdm.

11 years agolibdm: improve detection of mounted fs
Zdenek Kabelac [Thu, 16 May 2013 09:55:51 +0000 (11:55 +0200)]
libdm: improve detection of mounted fs

To detect mounted device, use also /proc/self/mountinfo
as so far the check was only able to detect ext4 mounted filesystem.

TODO:
Once proper testing for this feature is added, it may appear,
mountinfo check is enough and covers all cases and sysfs check
could be removed.

11 years agolibdm: introduce dm_mountinfo_read
Zdenek Kabelac [Thu, 16 May 2013 09:34:26 +0000 (11:34 +0200)]
libdm: introduce dm_mountinfo_read

Add function for parsing /proc/self/mountinfo entries.
This can be used to detected mounted device.

11 years agoioctl: add DM_DATA_OUT_FLAG to dm-ioctl.h
Alasdair G Kergon [Fri, 17 May 2013 16:06:40 +0000 (17:06 +0100)]
ioctl: add DM_DATA_OUT_FLAG to dm-ioctl.h

11 years agodoc: update dm kernel files to 3.10-rc1
Alasdair G Kergon [Fri, 17 May 2013 15:05:17 +0000 (16:05 +0100)]
doc: update dm kernel files to 3.10-rc1

11 years agoClean-up: Replace 'lv_is_active' with more correct/specific variants
Jonathan Brassow [Thu, 16 May 2013 15:36:56 +0000 (10:36 -0500)]
Clean-up: Replace 'lv_is_active' with more correct/specific variants

There are places where 'lv_is_active' was being used where it was
more correct to use 'lv_is_active_locally'.  For example, when checking
for the existance of a kernel instance before asking for its status.
Most of the time these would work correctly.  (RAID is only allowed on
non-clustered VGs at the moment, which means that 'lv_is_active' and
'lv_is_active_locally' would give the same result.)  However, it is
more correct to use the proper variant and it helps with future
scenarios where targets might be allowed exclusively (or clustered) in
a cluster VG.

11 years agoWHATS_NEW: bad day
Peter Rajnoha [Thu, 16 May 2013 09:02:18 +0000 (11:02 +0200)]
WHATS_NEW: bad day

11 years agoWHATS_NEW: for commit 4f6c2951d6495ee335ab69da44ae2647cd341276
Peter Rajnoha [Thu, 16 May 2013 06:38:27 +0000 (08:38 +0200)]
WHATS_NEW: for commit 4f6c2951d6495ee335ab69da44ae2647cd341276

11 years agolvconvert: check for snapshot-merge support before merge init
Peter Rajnoha [Thu, 16 May 2013 06:21:57 +0000 (08:21 +0200)]
lvconvert: check for snapshot-merge support before merge init

11 years agosnapshot: fix check for snapshot-merge target presence
Peter Rajnoha [Thu, 16 May 2013 06:12:37 +0000 (08:12 +0200)]
snapshot: fix check for snapshot-merge target presence

If calling _snap_target_present on 2nd and later call and for
a segment with MERGING flag set, we must return the status of
snapshot as well as snapshot-merge target presence, not just
the snapshot one.

11 years agoactivation: fix lv_is_active regressions
Alasdair G Kergon [Wed, 15 May 2013 01:13:31 +0000 (02:13 +0100)]
activation: fix lv_is_active regressions

Try to fix commit bf2741376d47411994d4065863acab8e405ff5c7.

lv_is_active is not the same as lv_info(cmd, org, 0, &info, 0, 0).

Introduce and use lv_is_active_locally.

11 years agorephrasing: miscellaneous changes
Alasdair G Kergon [Wed, 15 May 2013 00:50:42 +0000 (01:50 +0100)]
rephrasing: miscellaneous changes

Miscellaneous changes to messages, man pages, comments and WHATS_NEW.

11 years agomake: fix exported symbols regex for non-GNU sed
Alasdair G Kergon [Tue, 14 May 2013 18:29:26 +0000 (19:29 +0100)]
make: fix exported symbols regex for non-GNU sed

Remove a couple of incorrect backslashes from expressions used to
generate lists of exported symbols so it works with busybox sed.
[John Spencer]

11 years agocommands: accept --yes globally
Alasdair G Kergon [Tue, 14 May 2013 17:45:37 +0000 (18:45 +0100)]
commands: accept --yes globally

Accept --yes on all commands, even ones that don't today have prompts,
so that test scripts that don't care about interactive prompts no
longer need to deal with them.

But continue to mention --yes only in the command prototypes that
actually use it.

11 years agoFix alignment of PV data area if detected alignment less than 1 MB
Mike Snitzer [Mon, 13 May 2013 19:56:47 +0000 (15:56 -0400)]
Fix alignment of PV data area if detected alignment less than 1 MB

This fixes a long standing regression since LVM2 2.02.74 (commit 4efb1d9c,
"Update heuristic used for default and detected data alignment.")

The default PE alignment could be used (via MAX()) even if it was
determined that the device's MD stripe width, or minimal_io_size or
optimal_io_size were not factors of the default PE alignment (either 64K
or the newer default of 1MB, etc).  This bug would manifest if the
default PE alignment was larger than the overriding hint that the
device provided (e.g. default of 1MB vs optimal_io_size of 768K).

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
11 years agothin: limited support for -l%FREE allocation
Zdenek Kabelac [Mon, 13 May 2013 11:03:04 +0000 (13:03 +0200)]
thin: limited support for -l%FREE allocation

This is just a temporary fix to support allocation of -l%FREE.

The number of free extent serves to calculate estimated metadata
size. This value is then substracted twice to keep some
free space for recover.

11 years agomm: fix leak in fail path
Zdenek Kabelac [Mon, 13 May 2013 10:59:38 +0000 (12:59 +0200)]
mm: fix leak in fail path

If the dm_realloc would fail, the already allocate _maps_buffer
memory would have been lost (overwritten with NULL).
Fix this by using temporary line buffer.

Also add a minor cleanup to set end of buffer to '\0',
only when we really know the file size fits the preallocated buffer.

11 years agoman: updates
Zdenek Kabelac [Sun, 5 May 2013 19:38:44 +0000 (21:38 +0200)]
man: updates

11 years agotoolcontext: check dm version lazily for udev_fallback setting
Peter Rajnoha [Mon, 13 May 2013 09:46:24 +0000 (11:46 +0200)]
toolcontext: check dm version lazily for udev_fallback setting

Setting the cmd->default_settings.udev_fallback also requires DM
driver version check. However, this caused useless mapper/control
access with ioctl if not needed actually. For example if we're not
using activation code, we don't need to know the udev_fallback as
there's no node and symlink processing.

For example, this premature mapper/control access caused problems
when using lvm2app even when no activation happens - there are
situations in which we don't need to use mapper/control, but still
need some of the lvm2app functionality. This is also the case for
lvm2-activation systemd generator which just needs to look at the
lvm2 configuration, but it shouldn't touch mapper/control.

11 years agolv: fix typedef
Zdenek Kabelac [Fri, 3 May 2013 14:02:43 +0000 (16:02 +0200)]
lv: fix typedef

Since older gcc is not accepting duplication of same typedef,
stay with predeclared enum type.

11 years agotest: wait for pid removal
Zdenek Kabelac [Fri, 3 May 2013 13:21:11 +0000 (15:21 +0200)]
test: wait for pid removal

11 years agocleanup: shift line down
Zdenek Kabelac [Thu, 2 May 2013 16:05:42 +0000 (18:05 +0200)]
cleanup: shift line down

For better look of  lvs -o help
Though we may need to decide whether to use  'lv_active' or some other
name.

11 years agocleanup: simplify
Zdenek Kabelac [Mon, 29 Apr 2013 10:33:38 +0000 (12:33 +0200)]
cleanup: simplify

Use simplier sprintf.

11 years agocleanup: improve previous patch
Zdenek Kabelac [Mon, 29 Apr 2013 11:50:26 +0000 (13:50 +0200)]
cleanup: improve previous patch

Make the test earlier, before any dereference of 'argv' pointer.

11 years agoreport: improve reporting of active state
Zdenek Kabelac [Thu, 2 May 2013 16:06:50 +0000 (18:06 +0200)]
report: improve reporting of active state

For reporting stacked or joined devices properly in cluster,
we need to report their activation state according the lock,
which activated this device tree.

This is getting a bit complex - current code tries simple approach -

For snapshot - return status for origin.
For thin pool - return status of the first known active thin volume.
For the rest of them - try to use dependency list of LVs and skip
known execptions.  This should be able to recursively deduce top level
device for given LV.

(in release fix)

11 years agolv: add lv_active_change
Zdenek Kabelac [Mon, 29 Apr 2013 12:04:38 +0000 (14:04 +0200)]
lv: add lv_active_change

Make a separate /lib function for the change of activation state
of the LV.

(in release update)

11 years agopvscan: missing test for id_read_format
Zdenek Kabelac [Mon, 29 Apr 2013 10:34:50 +0000 (12:34 +0200)]
pvscan: missing test for id_read_format

(in release fix)

11 years agoconfig: fix bitfield for section
Zdenek Kabelac [Mon, 29 Apr 2013 10:38:56 +0000 (12:38 +0200)]
config: fix bitfield for section

Since the cfg_def_type_t is used as bitfield in some tests,
use bitshifting to create valid bit sequence.

(in release fix)

11 years agoudev: fire pvscan --cache properly on CHANGE event for MD devices
Peter Rajnoha [Fri, 3 May 2013 11:20:07 +0000 (13:20 +0200)]
udev: fire pvscan --cache properly on CHANGE event for MD devices

Commit 756bcabbfe297688ba240a880bc2b55265ad33f0 restricted the
situations at which the LVM autoactivation fires - only on ADD
event for devices other than DM. However, this caused a problem
for MD devices...

MD devices are activated in a very similar way as DM devices:
the MD dev is created on first appeareance of MD array member
(ADD event) and stays *inactive* until the array is complete.
Just then the MD dev turns to active state and this is reported
to userspace by CHANGE event.

Unfortunately, we can't differentiate between the CHANGE event
coming from udev trigger/WATCH rule and CHANGE event coming from
the transition to active state - MD would need to add similar logic
we already use to detect this in DM world. For now, we just have
to enable pvscan --cache on *all* CHANGE events for MD so the
autoactivation of the LVM volumes on top of MD works.

A downside of this is that a spurious CHANGE event for MD dev
can cause the LVM volumes on top of it to be automatically activated.
However, one should not open/change the device underneath until
the device above in the stack is removed! So this situation should
only happen if one opens the MD dev for read-write by mistake
(and hence firing the CHANGE event because of the WATCH udev rule),
or if calling udev trigger manually for the MD dev.

(No WHATS_NEW here as this fixes the commit mentioned
above and which has not been released yet.)

11 years agoudev: add a few comments about variables used to recognize events
Peter Rajnoha [Fri, 3 May 2013 09:01:57 +0000 (11:01 +0200)]
udev: add a few comments about variables used to recognize events

11 years agocleanup: use dm_list_iterate_items
Zdenek Kabelac [Thu, 25 Apr 2013 09:46:17 +0000 (11:46 +0200)]
cleanup: use dm_list_iterate_items

11 years agolvchange: use vg mempool
Zdenek Kabelac [Thu, 25 Apr 2013 08:15:13 +0000 (10:15 +0200)]
lvchange: use vg mempool

Using vg mempool for vg related data. Since we have VG in write mode,
prefer to use this mempool instead of cmd mempool.

11 years agodmeventd: return error if device is not found
Zdenek Kabelac [Thu, 25 Apr 2013 08:17:22 +0000 (10:17 +0200)]
dmeventd: return error if device is not found

Do not return 'ok' status if we have failed to found device.
(Since it looks like the device is monitored)

11 years agoreport: show active state of LV
Zdenek Kabelac [Thu, 25 Apr 2013 10:12:05 +0000 (12:12 +0200)]
report: show active state of LV

For non clustered VG - show  "active"/""

For clustered VG its more complex:

"local exclusive"
"remote exclusive"
"locally"
"remotely"

11 years agoreport: show dmeventd monitoring status
Zdenek Kabelac [Thu, 25 Apr 2013 10:07:57 +0000 (12:07 +0200)]
report: show dmeventd monitoring status

Add new lvs segment field 'Monitor' showing 3 states:

"monitored" - LV is monitored by dmeventd.

"not monitored" - LV is currently not being monitored by dmeventd

"" (empty) - LV does not support monitoring, or dmeventd support
             is not compiled in.

11 years agoman: lvextend --use-policies
Zdenek Kabelac [Wed, 24 Apr 2013 21:41:05 +0000 (23:41 +0200)]
man: lvextend --use-policies

Add missing man info.

11 years agosnapshot: rework cluster creation and removal
Zdenek Kabelac [Sun, 21 Apr 2013 08:37:52 +0000 (10:37 +0200)]
snapshot: rework cluster creation and removal

Support for exclusive activation of snapshots revealed some problems.

When snapshot is created, COW LV is activated first (for clearing) and
then it's transformed into snapshot's COW LV, but it has left the lock
for such LV active in cluster and this lock could not have been removed
from dlm, unless snapshot has been removed within same dlm session.

If the user tried to remove snapshot after rebooting node, the lock was
missing, and COW LV could not have been detached.

Patch modifes the approach in this way:

Always deactivate COW LV for clustered vg  after clearing (so it's
activated again via imlicit snapshot activation rule when snapshot is activated).

When snapshot is removed, activate COW LV as independend LV, so the lock
will exist for such LV, but only when the snapshot is active.

Also add test case for testing snapshot removal after cluster reboot.

11 years agoclvmd: avoid pretesting of dev availability
Zdenek Kabelac [Sun, 21 Apr 2013 08:11:29 +0000 (10:11 +0200)]
clvmd: avoid pretesting of dev availability

Patch fixes hidden problem with lvm metadata caching.

When the pretest was made, only the commited data have been cached back
since the call lv_info_by_lvid() triggers mda read operation.
However call of lv_suspend_if_active() also reads precommited metadata.
The problem is visible in this sequence of calls:

vg_write(), suspend_lv(), vg_commit(), resume_lv()

which may end with leaving outdated mda in lvm cache, since vg_write()
drops cached metadata and vg_commit() only transforms precommited
to commited metadata, but in the case of pretesting we have
no precommited mda available so the cache will continue to use
old metadata. This happens, when suspend LV is inactive.

11 years agotest: correct order
Zdenek Kabelac [Tue, 23 Apr 2013 15:05:19 +0000 (17:05 +0200)]
test: correct order

Call notify after resume (like in enable_dev()).

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