]> sourceware.org Git - lvm2.git/log
lvm2.git
12 years agoAdd dm_device_get_name to get map name or block device name for given devno.
Peter Rajnoha [Wed, 11 Jan 2012 12:34:44 +0000 (12:34 +0000)]
Add dm_device_get_name to get map name or block device name for given devno.

This is accomplished by reading associated sysfs information. For a dm device,
this is /sys/dev/block/major:minor/dm/name (supported in kernel version >= 2.6.29,
for older kernels, the behaviour is the same as for non-dm devices).

For a non-dm device, this is a readlink on /sys/dev/block/major:minor, e.g.
  /sys/dev/block/253:0 --> ../../devices/virtual/block/dm-0.
The last component of the path is a proper kernel name (block device name).

One can request to read only kernel names by setting the 'prefer_kernel_name'
argument if needed.

12 years agoAdd dm_uuid_prefix/dm_set_uuid_prefix for non-lvm users to override hard-coded
Alasdair Kergon [Tue, 10 Jan 2012 02:03:31 +0000 (02:03 +0000)]
Add dm_uuid_prefix/dm_set_uuid_prefix for non-lvm users to override hard-coded
LVM- prefix.

Try harder not to leave stray empty devices around (locally or remotely) when
reverting changes after failures while there are inactive tables.

12 years agoCheck for error code in _adjust_policy_params
Zdenek Kabelac [Mon, 9 Jan 2012 12:31:52 +0000 (12:31 +0000)]
Check for error code in _adjust_policy_params

If error is detected in _adjust_policy_params, break further command processing.

12 years agoMinor oldstyle warning update
Zdenek Kabelac [Mon, 9 Jan 2012 12:29:15 +0000 (12:29 +0000)]
Minor oldstyle warning update

12 years agoImprove readahead in dmsetup man page
Zdenek Kabelac [Mon, 9 Jan 2012 12:28:47 +0000 (12:28 +0000)]
Improve readahead in dmsetup man page

12 years agoUse sysfs to set/get of read-ahead
Zdenek Kabelac [Mon, 9 Jan 2012 12:26:14 +0000 (12:26 +0000)]
Use sysfs to set/get of read-ahead

If we know major:minor number of device (which is known after resume) we will
try to use  sysfs to set/get read ahead parameters of device.
This avoid potential problem of blocking commands like 'dmsetup info' awaiting
for device being usable for open/close - i.e. overfilled thin pool may block
such command.

12 years agoSupport rounding of percentage upward
Zdenek Kabelac [Thu, 5 Jan 2012 15:38:18 +0000 (15:38 +0000)]
Support rounding of percentage upward

We want to keep this logic -
when LV is extend - extend the LV by at least given amount,
when LV is reduced - reduce the LV by at most given amount.

So for this the rounding needs to be used.
Current logic which seems to satisfy give rule is to round up all
extent values for LV resize upward except for values with '-' sign
that are round downward.

This patch also fixes the problem when  lvextend --use-polices tried
to extend LV the by i.e. 20% - but the resulting 20% were smaller
the extent size thus before this patch no extension happened.

12 years agoUse new dmeventd_lvm2_command function in dmeventd plugins.
Zdenek Kabelac [Thu, 22 Dec 2011 16:37:01 +0000 (16:37 +0000)]
Use new dmeventd_lvm2_command function in dmeventd plugins.

For snapshot, prepare whole command in front into private buffer.
Add also some missing '\n' for syslog messages.
For raid and mirror only convert creation of command line string.
This should avoid any unbound growth of mempool for dm_split_names.

12 years agoThin use helper function
Zdenek Kabelac [Thu, 22 Dec 2011 15:57:29 +0000 (15:57 +0000)]
Thin use helper function

Fix some minor outstading issue from thin plugin introduction -
Call dmeventd_lvm2_exit() in failpath for registration.
Add some missing '\n' in syslog messages.

12 years agoAdd helper function dmeventd_lvm2_command().
Zdenek Kabelac [Thu, 22 Dec 2011 15:55:21 +0000 (15:55 +0000)]
Add helper function dmeventd_lvm2_command().

Since this code is in all plugins - create a common helper function.

12 years agoUpdated documentation for dmeventd.
Zdenek Kabelac [Thu, 22 Dec 2011 15:50:38 +0000 (15:50 +0000)]
Updated documentation for dmeventd.

