]> sourceware.org Git - lvm2.git/log
lvm2.git
12 years agoMove RAID convert tests to new file, t-lvconvert-raid.sh
Jonathan Earl Brassow [Thu, 18 Aug 2011 19:56:17 +0000 (19:56 +0000)]
Move RAID convert tests to new file, t-lvconvert-raid.sh

There is duplicate code in t-lvconvert-raid.sh and t-lvcreate-raid.sh.
This should be moved into a common file which is then sourced by these two
files.  I'll wait to move the duplicate code until I can talk to mornfall.

12 years agoAdd ability to merge back a RAID1 image that has been split w/ --trackchanges
Jonathan Earl Brassow [Thu, 18 Aug 2011 19:43:08 +0000 (19:43 +0000)]
Add ability to merge back a RAID1 image that has been split w/ --trackchanges

Argument layout is very similar to the merge command for snapshots.

12 years agoAdd support for m-way to n-way up-convert in RAID1 (no linear to n-way yet)
Jonathan Earl Brassow [Thu, 18 Aug 2011 19:41:21 +0000 (19:41 +0000)]
Add support for m-way to n-way up-convert in RAID1 (no linear to n-way yet)

This patch adds the ability to upconvert a raid1 array - say from 2-way to
3-way.  It does not yet support upconverting linear to n-way.

The 'raid' device-mapper target allows for individual components (images) of
an array to be specified for rebuild.  This mechanism is used when adding
new images to the array so that the new images can be resync'ed while the
rest of the images in the array can remain 'in-sync'.  (There is no
mirror-on-mirror layering required.)

12 years agoAdd the ability to split an image from the mirror and track changes.
Jonathan Earl Brassow [Thu, 18 Aug 2011 19:38:26 +0000 (19:38 +0000)]
Add the ability to split an image from the mirror and track changes.

~> lvconvert --splitmirrors 1 --trackchanges vg/lv
The '--trackchanges' option allows a user the ability to use an image of
a RAID1 array for the purposes of temporary read-only access.  The image
can be merged back into the array at a later time and only the blocks that
have changed in the array since the split will be resync'ed.  This
operation can be thought of as a partial split.  The image is never completely
extracted from the array, in that the array reserves the position the device
occupied and tracks the differences between the array and the split image via
a bitmap.  The image itself is rendered read-only and the name (<LV>_rimage_*)
cannot be changed.  The user can complete the split (permanently splitting the
image from the array) by re-issuing the 'lvconvert' command without the
'--trackchanges' argument and specifying the '--name' argument.
~> lvconvert --splitmirrors 1 --name my_split vg/lv
Merging the tracked image back into the array is done with the '--merge'
option (included in a follow-on patch).
~> lvconvert --merge vg/lv_rimage_<n>

The internal mechanics of this are relatively simple.  The 'raid' device-
mapper target allows for the specification of an empty slot in an array
via '- -'.  This is what will be used if a partial activation of an array
is ever required.  (It would also be possible to use 'error' targets in
place of the '- -'.)  If a RAID image is found to be both read-only and
visible, then it is considered separate from the array and '- -' is used
to hold it's position in the array.  So, all that needs to be done to
temporarily split an image from the array /and/ cause the kernel target's
bitmap to track (aka "mark") changes made is to make the specified image
visible and read-only.  To merge the device back into the array, the image
needs to be returned to the read/write state of the top-level LV and made
invisible.

12 years agoAdd --splitmirrors support for RAID1 (1 image only)
Jonathan Earl Brassow [Thu, 18 Aug 2011 19:34:18 +0000 (19:34 +0000)]
Add --splitmirrors support for RAID1 (1 image only)

Users already have the ability to split an image from an LV of "mirror"
segtype.  This patch extends that ability to LVs of "raid1" segtype.

This patch only allows a single image to be split off, however.  (The
"mirror" segtype allows an arbitrary number of images to be split off.
e.g.  4-way => 3-way/linear, 2-way/2-way, linear,3-way)

12 years agoWhen down-converting RAID1, don't activate sub-lvs between suspend/resume
Jonathan Earl Brassow [Thu, 18 Aug 2011 19:31:33 +0000 (19:31 +0000)]
When down-converting RAID1, don't activate sub-lvs between suspend/resume
of top-level LV.