Update man page style.
Mention raid and thin plugins.
Update help text printed by command to match man page.

12 years agoThin man page update
Zdenek Kabelac [Wed, 21 Dec 2011 13:58:38 +0000 (13:58 +0000)]
Thin man page update

12 years agoThin update test case
Zdenek Kabelac [Wed, 21 Dec 2011 13:45:42 +0000 (13:45 +0000)]
Thin update test case

Use thin-pool instead of thin_pool type.

12 years agoExported functions from thin plugin
Zdenek Kabelac [Wed, 21 Dec 2011 13:42:07 +0000 (13:42 +0000)]
Exported functions from thin plugin

12 years agoDrop extra stat before open of device
Zdenek Kabelac [Wed, 21 Dec 2011 13:24:24 +0000 (13:24 +0000)]
Drop extra stat before open of device

Since the !(dev->flags & DEV_REGULAR) code path just called
dev_name_confirmed() which has just called 'stat()' inside,
remove duplicate second stat() call here.

12 years agoDo not lstat common path prefix
Zdenek Kabelac [Wed, 21 Dec 2011 13:21:09 +0000 (13:21 +0000)]
Do not lstat common path prefix

When both path have identical prefix i.e. /dev/disk/by-id
skip  2 x lstat() for /dev  /dev/disk /dev/disk/by-id
and directly lstat() only different part of the path.

Reduces amount of lstat calls on system with lots of devices.

12 years agoAdd common initialization code for struct device
Zdenek Kabelac [Wed, 21 Dec 2011 13:17:54 +0000 (13:17 +0000)]
Add common initialization code for struct device

Avoid duplicate code and add _dev_init() where all common
member values are initialized.

12 years agoAlways zalloc device structure
Zdenek Kabelac [Wed, 21 Dec 2011 13:14:54 +0000 (13:14 +0000)]
Always zalloc device structure

Since there is zalloc behind the macro, put 'z' into the name.
Make the 'use_malloc' code path also using zalloc() call,
so it also give zeroed area.

12 years agoThin automatic policy based extension
Zdenek Kabelac [Wed, 21 Dec 2011 13:10:52 +0000 (13:10 +0000)]
Thin automatic policy based extension

12 years agoThin add lv_thin_pool_percent
Zdenek Kabelac [Wed, 21 Dec 2011 13:10:05 +0000 (13:10 +0000)]
Thin add lv_thin_pool_percent

12 years agoThin add dev_manager_thin_pool_percent
Zdenek Kabelac [Wed, 21 Dec 2011 13:09:33 +0000 (13:09 +0000)]
Thin add dev_manager_thin_pool_percent

dev manager function to read percent info from thin pool.

12 years agoThin add dmeventd support
Zdenek Kabelac [Wed, 21 Dec 2011 13:08:11 +0000 (13:08 +0000)]
Thin add dmeventd support

This is basic version with still few unresolved issue mainly in case,
when the pool resize is failing.

12 years agoFix missing thread list manipulation
Zdenek Kabelac [Wed, 21 Dec 2011 13:03:06 +0000 (13:03 +0000)]
Fix missing thread list manipulation

For manipulation with thread list to avoid race with timeout thread,
take also _timeout_mutex.

12 years agoCheck lv pointer for NULL before derefence.
Zdenek Kabelac [Wed, 21 Dec 2011 12:59:22 +0000 (12:59 +0000)]
Check lv pointer for NULL before derefence.

12 years agoThin remove unused code
Zdenek Kabelac [Wed, 21 Dec 2011 12:56:45 +0000 (12:56 +0000)]
Thin remove unused code

12 years agoThin move layer suffix into local static const
Zdenek Kabelac [Wed, 21 Dec 2011 12:55:22 +0000 (12:55 +0000)]
Thin move layer suffix into local static const

12 years agoThin rename internal thin pool segment
Zdenek Kabelac [Wed, 21 Dec 2011 12:54:19 +0000 (12:54 +0000)]
Thin rename internal thin pool segment

Use matching name as kernel target - useful when function like
_percent is using this for validation.

12 years agoAdd Thin API for parsing thin status
Zdenek Kabelac [Wed, 21 Dec 2011 12:52:38 +0000 (12:52 +0000)]
Add Thin API for parsing thin status

Add dm_get_status_thin_pool and dm_get_status_thin functions to
parse 'params' argument which is received via dm_get_next_target.

Returns filed structure allocated from given mempool.

12 years agoAllow empty strings for description and creation_host config fields
Zdenek Kabelac [Wed, 21 Dec 2011 12:49:00 +0000 (12:49 +0000)]
Allow empty strings for description and creation_host config fields

12 years agoAdd dm_config_find_str_allow_empty
Zdenek Kabelac [Wed, 21 Dec 2011 12:47:44 +0000 (12:47 +0000)]
Add dm_config_find_str_allow_empty

Support empty string values.

12 years agoReinstate support for format1 snapshots, but issue deprecated warning.
Alasdair Kergon [Tue, 20 Dec 2011 00:02:18 +0000 (00:02 +0000)]
Reinstate support for format1 snapshots, but issue deprecated warning.

I anticipate removing support for snapshots with lvm1-formatted metadata in a
future release.

12 years agoAdd a unit test for config cascade (overlay). Needs expanding though.
Petr Rockai [Sun, 18 Dec 2011 23:56:36 +0000 (23:56 +0000)]
Add a unit test for config cascade (overlay). Needs expanding though.

12 years agoFix up lvmetad for the minor API change in dm_config_create.
Petr Rockai [Sun, 18 Dec 2011 22:31:10 +0000 (22:31 +0000)]
Fix up lvmetad for the minor API change in dm_config_create.

12 years agoMake a cleaner split between config tree and config file functionality. Move
Petr Rockai [Sun, 18 Dec 2011 21:56:03 +0000 (21:56 +0000)]
Make a cleaner split between config tree and config file functionality. Move
the latter out of libdm.

12 years agoUse also normalized output for vgchange command in lvm2-monitor init script.
Peter Rajnoha [Fri, 16 Dec 2011 11:42:56 +0000 (11:42 +0000)]
Use also normalized output for vgchange command in lvm2-monitor init script.

12 years agoCleanup test compile warning
Zdenek Kabelac [Tue, 13 Dec 2011 12:08:42 +0000 (12:08 +0000)]
Cleanup test compile warning

Add some declaration and cast to cleanup gcc warnings.
Add missing dm_config_destroy() to cleanup pool leak report.

12 years agoFix a compiler warning.
Petr Rockai [Mon, 12 Dec 2011 00:08:23 +0000 (00:08 +0000)]
Fix a compiler warning.

12 years agoUse a more canonic regex escaping in the default lvm.conf file for testing.
Petr Rockai [Mon, 12 Dec 2011 00:01:12 +0000 (00:01 +0000)]
Use a more canonic regex escaping in the default lvm.conf file for testing.

12 years agoMove dm_config_write out of libdm, back to lib/config, as config_write.
Petr Rockai [Sun, 11 Dec 2011 23:18:20 +0000 (23:18 +0000)]
Move dm_config_write out of libdm, back to lib/config, as config_write.

12 years agoAdd a shell test for config parsing and merging (lvm dumpconfig).
Petr Rockai [Sun, 11 Dec 2011 23:14:37 +0000 (23:14 +0000)]
Add a shell test for config parsing and merging (lvm dumpconfig).

12 years agoAutoreconf.
Petr Rockai [Sun, 11 Dec 2011 17:24:37 +0000 (17:24 +0000)]
Autoreconf.

12 years agoAdd a unit test for dm_config_clone_node.
Petr Rockai [Sun, 11 Dec 2011 15:45:14 +0000 (15:45 +0000)]
Add a unit test for dm_config_clone_node.

12 years agoStart a rudimentary unit test for the dm_config_* interface.
Petr Rockai [Sun, 11 Dec 2011 15:19:41 +0000 (15:19 +0000)]
Start a rudimentary unit test for the dm_config_* interface.

12 years agoIn the dm_config_*get_* functions, make the actual value retrieval optional
Petr Rockai [Sun, 11 Dec 2011 15:18:32 +0000 (15:18 +0000)]
In the dm_config_*get_* functions, make the actual value retrieval optional
(useful for just checking that a given key is of a given type).