We can't activate sub-lv's that are being removed from a RAID1 LV while it
is suspended.  However, this is what was being used to have them show-up
so we could remove them.  'sync_local_dev_names' is a sufficient and
proper replacement and can be done after the top-level LV is resumed.

12 years agoAdd -V as short form of --virtualsize in lvcreate.
Alasdair Kergon [Wed, 17 Aug 2011 15:15:36 +0000 (15:15 +0000)]
Add -V as short form of --virtualsize in lvcreate.

12 years agoCompiler warning fixes, better error messaging, and cosmetic changes.
Jonathan Earl Brassow [Sat, 13 Aug 2011 04:28:34 +0000 (04:28 +0000)]
Compiler warning fixes, better error messaging, and cosmetic changes.

1) add new function 'raid_remove_top_layer' which will be useful
to other conversion functions later (also cleans up code)
2) Add error messages if raid_[extract|add]_images fails
3) Add function prototypes to prevent compiler warnings when
compiling with '--with-raid=shared'

13 years agomakefile fixes
Alasdair Kergon [Fri, 12 Aug 2011 13:03:35 +0000 (13:03 +0000)]
makefile fixes

13 years agocore removed with clean not distclean
Alasdair Kergon [Fri, 12 Aug 2011 12:56:38 +0000 (12:56 +0000)]
core removed with clean not distclean

13 years agoDo not remove makefile during "make clean".
Milan Broz [Fri, 12 Aug 2011 07:57:24 +0000 (07:57 +0000)]
Do not remove makefile during "make clean".

13 years agopost-release
Alasdair Kergon [Fri, 12 Aug 2011 02:34:08 +0000 (02:34 +0000)]
post-release

13 years agomore pre-release fixes
Alasdair Kergon [Fri, 12 Aug 2011 02:16:46 +0000 (02:16 +0000)]
more pre-release fixes

13 years agoDrop CCS* variables no longer used.
Alasdair Kergon [Fri, 12 Aug 2011 01:52:16 +0000 (01:52 +0000)]
Drop CCS* variables no longer used.

13 years agopre-release
Alasdair Kergon [Fri, 12 Aug 2011 01:34:11 +0000 (01:34 +0000)]
pre-release

13 years agoVarious code clean-ups (s/malloc/zalloc/, new msgs, etc)
Jonathan Earl Brassow [Thu, 11 Aug 2011 21:32:18 +0000 (21:32 +0000)]
Various code clean-ups (s/malloc/zalloc/, new msgs, etc)

Fix a couple more issues that kabi found.
- Add some error messages in failure cases
- s/malloc/zalloc/
- use vg->vgmem for lv names instead of vg->cmd->mem

13 years agoFix memleak of geometry buffer
Zdenek Kabelac [Thu, 11 Aug 2011 20:49:33 +0000 (20:49 +0000)]
Fix memleak of geometry buffer

Looks like this function is not used too often - thus leak was discovered
by static analyzis (Coverity).

13 years agoAdd missing checks for function return codes.
Jonathan Earl Brassow [Thu, 11 Aug 2011 19:38:00 +0000 (19:38 +0000)]
Add missing checks for function return codes.

Some functions were being called without having their return values checked.

13 years agoTrivial, add void to ignore dm_snprinf result
Zdenek Kabelac [Thu, 11 Aug 2011 19:21:42 +0000 (19:21 +0000)]
Trivial, add void to ignore dm_snprinf result

13 years agopre-release fixes incl make distclean and configure --with-raid=none/shared
Alasdair Kergon [Thu, 11 Aug 2011 19:18:17 +0000 (19:18 +0000)]
pre-release fixes incl make distclean and configure --with-raid=none/shared

13 years agoAdd some log_error msg's and fix potential segfault
Jonathan Earl Brassow [Thu, 11 Aug 2011 19:17:10 +0000 (19:17 +0000)]
Add some log_error msg's and fix potential segfault

Thanks to kabi for spotting these - especially the possibility for
segfault if a loop runs all the way through without finding a match.

13 years agoAdd ability to down-convert RAID1 arrays.
Jonathan Earl Brassow [Thu, 11 Aug 2011 18:24:40 +0000 (18:24 +0000)]
Add ability to down-convert RAID1 arrays.

Also, add some simple RAID tests to testsuite.