12 years agoUse pkg-config to look for CUnit (needed for systems where it's not on the
Petr Rockai [Sun, 11 Dec 2011 15:15:57 +0000 (15:15 +0000)]
Use pkg-config to look for CUnit (needed for systems where it's not on the
standard include path).

12 years agoNowadays, lvm-version.h is generated from lvm-version.h.in, and lives in the
Petr Rockai [Sat, 10 Dec 2011 14:55:31 +0000 (14:55 +0000)]
Nowadays, lvm-version.h is generated from lvm-version.h.in, and lives in the
build directory, not the source one -> fix test/shell/000-basic.sh.

12 years agoupdate FIXMEs
Alasdair Kergon [Sat, 10 Dec 2011 00:47:23 +0000 (00:47 +0000)]
update FIXMEs

12 years agoWhen dropping the VG metadata from the cache during a VG revert, we must
Alasdair Kergon [Thu, 8 Dec 2011 23:18:00 +0000 (23:18 +0000)]
When dropping the VG metadata from the cache during a VG revert, we must
reset the 'precomitted' flag, just as we'd clear if we next did a 'commit'.

12 years agoOnly use built-in stack size in clvmd - ignore lvm.conf.
Alasdair Kergon [Thu, 8 Dec 2011 21:24:08 +0000 (21:24 +0000)]
Only use built-in stack size in clvmd - ignore lvm.conf.

12 years agoTest for LCK_CLUSTER_VG directly in args[0].
Alasdair Kergon [Thu, 8 Dec 2011 18:32:33 +0000 (18:32 +0000)]
Test for LCK_CLUSTER_VG directly in args[0].
Drop unused LCK_LOCAL from debug msg.

12 years agoDon't pass LCK_LOCAL to clvmd - it's unused.
Alasdair Kergon [Thu, 8 Dec 2011 18:19:05 +0000 (18:19 +0000)]
Don't pass LCK_LOCAL to clvmd - it's unused.
Pass LCK_CLUSTER_VG in args[0] instead of args[1].

12 years agoUpdate comments. CLUSTER_VG belongs firmly to args[0].
Alasdair Kergon [Thu, 8 Dec 2011 18:09:48 +0000 (18:09 +0000)]
Update comments.  CLUSTER_VG belongs firmly to args[0].

12 years agoreinstate !first_time check
Alasdair Kergon [Thu, 8 Dec 2011 18:06:33 +0000 (18:06 +0000)]
reinstate !first_time check
(recovery from first_time failure would need different code)

12 years agotag uninit var
Alasdair Kergon [Thu, 8 Dec 2011 18:00:03 +0000 (18:00 +0000)]
tag uninit var

12 years agoFix lvm2-monitor init script to use normalized output when using vgs.
Peter Rajnoha [Wed, 7 Dec 2011 12:29:41 +0000 (12:29 +0000)]
Fix lvm2-monitor init script to use normalized output when using vgs.

12 years agoAdd policy based automated repair of RAID logical volumes
Jonathan Earl Brassow [Tue, 6 Dec 2011 19:30:15 +0000 (19:30 +0000)]
Add policy based automated repair of RAID logical volumes

The RAID plug-in for dmeventd now calls 'lvconvert --repair' to address failures
of devices in a RAID logical volume.  The action taken can be either to "warn"
or "allocate" a new device from any spares that may be available in the
volume group.  The action is designated by setting 'raid_fault_policy' in
lvm.conf - the default being "warn".

12 years agoFix FIXME and comment :-)
Milan Broz [Sat, 3 Dec 2011 11:36:10 +0000 (11:36 +0000)]
Fix FIXME and comment :-)

12 years agoSwitch locking bits to match RHEL5 version.
Milan Broz [Sat, 3 Dec 2011 11:34:35 +0000 (11:34 +0000)]
Switch locking bits to match RHEL5 version.

FIXME:
There is a problem with overloaded bit 0x80 in locking flag,
the bit flags array must be extended or changed.

12 years agoupdate old comment
Alasdair Kergon [Thu, 1 Dec 2011 14:57:30 +0000 (14:57 +0000)]
update old comment

12 years agoDon't allow two images to be split and tracked from a RAID LV at one time
Jonathan Earl Brassow [Thu, 1 Dec 2011 00:21:04 +0000 (00:21 +0000)]
Don't allow two images to be split and tracked from a RAID LV at one time

Also, don't allow a splitmirror operation on a RAID LV that is already tracking
a split, unless the operation is to stop the tracking and complete the split.
Example:
~> lvconvert --splitmirrors 1 --trackchanges vg/lv /dev/sdc1
# Now tracking changes - image can be merged back or split-off for good
~> lvconvert --splitmirrors 1 -n new_name vg/lv /dev/sdc1
# ^ Completes split ^

If a split is performed on a RAID that is tracking an already split image and
PVs are provided, we must ensure that
 1) the already split LV is represented in the PVs
 2) we are careful to split only the tracked image

12 years ago Don't allow size change of RAID LV that is tracking changes for a split image
Jonathan Earl Brassow [Thu, 1 Dec 2011 00:13:16 +0000 (00:13 +0000)]
  Don't allow size change of RAID LV that is tracking changes for a split image
  Don't allow size change of RAID sub-LVs independently

12 years agoDo not allow users to change the name of RAID sub-LVs or the name of the
Jonathan Earl Brassow [Thu, 1 Dec 2011 00:09:34 +0000 (00:09 +0000)]
Do not allow users to change the name of RAID sub-LVs or the name of the
RAID LV if it is tracking changes for a split image.

12 years agoWHATS_NEW for previous commit.
Jonathan Earl Brassow [Thu, 1 Dec 2011 00:05:40 +0000 (00:05 +0000)]
WHATS_NEW for previous commit.

12 years agoDo not allow users to change permissions on RAID sub-LVs.
Jonathan Earl Brassow [Thu, 1 Dec 2011 00:04:21 +0000 (00:04 +0000)]
Do not allow users to change permissions on RAID sub-LVs.

12 years agorefer to kernel docs for target info
Alasdair Kergon [Wed, 30 Nov 2011 22:32:37 +0000 (22:32 +0000)]
refer to kernel docs for target info
FIXME thin still missing

12 years agoUpdate comment on LCK_*DMEVENTD*.
Petr Rockai [Wed, 30 Nov 2011 17:02:37 +0000 (17:02 +0000)]
Update comment on LCK_*DMEVENTD*.

12 years agoFix clvmd to respect DMEVENTD_MONITOR_IGNORE. Fixes a bug where dmeventd
Petr Rockai [Wed, 30 Nov 2011 17:00:57 +0000 (17:00 +0000)]
Fix clvmd to respect DMEVENTD_MONITOR_IGNORE. Fixes a bug where dmeventd
actions caused clvmd to turn off monitoring of the volume causing the action.

12 years agoThe LV_REBUILD flag is not internal - bad comments in metadata-exported.h updated
Jonathan Earl Brassow [Wed, 30 Nov 2011 02:20:13 +0000 (02:20 +0000)]
The LV_REBUILD flag is not internal - bad comments in metadata-exported.h updated

12 years agoSupport the ability to replace specific devices in a RAID array.
Jonathan Earl Brassow [Wed, 30 Nov 2011 02:02:10 +0000 (02:02 +0000)]
Support the ability to replace specific devices in a RAID array.

RAID is not like traditional LVM mirroring.  LVM mirroring required failed
devices to be removed or the logical volume would simply hang.  RAID arrays can
keep on running with failed devices.  In fact, for RAID types other than RAID1,
removing a device would mean substituting an error target or converting to a
lower level RAID (e.g. RAID6 -> RAID5, or RAID4/5 to RAID0).  Therefore, rather
than removing a failed device unconditionally and potentially allocating a
replacement, RAID allows the user to "replace" a device with a new one.  This
approach is a 1-step solution vs the current 2-step solution.

example> lvconvert --replace <dev_to_remove> vg/lv [possible_replacement_PVs]

'--replace' can be specified more than once.

example> lvconvert --replace /dev/sdb1 --replace /dev/sdc1 vg/lv

12 years agoFix last checkin for replicator.
Peter Rajnoha [Tue, 29 Nov 2011 12:10:38 +0000 (12:10 +0000)]
Fix last checkin for replicator.

12 years agoAdd activation/use_linear_target enabled by default. (prajnoha)
Alasdair Kergon [Mon, 28 Nov 2011 20:37:51 +0000 (20:37 +0000)]
Add activation/use_linear_target enabled by default.   (prajnoha)

LVM metadata knows only of striped segments - not linear ones.
The activation code detects segments with a single stripe and switches
them to use the linear target.

If the new lvm.conf setting is set to 0 (e.g. in a test script), this
'optimisation' is turned off.

12 years agoTry longer sleep
Zdenek Kabelac [Wed, 23 Nov 2011 15:27:14 +0000 (15:27 +0000)]
Try longer sleep

Seems like testing machine could be busy - so 10s might not be enough
for rechecking status.