13 years agoUpdate udev rules to skip DM flags decoding for removed devices
Zdenek Kabelac [Thu, 11 Aug 2011 17:55:29 +0000 (17:55 +0000)]
Update udev rules to skip DM flags decoding for removed devices

Skip decoding of DM flags when device is removed.

We currently need DM flags only for add|change events. So forking
dmsetup process for removed devices is a waste of CPU time.

Udev is already quite slow, so make it just a tiny bit faster.

13 years agoAdd detect_internal_vg_cache_corruption to lvm.conf
Zdenek Kabelac [Thu, 11 Aug 2011 17:46:13 +0000 (17:46 +0000)]
Add detect_internal_vg_cache_corruption to lvm.conf

Add config option to enable crc checking of VG structures.
Currently it's disabled by default.

For the internal test-suite this check it is enabled.

Note: In the case the internal error is detected, debug build with
compile option DEBUG_ENFORCE_POOL_LOCKING helps to catch the source
of the problem.

13 years agoLock memory for shared VG
Zdenek Kabelac [Thu, 11 Aug 2011 17:34:30 +0000 (17:34 +0000)]
Lock memory for shared VG

Use debug pool locking functionality. So the command could check,
whether the memory in the pool has not been modified.

For lv_postoder() instead of unlocking and locking for every changed
struct status member do it once when entering and leaving function.
(mprotect would trap each such memory access).
Currently lv_postoder() does not modify other part of vg structure
then status flags of each LV with flags that are reverted back to
its original state after function exit.

13 years agoAdd memory pool locking functions
Zdenek Kabelac [Thu, 11 Aug 2011 17:29:04 +0000 (17:29 +0000)]
Add memory pool locking functions

Adding debuging functionality to lock and unlock memory pool.

2 ways to debug code:
crc - is default checksum/hash of the locked pool.
      It gets slower when the pool is larger - so the check is only
      made when VG is finaly released and it has been used more then
      once.Thus the result is rather informative.

mprotect - quite fast all the time - but requires more memory and
           currently it is using posix_memalign() - this could be
   later modified to use dm_malloc() and align internally.
           Tool segfaults when locked memory is modified and core
   could be examined for faulty code section (backtrace).

Only fast memory pools could use mprotect for now -
so such debug builds cannot be combined with DEBUG_POOL.

13 years agoCache and share generated VG structs
Zdenek Kabelac [Thu, 11 Aug 2011 17:24:23 +0000 (17:24 +0000)]
Cache and share generated VG structs

Extend vginfo cache with cached VG structure. So if the same metadata
are use, skip mda decoding in the case, the same data are in use.
This helps for operations like activation of all LVs in one VG,
where same data were decoded giving the same output result.

Patch adds 1-to-1 connection between volume_group and lvmcache_vginfo.

13 years agoRemove dev name prefix from dmsetup line output if major and minor is used.
Milan Broz [Thu, 11 Aug 2011 17:06:24 +0000 (17:06 +0000)]
Remove dev name prefix from dmsetup line output if major and minor is used.

13 years agoFix possible format instance memory leaks and premature releases in _vg_read.
Peter Rajnoha [Thu, 11 Aug 2011 16:31:40 +0000 (16:31 +0000)]
Fix possible format instance memory leaks and premature releases in _vg_read.

13 years agoSuppress locking error messages in monitoring init scripts.
Peter Rajnoha [Thu, 11 Aug 2011 15:27:46 +0000 (15:27 +0000)]
Suppress locking error messages in monitoring init scripts.

13 years agoNeed 'ifdef' checks around RAID monitoring functions as well to catch the
Jonathan Earl Brassow [Thu, 11 Aug 2011 14:00:58 +0000 (14:00 +0000)]
Need 'ifdef' checks around RAID monitoring functions as well to catch the
case where the user does not want dmeventd support compiled in.

13 years agoFix build of raid without dmeventd.
Milan Broz [Thu, 11 Aug 2011 13:30:36 +0000 (13:30 +0000)]
Fix build of raid without dmeventd.

13 years agoNever ever use uninitialised descriptors if pipe() fails
Milan Broz [Thu, 11 Aug 2011 12:57:10 +0000 (12:57 +0000)]
Never ever use uninitialised descriptors if pipe() fails
(because of maximum open count fd exceeded or so).

Better return busy message, so even clients fail in more controlled way.