12 years agoCleanup files from testing
Zdenek Kabelac [Wed, 23 Nov 2011 14:56:47 +0000 (14:56 +0000)]
Cleanup files from testing

Cleanup generated files from coverage testing.
Do not skip standard .o compilation for lib/not and lib/harness.
Make a bit longer string in harness to fit new shell/ in.

12 years agoSwap condition order
Zdenek Kabelac [Wed, 23 Nov 2011 13:03:57 +0000 (13:03 +0000)]
Swap condition order

Swap condtion so the make line does not return 'false'.
Remove cleanup of lvm2api.sh since it is not created anymore.

12 years agoPut back devmapper-event linkage
Zdenek Kabelac [Wed, 23 Nov 2011 13:02:17 +0000 (13:02 +0000)]
Put back devmapper-event linkage

Older systems are not able to get this library from lvm2api library and need
this library to be passed to the linker (i.e. Debian Lenny).

12 years agoCleanup test makefiles
Zdenek Kabelac [Wed, 23 Nov 2011 12:21:41 +0000 (12:21 +0000)]
Cleanup test makefiles

Simplify /api makefile and use SUBDIRS target for test dir.
Properly cleanup Makefiles with distclean in /test.
Use symbolic links for shell scripts for non-srcdir compilation.

12 years agoSplit gcc warning options
Zdenek Kabelac [Wed, 23 Nov 2011 12:19:23 +0000 (12:19 +0000)]
Split gcc warning options

Use gcc warning options only for .c -> .o compilation
So it makes the output more clear.

Do not use INCLUDES and DEFS for .o -> .so.

Do not use CFLAGS for deps .d generation.

12 years agoUse 3 digits for chmod
Zdenek Kabelac [Wed, 23 Nov 2011 12:18:42 +0000 (12:18 +0000)]
Use 3 digits for chmod

Use same sized chmod params (0 are filled from left on its own)
and we use just 3 digits elsewhere.

12 years agoMove y/n prompts to stderr and repeat if response has both 'n' and 'y'.
Alasdair Kergon [Wed, 23 Nov 2011 01:34:38 +0000 (01:34 +0000)]
Move y/n prompts to stderr and repeat if response has both 'n' and 'y'.

(Note that in a future release we might make this stricter and insist
on exactly 'y' or 'n'.)

13 years ago--addtag instead of --tag
Peter Rajnoha [Tue, 22 Nov 2011 13:54:05 +0000 (13:54 +0000)]
--addtag instead of --tag

13 years agoCleanup gcc warning
Zdenek Kabelac [Mon, 21 Nov 2011 13:15:40 +0000 (13:15 +0000)]
Cleanup gcc warning

bitset_t.c:39: warning: 'last' may be used uninitialized in this function

Compiler is not smart enough to see the code path which avoid using
unitialized 'last'.

13 years agoAdd some cflags to ldflags
Zdenek Kabelac [Mon, 21 Nov 2011 13:11:03 +0000 (13:11 +0000)]
Add some cflags to ldflags

Things like gcov needs the compilation flags for linker as well.
TODO: cleanup compilation flags usage

13 years agoMore of WHATS_NEW.
Petr Rockai [Mon, 21 Nov 2011 12:44:38 +0000 (12:44 +0000)]
More of WHATS_NEW.

13 years agoUpdate WHATS_NEW.
Petr Rockai [Mon, 21 Nov 2011 12:33:56 +0000 (12:33 +0000)]
Update WHATS_NEW.

13 years agoFix a bug in dmeventd snapshot monitoring code where the monitoring threshold
Petr Rockai [Mon, 21 Nov 2011 12:31:18 +0000 (12:31 +0000)]
Fix a bug in dmeventd snapshot monitoring code where the monitoring threshold
would grow with subsequent snapshot extensions (RHBZ 754198).

13 years agoFix the last fix (t-XXX -> shell/XXX).
Petr Rockai [Mon, 21 Nov 2011 11:36:53 +0000 (11:36 +0000)]
Fix the last fix (t-XXX -> shell/XXX).

13 years agoFix the fallout in shell tests from the t-XXX -> shell/XXX move.
Petr Rockai [Mon, 21 Nov 2011 11:25:35 +0000 (11:25 +0000)]
Fix the fallout in shell tests from the t-XXX -> shell/XXX move.

13 years agoAdd CUnit testing support
Zdenek Kabelac [Mon, 21 Nov 2011 10:40:21 +0000 (10:40 +0000)]
Add CUnit testing support

Regenerate configure for unit test support.

13 years agoTidy the shell tests into their own subdir. We now have:
Petr Rockai [Mon, 21 Nov 2011 00:15:42 +0000 (00:15 +0000)]
Tidy the shell tests into their own subdir. We now have:
- test/lib -- infrastructure and helper code
- test/api -- liblvm2app API tests
- test/unit -- C-based unit tests
- test/shell -- shell-based functional tests

13 years agoFix a syntax error.
Petr Rockai [Sun, 20 Nov 2011 21:55:24 +0000 (21:55 +0000)]
Fix a syntax error.

13 years agoImplement a CUnit-based runner for unit tests. Copy and adapt (actual unit)
Petr Rockai [Sun, 20 Nov 2011 21:43:20 +0000 (21:43 +0000)]
Implement a CUnit-based runner for unit tests. Copy and adapt (actual unit)
tests from unit-tests/*/*_t.c (now under test/unit). The valgrind/pool test is
missing, since it's not really a unit test and probably not too valuable
either. Available via "make unit" (and if --enable-testing was passed to
configure, also executed by make check).

13 years agoDon't ignore configure --mandir and --infodir.
Alasdair Kergon [Sun, 20 Nov 2011 20:52:09 +0000 (20:52 +0000)]
Don't ignore configure --mandir and --infodir.

13 years agoDrop pool memory allocated in lv_has_target_type
Zdenek Kabelac [Fri, 18 Nov 2011 19:42:03 +0000 (19:42 +0000)]
Drop pool memory allocated in lv_has_target_type

Remove FIXMES - there should not be any pool free call since
the memory pool is from device manager, and pool is detroyed
after the operation, so doing extra free here would not help here.

However lv_has_target_type() is using cmd mempool so here the extra
call for dm_pool_free makes sence.

13 years agoRemove constant expression check
Zdenek Kabelac [Fri, 18 Nov 2011 19:36:10 +0000 (19:36 +0000)]
Remove constant expression check

"result_independent_of_operands: ((dev->dev & 0xfff00UL) >> 8) ==
18446744073709551615UL /* -1 */ is always false regardless of the values
of its operands (logical operand of if)."

'dev->dev' is set in dev-cache.c _insert() and it's not expectable
st_rdev would have '-1'

This code has been introduced with drbd support commit and code never
worked - so eliminated.

13 years agoCheck target type name for DM_MAX_TYPE_NAME length
Zdenek Kabelac [Fri, 18 Nov 2011 19:34:02 +0000 (19:34 +0000)]
Check target type name for DM_MAX_TYPE_NAME length

Avoid creation of target type name when it's longer then
DM_MAX_TYPE_NAME (noticed by static analyzer where the
sp.target_type might be missing '\0' at the end.)

Before patch:

$> dmsetup create long
0 1000 looooooooooooooooooooooooooong
^D
device-mapper: reload ioctl failed: Invalid argument

After patch:

$> dmsetup create xxx
0 1000 looooooooooooooooooooooooooong
Target type name looooooooooooooooooooooooooong is too long.
Command failed

13 years agoReplace dynamic buffer allocations for PATH_MAX
Zdenek Kabelac [Fri, 18 Nov 2011 19:31:09 +0000 (19:31 +0000)]
Replace dynamic buffer allocations for PATH_MAX

Use static buffer instead of stack allocated buffer.
This reduces stack size usage of lvm tool and the
change is very simple.

Since the whole library is not thread safe - it should not
add any new problems - and if there will be some conversion
it's easy to convert this to use some preallocated buffer.

13 years agoUnlock memory for vg_write
Zdenek Kabelac [Fri, 18 Nov 2011 19:28:00 +0000 (19:28 +0000)]
Unlock memory for vg_write

For write we do not need to hold memory locked.
This relaxes many conditions and avoid problems when allocating
a lot of memory for writting metadata buffers.
(In case of huge MDA size this would lead to mismatch between
locked and unlocked memory region size).

Add also internal check we are not writing in critical section.

13 years agoQuery before removing inactive snapshots
Zdenek Kabelac [Fri, 18 Nov 2011 19:25:20 +0000 (19:25 +0000)]
Query before removing inactive snapshots

Removal of an inactive origin removes also all related snapshots.