Without patch,  clvmd crashes with various strange backtraces
if under heavy load of connection requests.

https://bugzilla.redhat.com/show_bug.cgi?id=698393
https://bugzilla.redhat.com/show_bug.cgi?id=697945

(It still can OOM but that's different issue.)

13 years agoAdd dmeventd monitoring for RAID devices.
Jonathan Earl Brassow [Thu, 11 Aug 2011 05:00:20 +0000 (05:00 +0000)]
Add dmeventd monitoring for RAID devices.

13 years agoAdd RAID metadata devices to considered devices in _add_lv_to_dtree.
Jonathan Earl Brassow [Thu, 11 Aug 2011 04:18:17 +0000 (04:18 +0000)]
Add RAID metadata devices to considered devices in _add_lv_to_dtree.

_add_lv_to_dtree must also add RAID metadata devices.

13 years agoFix renaming of RAID logical volumes.
Jonathan Earl Brassow [Thu, 11 Aug 2011 03:29:51 +0000 (03:29 +0000)]
Fix renaming of RAID logical volumes.

The function 'for_each_sub_lv', which rename uses, was not handling the
RAID metadata areas.  Thus, the metadata LVs were not being renamed.

13 years agoJust add new lines between header comment
Zdenek Kabelac [Wed, 10 Aug 2011 20:26:41 +0000 (20:26 +0000)]
Just add new lines between header comment

13 years agoReplace free_vg with release_vg
Zdenek Kabelac [Wed, 10 Aug 2011 20:25:29 +0000 (20:25 +0000)]
Replace free_vg with release_vg

Move the free_vg() to  vg.c  and replace free_vg  with release_vg
and make the _free_vg internal.

Patch is needed for sharing VG in vginfo cache so the release_vg function name
is a better fit here.

13 years agoRemove INCONSISTENT_VG flag
Zdenek Kabelac [Wed, 10 Aug 2011 20:17:33 +0000 (20:17 +0000)]
Remove INCONSISTENT_VG flag

As this flag could not have been set by the current code - removing it.

Note: because of the wrong code logic this call:

lvmcache_update_vg(correct_vg, correct_vg->status & PRECOMMITTED &
   (inconsistent ? INCONSISTENT_VG : 0));

had always passed '0' - now after flag removal it's passing
PRECOMMITTED flag in - this present functinal change in this patch.

To match the original functionality - 0 had to be always passed.
More testing is needed here.

13 years agoFix compiler warning.
Jonathan Earl Brassow [Wed, 10 Aug 2011 16:44:17 +0000 (16:44 +0000)]
Fix compiler warning.

Compiler complaining that meta_lv could be used uninitialized.  (Not true
because it is protected by 'clear_metadata'.)  I switched to using 'lv->vg',
as it makes no difference to vg_[write|commit].

13 years agoIf anything bad happens and unlocking fails
Milan Broz [Wed, 10 Aug 2011 16:07:53 +0000 (16:07 +0000)]
If anything bad happens and unlocking fails
(here clvmd crashed in the middle of operation),
lock is not removed from cache - here is one example:

locking/cluster_locking.c:497       Locking VG V_vg_test UN (VG) (0x6)
locking/cluster_locking.c:113   Error writing data to clvmd: Broken pipe
locking/locking.c:399         <backtrace>
locking/locking.c:461         <backtrace>
  Internal error: Volume Group vg_test was not unlocked

Code should always remove lock info from lvmcache and update counters
on unlock, even if unlock fails.

13 years agoInitialise clvmd locks before lvm context to avoid open descriptor leaks.
Milan Broz [Wed, 10 Aug 2011 11:00:32 +0000 (11:00 +0000)]
Initialise clvmd locks before lvm context to avoid open descriptor leaks.

(At least /dev/mapper/control is open after lvm context init.)

13 years agoautoreconf
Alasdair Kergon [Tue, 9 Aug 2011 18:14:48 +0000 (18:14 +0000)]
autoreconf

13 years agoRemove obsoleted GULM clvmd cluster locking support.
Milan Broz [Tue, 9 Aug 2011 18:11:00 +0000 (18:11 +0000)]
Remove obsoleted GULM clvmd cluster locking support.

13 years agoRemove support for the original dm ioctl interface version 1.
Alasdair Kergon [Tue, 9 Aug 2011 17:56:47 +0000 (17:56 +0000)]
Remove support for the original dm ioctl interface version 1.
Leave the basic support for multiple versions in case we have a new version
in future.

13 years agoSuppress low-level locking errors and warnings while using --sysinit.
Peter Rajnoha [Tue, 9 Aug 2011 11:44:57 +0000 (11:44 +0000)]
Suppress low-level locking errors and warnings while using --sysinit.

Today, we use "suppress_messages" flag (set internally in init_locking fn based
on 'ignorelockingfailure() && getenv("LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES")'.
This way, we can suppress high level messages like "File-based locking
initialisation failed" or "Internal cluster locking initialisation failed".

However, each locking has its own sequence of initialization steps and these
could log some errors as well. It's quite misleading for the user to see such
errors and warnings if the "--sysinit" is used (and so the ignorelockingfailure
&& LVM_SUPPRESS_LOCKING_FAILURE_MESSAGES environment variable). Errors and
warnings from these intermediary steps should be suppressed as well if requested.

This patch propagates the "suppress_messages" flag deeper into locking init
functions. I've also added these flags for other locking types for consistency,
though it's not actually used for no_locking and readonly_locking.

13 years agoRemove unused 'origin' variable in lv_remove_single function.
Peter Rajnoha [Fri, 5 Aug 2011 09:21:13 +0000 (09:21 +0000)]
Remove unused 'origin' variable in lv_remove_single function.

13 years agoAdd missing check for allocation failure
Zdenek Kabelac [Thu, 4 Aug 2011 17:56:11 +0000 (17:56 +0000)]
Add missing check for allocation failure

Static analyzer discovered missing check.

13 years agoRemove unused inconsistent_seqno
Zdenek Kabelac [Thu, 4 Aug 2011 15:18:10 +0000 (15:18 +0000)]
Remove unused inconsistent_seqno

Last usage was removed in Petr's commit related to VG mda repair fix
where relaxed check starts to ignore inconsistencies coming from
PVs that are marked MISSING - thus removing unused variable.

13 years agoAdd 'empty' command
Zdenek Kabelac [Thu, 4 Aug 2011 14:54:48 +0000 (14:54 +0000)]
Add 'empty' command

Using empty command ';' here makes the code look nicer.

13 years agoRemove meaningless const type qualifiers on cast type
Zdenek Kabelac [Thu, 4 Aug 2011 14:30:51 +0000 (14:30 +0000)]
Remove meaningless const type qualifiers on cast type

Static analyzis noticed we do not really need them - so removing.

13 years agoRemove self assigment which has no effect
Zdenek Kabelac [Thu, 4 Aug 2011 14:11:28 +0000 (14:11 +0000)]
Remove self assigment which has no effect

Just a tiny code cleanup found by analyzer.

13 years agoMinor memory leak fix
Zdenek Kabelac [Thu, 4 Aug 2011 12:40:24 +0000 (12:40 +0000)]
Minor memory leak fix

Defer the test of the function return value after the string memory is released.
Otherwise in this error path the string would present memory leak.
(Thought in this case we are already out of memory...)

13 years agoAdd test for fcntl error in singlenode client code.
Zdenek Kabelac [Thu, 4 Aug 2011 12:13:50 +0000 (12:13 +0000)]
Add test for fcntl error in singlenode client code.

Static analyzer noticed this check could be handy.

13 years agoRemove --force option from lvrename manpage.
Zdenek Kabelac [Thu, 4 Aug 2011 10:14:42 +0000 (10:14 +0000)]
Remove --force option from lvrename manpage.

13 years agoAdd missing new line in lvrename help text.
Zdenek Kabelac [Thu, 4 Aug 2011 10:12:44 +0000 (10:12 +0000)]
Add missing new line in lvrename help text.

13 years agoAdd basic RAID segment type(s) support.
Jonathan Earl Brassow [Tue, 2 Aug 2011 22:07:20 +0000 (22:07 +0000)]
Add basic RAID segment type(s) support.

Implementation described in doc/lvm2-raid.txt.

Basic support includes:
- ability to create RAID 1/4/5/6 arrays
- ability to delete RAID arrays
- ability to display RAID arrays
Notable missing features (not included in this patch):
- ability to clean-up/repair failures
- ability to convert RAID segment types
- ability to monitor RAID segment types

13 years agoChange DEFAULT_UDEV_SYNC to 1 so udev_sync is used even without any config.
Peter Rajnoha [Tue, 2 Aug 2011 10:49:57 +0000 (10:49 +0000)]
Change DEFAULT_UDEV_SYNC to 1 so udev_sync is used even without any config.

This should be set by default! Normally we have "activation/udev_sync = 1"
in lvm.conf (example.conf.in). But if we use lvm2 without any config file
(or without a definition within '--config' option) the DEFAULT_UDEV_SYNC
is used instead. Together with verify_udev_operations=0 (when we rely on
udev fully), this can cause races as the node could be missing when needed.

(See also https://bugzilla.redhat.com/show_bug.cgi?id=723144)

13 years agoAdd support for systemd file descriptor handover in dmeventd.
Peter Rajnoha [Thu, 28 Jul 2011 13:06:50 +0000 (13:06 +0000)]
Add support for systemd file descriptor handover in dmeventd.

Systemd preloads file descriptors for us and passes them in for
newly spawned daemon when using on-demand fifo (or socket)
based activation.

This patch adds checks for file descriptors preloaded by
systemd and uses them instead of opening the FIFOs again
to properly support on-demand FIFO-based activation.

(We'll change FIFOs to sockets soon - but still this
part of the code will stay almost the same.)

13 years agoAdd support for new oom killer adjustment interface (oom_score_adj).
Peter Rajnoha [Thu, 28 Jul 2011 13:03:37 +0000 (13:03 +0000)]
Add support for new oom killer adjustment interface (oom_score_adj).

The filename to adjust the oom score was changed in 2.6.36.
We should use oom_score_adj instead of oom_adj (which is still
there under /proc, but it's scheduled for removal in August 2012).

New oom_score_adj uses a range from -1000 (OOM_SCORE_ADJ_MIN,
disable oom killing) to 1000 (OOM_SCORE_ADJ_MAX).

13 years agoautoreconf
Peter Rajnoha [Thu, 28 Jul 2011 12:59:44 +0000 (12:59 +0000)]
autoreconf

13 years agoConfigure and makefile changes for newly added systemd unit files.
Peter Rajnoha [Thu, 28 Jul 2011 12:57:26 +0000 (12:57 +0000)]
Configure and makefile changes for newly added systemd unit files.

13 years agoAdd systemd unit files for dmeventd.
Peter Rajnoha [Thu, 28 Jul 2011 12:54:28 +0000 (12:54 +0000)]
Add systemd unit files for dmeventd.

13 years agolvmetad: Edit the MISSING_PV flags only after making a "reply" copy of the
Petr Rockai [Mon, 25 Jul 2011 17:59:50 +0000 (17:59 +0000)]
lvmetad: Edit the MISSING_PV flags only after making a "reply" copy of the
metadata, which is then serialised and discarded. This fixes a couple of
outstanding TODO items about handling the MISSING flags correctly.

13 years agolvmetad: Check integrity of multiple metadata copies, i.e. ensure that seqno
Petr Rockai [Mon, 25 Jul 2011 15:51:51 +0000 (15:51 +0000)]
lvmetad: Check integrity of multiple metadata copies, i.e. ensure that seqno
equality implies metadata equality. Signal error in response to any update
requests that try to overwrite metadata without providing a higher seqno.

13 years agolvmetad: A couple of TODOs, and fix a few trivial memory leaks.
Petr Rockai [Mon, 25 Jul 2011 15:33:04 +0000 (15:33 +0000)]
lvmetad: A couple of TODOs, and fix a few trivial memory leaks.

13 years agoAdd simple test for read-only table reload suppression
Zdenek Kabelac [Mon, 25 Jul 2011 08:41:52 +0000 (08:41 +0000)]
Add simple test for read-only table reload suppression

Just a small test for previous libdm commit.

13 years agoFix read-only identical table reload supression.
Alasdair Kergon [Sun, 24 Jul 2011 23:59:03 +0000 (23:59 +0000)]
Fix read-only identical table reload supression.

13 years agoCompare also file size to detect changed config file
Zdenek Kabelac [Thu, 21 Jul 2011 13:23:48 +0000 (13:23 +0000)]
Compare also file size to detect changed config file

Clvmd detects modifed config file before it takes lv_lock.
If the config file is changed rapidly - the change was ignored within
a seocnd ranged.  This patch adds also compare of file size.
So change like some flag for 0 to 1 would pass unnoticed - but
it's quick fix for failing test suite.

FIXME: Implement inotify solution.

13 years agolvmetad: Obliterate vg_status by returning the same information from
Petr Rockai [Wed, 20 Jul 2011 21:33:41 +0000 (21:33 +0000)]
lvmetad: Obliterate vg_status by returning the same information from
update_pv_status, saving a dozen lines of code and execution time of one
walkthrough of the PV list.

13 years agolvmetad: Fix a possible infinite loop in vg_status.
Petr Rockai [Wed, 20 Jul 2011 21:27:28 +0000 (21:27 +0000)]
lvmetad: Fix a possible infinite loop in vg_status.

13 years agolvmetad: Robustify update_pv_status and remove an useless lookup.
Petr Rockai [Wed, 20 Jul 2011 21:26:18 +0000 (21:26 +0000)]
lvmetad: Robustify update_pv_status and remove an useless lookup.

13 years agoFirst stab at making lvmetad-core threadsafe. The current design should allow
Petr Rockai [Wed, 20 Jul 2011 21:23:43 +0000 (21:23 +0000)]
First stab at making lvmetad-core threadsafe. The current design should allow
very reasonable amount of parallel access, although the hash tables may become
a point of contention under heavy loads. Nevertheless, there should be orders
of magnitude less contention on the hash table locks than we currently have on
block device scanning.

13 years agolvmetad: Avoid stale PV -> VG mappings on metadata update.
Petr Rockai [Wed, 20 Jul 2011 18:45:32 +0000 (18:45 +0000)]
lvmetad: Avoid stale PV -> VG mappings on metadata update.

13 years agoOptimise PV -> VG lookups by using a UUID (hash) map.
Petr Rockai [Wed, 20 Jul 2011 18:34:57 +0000 (18:34 +0000)]
Optimise PV -> VG lookups by using a UUID (hash) map.

13 years agoFree up allocated memory before exiting, in lvmetad.
Petr Rockai [Wed, 20 Jul 2011 18:24:49 +0000 (18:24 +0000)]
Free up allocated memory before exiting, in lvmetad.

13 years agoFix two small (but eventually unbounded) leaks in daemon-server.c.
Petr Rockai [Wed, 20 Jul 2011 18:23:33 +0000 (18:23 +0000)]
Fix two small (but eventually unbounded) leaks in daemon-server.c.

13 years agoCan't have a global memory pool in lvmetad (that would constitute an ongoing
Petr Rockai [Wed, 20 Jul 2011 16:49:21 +0000 (16:49 +0000)]
Can't have a global memory pool in lvmetad (that would constitute an ongoing
memory leak) => remove it (it's been unused anyway).

13 years agoMake lvmetad also report VGID in reply when adding a PV without MDAs (this
Petr Rockai [Wed, 20 Jul 2011 16:46:40 +0000 (16:46 +0000)]
Make lvmetad also report VGID in reply when adding a PV without MDAs (this
obviously only works for VGs that already had at least some MDA discovered).

13 years agoAdd code to lvmetad's testclient that scans an actual physical device,
Petr Rockai [Wed, 20 Jul 2011 15:15:41 +0000 (15:15 +0000)]
Add code to lvmetad's testclient that scans an actual physical device,
effectively emulating a future "pvscan --lvmetad" command.

13 years agoMake lvmetad report the VG ID and status (complete, partial) in reply to pv_add
Petr Rockai [Wed, 20 Jul 2011 15:14:17 +0000 (15:14 +0000)]
Make lvmetad report the VG ID and status (complete, partial) in reply to pv_add
requests.

13 years agoTowards MISSING (PV) flag management in lvmetad.
Petr Rockai [Tue, 19 Jul 2011 19:15:22 +0000 (19:15 +0000)]
Towards MISSING (PV) flag management in lvmetad.

13 years agoMake it possible to represent type-correct single-item arrays in config trees.
Petr Rockai [Tue, 19 Jul 2011 19:12:38 +0000 (19:12 +0000)]
Make it possible to represent type-correct single-item arrays in config trees.

13 years agoAdd an API to config.h for creating values in the config_tree mempool.
Petr Rockai [Tue, 19 Jul 2011 19:11:24 +0000 (19:11 +0000)]
Add an API to config.h for creating values in the config_tree mempool.

13 years agoWork out some more details in metadata update in lvmetad.
Petr Rockai [Tue, 19 Jul 2011 16:48:13 +0000 (16:48 +0000)]
Work out some more details in metadata update in lvmetad.

13 years agoRemove and unneeded parameter from build_parallel_areas_from_lv()
Jonathan Earl Brassow [Tue, 19 Jul 2011 16:37:42 +0000 (16:37 +0000)]
Remove and unneeded parameter from build_parallel_areas_from_lv()

13 years agoFix potential null ptr deref in 'origin_from_cow'
Jonathan Earl Brassow [Tue, 19 Jul 2011 16:23:52 +0000 (16:23 +0000)]
Fix potential null ptr deref in 'origin_from_cow'

return NULL rather than segfaulting if lv->snapshot is not set

13 years agoMore work on cache maintenance code in lvmetad: keep track of PV status.
Petr Rockai [Tue, 19 Jul 2011 14:13:59 +0000 (14:13 +0000)]
More work on cache maintenance code in lvmetad: keep track of PV status.

13 years agoStart filling in the core LVMetaD functionality and the corresponding
Petr Rockai [Mon, 18 Jul 2011 14:48:30 +0000 (14:48 +0000)]
Start filling in the core LVMetaD functionality and the corresponding
testclient bits.

13 years agoVarious improvements to the daemon-common code, including automated response
Petr Rockai [Mon, 18 Jul 2011 14:46:54 +0000 (14:46 +0000)]
Various improvements to the daemon-common code, including automated response
formatting from config trees provided by the daemon implementation.

13 years agoImprove format_buffer in daemon-shared.c, adding block formatting in addition
Petr Rockai [Mon, 18 Jul 2011 14:42:44 +0000 (14:42 +0000)]
Improve format_buffer in daemon-shared.c, adding block formatting in addition
to string/integer (this propagates to the *simple* family of request/response
functionality).

13 years agoRevert the #include changes. Need to fix this at the #include site for now, and
Petr Rockai [Mon, 18 Jul 2011 14:34:33 +0000 (14:34 +0000)]
Revert the #include changes. Need to fix this at the #include site for now, and
eventually refactor the way we structure #includes in the all of the library.

13 years agoSlightly refactor the config code to allow better reuse (no functional change).
Petr Rockai [Mon, 18 Jul 2011 13:26:08 +0000 (13:26 +0000)]
Slightly refactor the config code to allow better reuse (no functional change).

13 years agoAdd a missing libdevmapper.h #include to lvm-types.h (for dm_list).
Petr Rockai [Mon, 18 Jul 2011 13:24:48 +0000 (13:24 +0000)]
Add a missing libdevmapper.h #include to lvm-types.h (for dm_list).

13 years agoAdd a couple missing #includes in uuid.h.
Petr Rockai [Mon, 18 Jul 2011 13:24:14 +0000 (13:24 +0000)]
Add a couple missing #includes in uuid.h.

13 years agoBetter version of failing 'should' test
Zdenek Kabelac [Mon, 18 Jul 2011 12:12:41 +0000 (12:12 +0000)]
Better version of failing 'should' test

where the naming is left completely on lvm.
(Commited code has been different version of test).
So here it should be able to figure out new free name and create a new LV.

13 years agoAdding test for repair when confusing metadata are found
Zdenek Kabelac [Mon, 18 Jul 2011 12:04:42 +0000 (12:04 +0000)]
Adding test for repair when confusing metadata are found

13 years agoLVM2 RAID design doc
Jonathan Earl Brassow [Thu, 14 Jul 2011 17:00:59 +0000 (17:00 +0000)]
LVM2 RAID design doc

13 years agoFix t-vgreduce-usage to stop relying on the persistent cache not seeing a
Petr Rockai [Mon, 11 Jul 2011 12:13:07 +0000 (12:13 +0000)]
Fix t-vgreduce-usage to stop relying on the persistent cache not seeing a
device that has been brought back from the dead: this sometimes fails with
clvmd (the cache is updated "too soon"). Instead, force a pvscan and rely on an
up-to-date cache as usual.

13 years agopost-release
Alasdair Kergon [Fri, 8 Jul 2011 19:57:32 +0000 (19:57 +0000)]
post-release

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