When we now support 'old' external snapshots with thin volumes,
removal of pool will not only drop all thin volumes, but as
a consequence also all snapshots - which might be seen a bit
unexpected for the user - so add a query to confirm such action.

lvremove -f will skip the prompt.

13 years agoAllow to activate snapshot
Zdenek Kabelac [Fri, 18 Nov 2011 19:22:49 +0000 (19:22 +0000)]
Allow to activate snapshot

Add extra code to active and deactivate related
snapshots and origin when user specifies snapshot
logical volume as lvchange parameter.

Before patch:

$> lvs -a
  LV    VG   Attr     LSize  Pool Origin Snap%  Move Log Copy%  Convert
  lvol0 mvg  owi-a-s-  1.00k
  lvol1 mvg  swi-a-s- 16.00k      lvol0    0.00
  lvol2 mvg  swi-a-s- 16.00k      lvol0    0.00

$> lvchange -an mvg/lvol2; echo $?
  Can't change snapshot logical volume "lvol2".
5

After patch:

$> lvchange -an mvg/lvol2
Change of snapshot lvol2 will also change its origin lvol0 and 1 other
snapshot(s). Proceed? [y/n]: n
  Logical volume lvol2 not changed.

$> lvchange -y -an mvg/lvol2; echo $?
0

$> lvs -a
  LV    VG   Attr     LSize  Pool Origin Snap%  Move Log Copy%  Convert
  lvol0 mvg  owi---s-  1.00k
  lvol1 mvg  swi---s- 16.00k      lvol0
  lvol2 mvg  swi---s- 16.00k      lvol0

13 years agoSkip non-virtual snapshots for availability
Zdenek Kabelac [Fri, 18 Nov 2011 19:19:22 +0000 (19:19 +0000)]
Skip non-virtual snapshots for availability

Change the behavior of availability change.
With this patch the lvgchange returns success
when VG is properly changed.

It skips non-virtual origins from being changes when
only 'vg' is specified as lvchange -a parameter.

Before this change we had this:

$> lvs -a
  LV    VG   Attr     LSize   Pool Origin
  lvol0 mvg  owi-a-s- 128.00k
  lvol1 mvg  owi-a-s- 128.00k
  lvol2 mvg  swi-a-s-   1.25m      lvol0
  lvol3 mvg  swi-a-s-   1.25m      lvol1

$> lvchange -an mvg ; echo $?
  Can't change snapshot logical volume "lvol2".
  Can't change snapshot logical volume "lvol3".
5

$> lvs -a
  LV    VG   Attr     LSize   Pool Origin
  lvol0 mvg  owi---s- 128.00k
  lvol1 mvg  owi---s- 128.00k
  lvol2 mvg  swi---s-   1.25m      lvol0
  lvol3 mvg  swi---s-   1.25m      lvol1

$> lvchange -ay mvg ; echo $?
  Can't change snapshot logical volume "lvol2".
  Can't change snapshot logical volume "lvol3".
5

$> lvs
  LV    VG   Attr     LSize   Pool Origin
  lvol0 mvg  owi-a-s- 128.00k
  lvol1 mvg  owi-a-s- 128.00k
  lvol2 mvg  swi-a-s-   1.25m      lvol0
  lvol3 mvg  swi-a-s-   1.25m      lvol1

After commit:

$> lvs -a
  LV    VG   Attr     LSize   Pool Origin
  lvol0 mvg  owi-a-s- 128.00k
  lvol1 mvg  owi-a-s- 128.00k
  lvol2 mvg  swi-a-s-   1.25m      lvol0
  lvol3 mvg  swi-a-s-   1.25m      lvol1

$> lvchange -an mvg ; echo $?
0

$> lvs -a
  LV    VG   Attr     LSize   Pool Origin
  lvol0 mvg  owi---s- 128.00k
  lvol1 mvg  owi---s- 128.00k
  lvol2 mvg  swi---s-   1.25m      lvol0
  lvol3 mvg  swi---s-   1.25m      lvol1

$> lvchange -ay mvg ; echo $?
0

$> lvs -a
  LV    VG   Attr     LSize   Pool Origin
  lvol0 mvg  owi-a-s- 128.00k
  lvol1 mvg  owi-a-s- 128.00k
  lvol2 mvg  swi-a-s-   1.25m      lvol0
  lvol3 mvg  swi-a-s-   1.25m      lvol1

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