]> sourceware.org Git - lvm2.git/log
lvm2.git
13 years agoWord alignment for strings
Zdenek Kabelac [Wed, 30 Mar 2011 12:57:03 +0000 (12:57 +0000)]
Word alignment for strings

Align strdup char* allocation just on 2 bytes.
It looks like wasting space to align strings on 8 bytes.
(Could be even 1byte - but for hashing it might eventually get better
perfomance - but probably hardly measurable).

TODO: check on various architectures it's not making any problems.

13 years agoOptimise error message write to _lvm_errmsg
Zdenek Kabelac [Wed, 30 Mar 2011 12:53:04 +0000 (12:53 +0000)]
Optimise error message write to _lvm_errmsg

Isn't usually perfomance critical - but log_error is used i.e.for debuging,
this code noticable slows down the processing.

Added 512KB limit to avoid memory exhastions in case of some endless loop.

TODO: use _lvm_errmsg buffer only when lvm2api needs it.

13 years agoKeep noreturn attribute for lvm_thread_fn
Zdenek Kabelac [Wed, 30 Mar 2011 12:48:16 +0000 (12:48 +0000)]
Keep noreturn attribute for lvm_thread_fn

Even thought my gcc seems to not need it, as it's deduced from pthread_exit(),
keep it here for older compiler to avoid getting warnings.

13 years agoValgrind updates
Zdenek Kabelac [Wed, 30 Mar 2011 12:43:32 +0000 (12:43 +0000)]
Valgrind updates

Avoid locking sum testing with valgrind compilation.

Make memory unaccessible in the valgrind for dm_pool_abadon_object.

Valgrind hinting should not be needed in _free_chunk for dm_free.

13 years agoBetter shutdown for clvmd
Zdenek Kabelac [Wed, 30 Mar 2011 12:36:19 +0000 (12:36 +0000)]
Better shutdown for clvmd

'a small step' towards cleaner shutdown sequence.
Normally clvmd doens't care about unreleased memory on exit -
but for valgrind testing it's better to have them cleaned all.

So - few things are left on exit path - this patch starts to remove
just some of them.

1. lvm_thread_fs is made as a thread which could be joined on exit()
2. memory allocated to local_clien_head list is released.
   (this part is somewhat more complex if the proper reaction is
   needed - and as it requires some heavier code moving - it will
   be resolved later.

13 years agoFix reading of unitialized memory
Zdenek Kabelac [Wed, 30 Mar 2011 12:30:39 +0000 (12:30 +0000)]
Fix reading of unitialized memory

Could be reached via few of our lvm2 test cases:

==11501== Invalid read of size 8
==11501==    at 0x49B2E0: _area_length (import-extents.c:204)
==11501==    by 0x49B40C: _read_linear (import-extents.c:222)
==11501==    by 0x49B952: _build_segments (import-extents.c:323)
==11501==    by 0x49B9A0: _build_all_segments (import-extents.c:334)
==11501==    by 0x49BB4C: import_extents (import-extents.c:364)
==11501==    by 0x497655: _format1_vg_read (format1.c:217)
==11501==    by 0x47E43E: _vg_read (metadata.c:2901)

cut from t-vgcvgbackup-usage.sh
--
pvcreate -M1 $(cat DEVICES)
vgcreate -M1 -c n $vg $(cat DEVICES)
lvcreate -l1 -n $lv1 $vg $dev1
--

Idea of the fix is rather defensive - to allocate one extra element
to 'map' array which is then used in _area_length() - where the
loop checks, whether next map entry is continuous.

By placing there always one extra zero entry -
we fix the read of unallocated memory, and we make sure the data would
not make a continous block.

FIXME: there could be a problem if some special broken lvm1 data would be imported.
As the format1 is currently not really used - leave it for future fix
and use this small hotfix for now.

13 years agoSimplify pool debug initialization
Zdenek Kabelac [Wed, 30 Mar 2011 12:16:15 +0000 (12:16 +0000)]
Simplify pool debug initialization

zalloc pool structure and skip zeroing members.

13 years agoFix 2 signess warnings reported by gcc
Zdenek Kabelac [Wed, 30 Mar 2011 12:14:36 +0000 (12:14 +0000)]
Fix 2 signess warnings reported by gcc

Replace int with unsigned counter.
Replace snprintf with dm_snprintf.

13 years agoUse id_equal instead of strncmp()
Zdenek Kabelac [Tue, 29 Mar 2011 21:57:56 +0000 (21:57 +0000)]
Use id_equal instead of strncmp()

More consistent and easier to read.

13 years agoAdd attribute printf
Zdenek Kabelac [Tue, 29 Mar 2011 21:56:53 +0000 (21:56 +0000)]
Add attribute printf

13 years agoAdd attribute printf
Zdenek Kabelac [Tue, 29 Mar 2011 21:53:46 +0000 (21:53 +0000)]
Add attribute printf

gcc suggested to add these attributes to instrumentat
printf arguments. Adding it for internal functions as well.

13 years agoConst warning fixes
Zdenek Kabelac [Tue, 29 Mar 2011 21:49:18 +0000 (21:49 +0000)]
Const warning fixes

With recent update of dm_report_field_string() API call to accept
completely const objects - we no longer need loose constness here
and keep it forwarding.

13 years agoFix access to released memory
Zdenek Kabelac [Tue, 29 Mar 2011 21:34:18 +0000 (21:34 +0000)]
Fix access to released memory

Invalid primary_vginfo was supposed to move all its lvmcache_infos to
orphan_vginfo - however it has called _drop_vginfo() inside the loop
that released primary_vginfo itself - thus made the loop using released
memory.

Use _vginfo_detach_info() instead and call _drop_vginfo after
th loop is finished.

Valgrind trace it should fix:

Invalid read of size 8
   at 0x41E960: _lvmcache_update_vgname (lvmcache.c:1229)
   by 0x41EF86: lvmcache_update_vgname_and_id (lvmcache.c:1360)
   by 0x441393: _text_read (text_label.c:329)
   by 0x442221: label_read (label.c:289)
   by 0x41CF92: lvmcache_label_scan (lvmcache.c:635)
   by 0x45B303: _vg_read_by_vgid (metadata.c:3342)
   by 0x45B4A6: lv_from_lvid (metadata.c:3381)
   by 0x41B555: lv_activation_filter (activate.c:1346)
   by 0x415868: do_activate_lv (lvm-functions.c:343)
   by 0x415E8C: do_lock_lv (lvm-functions.c:532)
   by 0x40FD5F: do_command (clvmd-command.c:120)
   by 0x413D7B: process_local_command (clvmd.c:1686)
 Address 0x63eba10 is 16 bytes inside a block of size 160 free'd
   at 0x4C2756E: free (vg_replace_malloc.c:366)
   by 0x41DE70: _free_vginfo (lvmcache.c:980)
   by 0x41DEDA: _drop_vginfo (lvmcache.c:998)
   by 0x41E854: _lvmcache_update_vgname (lvmcache.c:1238)
   by 0x41EF86: lvmcache_update_vgname_and_id (lvmcache.c:1360)
   by 0x441393: _text_read (text_label.c:329)
   by 0x442221: label_read (label.c:289)
   by 0x41CF92: lvmcache_label_scan (lvmcache.c:635)
   by 0x45B303: _vg_read_by_vgid (metadata.c:3342)
   by 0x45B4A6: lv_from_lvid (metadata.c:3381)
   by 0x41B555: lv_activation_filter (activate.c:1346)
   by 0x415868: do_activate_lv (lvm-functions.c:343)

problematic line:
dm_list_iterate_items_safe(info2, info3, &primary_vginfo->infos)

13 years agoFix sending uninitilised bytes in cluster messages
Zdenek Kabelac [Tue, 29 Mar 2011 21:05:39 +0000 (21:05 +0000)]
Fix sending uninitilised bytes in cluster messages

Fix 2 more functions sending cluster messages to avoid passing uninitilised bytes
and compensate 1 extra byte attached to the message from the clvm_header.args[1]
member variable.

13 years agoFix -Wold-style-definition gcc warnings
Zdenek Kabelac [Tue, 29 Mar 2011 20:30:05 +0000 (20:30 +0000)]
Fix -Wold-style-definition gcc warnings

13 years agoRemove double braces
Zdenek Kabelac [Tue, 29 Mar 2011 20:19:03 +0000 (20:19 +0000)]
Remove double braces

Clang gives notice about possible confusion as commonly double bracces are
used when some assignment is done inside them.

13 years agogdbinit update
Jonathan Earl Brassow [Tue, 29 Mar 2011 12:53:13 +0000 (12:53 +0000)]
gdbinit update

When doing lv_status_r on a sub_lv, do not climb the tree up past the
starting point.

13 years agos/MIRROR_NOTSYNCED/LV_NOTSYNCED/ - Flag will may refer to more than just mirrors
Jonathan Earl Brassow [Tue, 29 Mar 2011 12:51:57 +0000 (12:51 +0000)]
s/MIRROR_NOTSYNCED/LV_NOTSYNCED/ - Flag will may refer to more than just mirrors

13 years agoReduce amount of vgremove and vgchange calls
Zdenek Kabelac [Mon, 28 Mar 2011 11:35:20 +0000 (11:35 +0000)]
Reduce amount of vgremove and vgchange calls

A bit noticable time defference when whole test-suite is run through valgrind.

13 years agoRename _check_version
Alasdair Kergon [Sun, 27 Mar 2011 13:44:08 +0000 (13:44 +0000)]
Rename _check_version

13 years agoUse hard-coded /dev/mapper/control details for 2.6.36+ kernels and simplify
Alasdair Kergon [Fri, 25 Mar 2011 23:50:35 +0000 (23:50 +0000)]
Use hard-coded /dev/mapper/control details for 2.6.36+ kernels and simplify
associated code.  (Some obscure configurations that happened to work before
are no longer supported.)

13 years agoFix unhandled condition in _move_lv_segments
Jonathan Earl Brassow [Fri, 25 Mar 2011 22:02:27 +0000 (22:02 +0000)]
Fix unhandled condition in _move_lv_segments

If _move_lv_segments is passed a 'lv_from' that does not yet
have any segments, it will screw things up because the code
that does the segment copy assumes there is at least one
segment.  See copy code here:
        lv_to->segments = lv_from->segments;
        lv_to->segments.n->p = &lv_to->segments;
        lv_to->segments.p->n = &lv_to->segments;

If 'segments' is an empty list, the first statement copies over
the values, but the next two reset those values to point to the
other LV's list structure.  'lv_to' now appears to have one
segment, but it is really an ill-set pointer.

13 years agoReplace malloc with zalloc when creating segment_type's
Jonathan Earl Brassow [Fri, 25 Mar 2011 21:59:42 +0000 (21:59 +0000)]
Replace malloc with zalloc when creating segment_type's

13 years agocosmetic change - swapping one macro for another
Jonathan Earl Brassow [Fri, 25 Mar 2011 21:56:28 +0000 (21:56 +0000)]
cosmetic change - swapping one macro for another

When I see 'seg_is_mirrored', I expect the argument to be an lv_segment.
In this case, it is lvcreate_params.  Both structures, have a 'segtype'
entry which the macro dereferences.  However, it just seems easier to
understand if we do 'segtype_is_mirrored' instead.

13 years agoWhat's new.
Petr Rockai [Thu, 24 Mar 2011 16:03:32 +0000 (16:03 +0000)]
What's new.

13 years agoIn some cases, we could end up with a mirrored LV without a MIRRORED flag. In
Petr Rockai [Thu, 24 Mar 2011 12:28:02 +0000 (12:28 +0000)]
In some cases, we could end up with a mirrored LV without a MIRRORED flag. In
other cases, the code could wind up removing wrong number of mirrors. In yet
other cases, we could remove the right number of mirrors, but fail to respect
the removal preferences (i.e. keep an image that was requested to be removed
while removing an image that was requested to be kept). Under some
circumstances, remove_mirror_images could also get stuck in an infinite loop.

This patch should fix all of the above undesirable behaviours.

Signed-off-by: Petr Rockai <prockai@redhat.com>
Reviewed-by: Jonathan Brassow <jbrassow@redhat.com>
13 years agoRelease allocated memory on closedown
Zdenek Kabelac [Thu, 24 Mar 2011 10:45:00 +0000 (10:45 +0000)]
Release allocated memory on closedown

Release allocated buffers before exit() in debug singlenode - so it's not
poping out in valgrind as memory leak.

13 years agoFix last checkin - added error message text wrong.
Alasdair Kergon [Sun, 20 Mar 2011 02:00:52 +0000 (02:00 +0000)]
Fix last checkin - added error message text wrong.

13 years agoImprove debug stack trace
Zdenek Kabelac [Fri, 18 Mar 2011 13:21:02 +0000 (13:21 +0000)]
Improve debug stack trace

dm_check_version reports log_error() - so use return_NULL.

13 years agoMitigate some warnings if running as non-root user.
Milan Broz [Fri, 18 Mar 2011 12:17:57 +0000 (12:17 +0000)]
Mitigate some warnings if running as non-root user.

LVM doesn't behave correctly if running as non-root user,
there is warning when it detects it.

Despite this, it produces many error messages, saying nothing.
See https://bugzilla.redhat.com/show_bug.cgi?id=620571

This patch fixes two things:
1) Removes eror message from device_is_usable() which has no
information value anyway (real warning is printed inside it).

2) it fixes device-mapper initialization, if we support
core dm module autoload and device node is present, it should
fail early and not try recreate existing and correct node.
(non-root == permission denied here)

N.B. In future code should support user roles, some more
drastic checks in code are probably contraproductive now.

13 years agoWatch out for collisions in GDB global namespace.
Jonathan Earl Brassow [Mon, 14 Mar 2011 18:05:56 +0000 (18:05 +0000)]
Watch out for collisions in GDB global namespace.
Better 'lv_status_r' printing.

13 years agoAdd missing \0 for grown debug object
Zdenek Kabelac [Mon, 14 Mar 2011 17:00:57 +0000 (17:00 +0000)]
Add missing \0 for grown debug object

Attach \0 for proper char* display - otherwise somewhat random message could
be displayed in debug more and read of unpredictable read of uninitilized
memory values could happen.

13 years agoRevert this commit
Zdenek Kabelac [Sun, 13 Mar 2011 23:18:30 +0000 (23:18 +0000)]
Revert this commit

This buffer allocation must have been problem somewhere else.
(as sizeof() already has the 'extra' '\0' included).
For now reverting this commit.

13 years agoFix allocation of system_id
Zdenek Kabelac [Sun, 13 Mar 2011 23:05:48 +0000 (23:05 +0000)]
Fix allocation of system_id

As code uses strncpy(system_id, NAME_LEN) and doesn't set '\0'
Fix it by always allocating NAME_LEN + 1 buffer size and with zalloc
we always get '\0' as the last byte.

This bug may trigger some unexpected behavior of the string operation
code - depends on the pool allocator.

FIXME: refactor this code to alloc_vg.

13 years agoUse proper size of strncpy
Zdenek Kabelac [Sun, 13 Mar 2011 23:01:08 +0000 (23:01 +0000)]
Use proper size of strncpy

Avoid reading extra character if we expect to have there '\0'.

13 years agoFix buffer allocation size for uuid string
Zdenek Kabelac [Sun, 13 Mar 2011 22:57:51 +0000 (22:57 +0000)]
Fix buffer allocation size for uuid string

We have 3 components and traling '\0' so allocate proper room for all of them.
Problem was nicely hidden by allocation from pool and allocation aligment
offset - so to trigger real problem with this one is actually hard.

13 years agoFix usage of readlink
Zdenek Kabelac [Sun, 13 Mar 2011 22:52:16 +0000 (22:52 +0000)]
Fix usage of readlink

Return value of readlink limits valid string size.
Characters after returned size present some garbage to printf.
Fix it by placing '\0' on the return size value.

13 years agoRemove compile warning for lock_id.
Peter Rajnoha [Sun, 13 Mar 2011 18:08:26 +0000 (18:08 +0000)]
Remove compile warning for lock_id.

%llx --> PRIx64

13 years agolv_status_r now prints out status of attached log LVs
Jonathan Earl Brassow [Fri, 11 Mar 2011 22:25:36 +0000 (22:25 +0000)]
lv_status_r now prints out status of attached log LVs

(Print layout could be nicer... :(

13 years agolv_status_r has been fixed-up so that it supports infinite LV stacking
Jonathan Earl Brassow [Fri, 11 Mar 2011 22:16:38 +0000 (22:16 +0000)]
lv_status_r has been fixed-up so that it supports infinite LV stacking

(It does not yet follow 'log_lv' or 'origin' links.)

13 years agodetect RAID* LV and segment flags.
Jonathan Earl Brassow [Fri, 11 Mar 2011 18:22:39 +0000 (18:22 +0000)]
detect RAID* LV and segment flags.

13 years agoUse format instance mempool where possible and adequate.
Peter Rajnoha [Fri, 11 Mar 2011 15:10:16 +0000 (15:10 +0000)]
Use format instance mempool where possible and adequate.

13 years agoVarious cleanups for fid mem and ref_count changes.
Peter Rajnoha [Fri, 11 Mar 2011 15:08:31 +0000 (15:08 +0000)]
Various cleanups for fid mem and ref_count changes.

Missing free_vg on error_path in lvmcache_get_vg fn. Call destroy_instance
only if the fid is not part of the vg in backup_read_vg fn (otherwise it's
part of the VG we're returning and we definitely don't want to destroy it!).

13 years agoCall destroy_instance for any PVs found in VG structure during vg_free call.
Peter Rajnoha [Fri, 11 Mar 2011 15:06:13 +0000 (15:06 +0000)]
Call destroy_instance for any PVs found in VG structure during vg_free call.

This is necessary for proper format instance ref_count support. We iterate
over vg->pvs and vg->removed_pvs list and the ref_count is decremented and
then it is destroyed if not referenced anymore.

13 years agoAdd new free_pv_fid fn and use it throughout to free all attached fids.
Peter Rajnoha [Fri, 11 Mar 2011 14:56:56 +0000 (14:56 +0000)]
Add new free_pv_fid fn and use it throughout to free all attached fids.

Since format instances will use own memory pool, it's necessary to properly
deallocate it. For now, only fid is deallocated. The PV structure itself
still uses cmd mempool mostly, but anytime we'd like to add a mempool
in the struct physical_volume, we can just rename this fn to free_pv and
add the code (like we have free_vg fn for VGs).

13 years agoUse only vg_set_fid and new pv_set_fid fn to assign the format instance.
Peter Rajnoha [Fri, 11 Mar 2011 14:50:13 +0000 (14:50 +0000)]
Use only vg_set_fid and new pv_set_fid fn to assign the format instance.

This is essential for proper format instance ref_count support. We must
use these functions to set the fid everywhere from now on, even the NULL
value!

13 years agoMake create_text_context fn static and move it inside create_instance fn.
Peter Rajnoha [Fri, 11 Mar 2011 14:45:17 +0000 (14:45 +0000)]
Make create_text_context fn static and move it inside create_instance fn.

We'd like to use the fid mempool for text_context that is stored
in the instance (we used cmd mempool before, so the order of
initialisation was not a matter, but now it is since we need to
create the fid mempool first which happens in create_instance fn).

The text_context initialisation is not needed anywhere outside the
create_instance fn so move it there.

13 years agoAdd mem and ref_count fields to struct format_instance for own mempool use.
Peter Rajnoha [Fri, 11 Mar 2011 14:38:38 +0000 (14:38 +0000)]
Add mem and ref_count fields to struct format_instance for own mempool use.

Format instances can be created anytime on demand and it contains
metadata area information mostly (at least for now, but in the future,
we may store more things here to update/edit in a PV/VG). In case we
have lots of metadata areas, memory consumption will rise. Using cmd
context mempool is not quite optimal here because it is destroyed too
late. So let's use a separate mempool for format instances.

Reference counting is used because fids could be shared, e.g. each PV
has either a PV-based fid or VG-based fid. If it's VG-based, each PV has
a shared fid with the VG - a reference to VG's fid.

13 years agoUse new alloc_fid fn for common format instance initialisation.
Peter Rajnoha [Fri, 11 Mar 2011 14:30:27 +0000 (14:30 +0000)]
Use new alloc_fid fn for common format instance initialisation.

13 years agoMissed merge fix in vg_validate patch
Zdenek Kabelac [Thu, 10 Mar 2011 22:39:36 +0000 (22:39 +0000)]
Missed merge fix in vg_validate patch

13 years agoDocument pv_min_size in lvm.conf manpage
Zdenek Kabelac [Thu, 10 Mar 2011 15:20:10 +0000 (15:20 +0000)]
Document pv_min_size in lvm.conf manpage

13 years agoOptimise _eat_space and _get_token
Zdenek Kabelac [Thu, 10 Mar 2011 14:51:35 +0000 (14:51 +0000)]
Optimise _eat_space and _get_token

Makes the code more readable and has a smaller number of memory
accesses thus it's small optimisation as well.

For _get_token() optimize number parsing. Check for '.' char only
if it's not a digit. Move pointer incrementation into one place.

For _eat_space() check only p->te for '\0' in skipping of comment line.
Avoid check for '\0' when we know it is space. Also master while loop
doesn't need checking p->tb for '\0'. We just need to check p->tb
isn't already at the end of buffer. This could give 'extra' loop cycle
if we are already there - but safes memory access in every other case.

13 years agoKeep pool name also for pool-fast
Zdenek Kabelac [Thu, 10 Mar 2011 14:49:01 +0000 (14:49 +0000)]
Keep pool name also for pool-fast

It's cheap to keep this name - and it is useful for 'non pool debug code'
compilation.

13 years agoIndent spaces to tabs
Zdenek Kabelac [Thu, 10 Mar 2011 14:47:22 +0000 (14:47 +0000)]
Indent spaces to tabs

13 years agoRefactor code for _lv_postoder
Zdenek Kabelac [Thu, 10 Mar 2011 14:40:32 +0000 (14:40 +0000)]
Refactor code for _lv_postoder

Add _lv_postorder_vg() - for calling _lv_postorder() for every LV from VG.
We use this in 2 places -  vg_mark_partial_lvs() and vg_validate()
so make it as a one function.

Benefit here is - to use only one cleanup code and avoid
potentially duplicate scans of same LVs.

13 years agogdbinit - A GDB init file to help while debugging LVM.
Jonathan Earl Brassow [Thu, 10 Mar 2011 13:45:12 +0000 (13:45 +0000)]
gdbinit - A GDB init file to help while debugging LVM.

Copy this file as '.gdbinit' to your home directory or your working
directory.  It adds the following commands to gdb:
 - first_seg
 - lv_status
 - lv_status_r
 - lv_is_mirrored
 - seg_item
 - seg_status
 - segs_using_this_lv

You can get a list of these user-defined commands by typing:
(gdb) help user-defined

You can get more information on each command by typing:
(gdb) help <command>

13 years agoUse hash tables for validating names
Zdenek Kabelac [Thu, 10 Mar 2011 13:11:59 +0000 (13:11 +0000)]
Use hash tables for validating names

Accelerate validation loop by using lvname, lvid, pvid hash tables.
Also merge pvl loop into one cycle now - no need to scan the list twice.
List scan is stopped when dm_hash_insert fails.

The error message with loop_counter1 is no longer provided - however
the message has been misleading anyway.

13 years agoFix dmsetup man page typo (John Bradshaw)
Milan Broz [Thu, 10 Mar 2011 13:11:45 +0000 (13:11 +0000)]
Fix dmsetup man page typo (John Bradshaw)

13 years agoUse void pointer instead of char for binary key
Zdenek Kabelac [Thu, 10 Mar 2011 12:48:40 +0000 (12:48 +0000)]
Use void pointer instead of char for binary key

dm_hash binary functions takes void* key - so there is no need to cast
pointers to char* (also the hash key does not have trailing '\0').

This is slight API change, but presents no change for the API user side
it just allows to write code easier as the casting could be removed.

13 years agoRefactor vg allocation code
Zdenek Kabelac [Thu, 10 Mar 2011 12:43:29 +0000 (12:43 +0000)]
Refactor vg allocation code

Create new function alloc_vg() to allocate VG structure.

It takes pool_name (for easier debugging).
and also take vg_name to futher simplify code.

Move remainder of _build_vg_from_pds  to _pool_vg_read
and use vg memory pool for import functions.
(it's been using smem -> fid mempool -> cmd mempool)
(FIXME: remove mempool parameter for import functions and use vg).

Move remainder of the _build_vg to _format1_vg_read

13 years agoAvoid possible endless loop in _free_vginfo when 4 or more VGs have same name.
Alasdair Kergon [Thu, 10 Mar 2011 03:03:03 +0000 (03:03 +0000)]
Avoid possible endless loop in _free_vginfo when 4 or more VGs have same name.

13 years agoUse empty string instead of /dev// for LV path when there's no VG.
Alasdair Kergon [Wed, 9 Mar 2011 12:44:42 +0000 (12:44 +0000)]
Use empty string instead of /dev// for LV path when there's no VG.
Don't allocate unused VG mempool in _pvsegs_sub_single.

13 years agoDo not send random bytes in message
Zdenek Kabelac [Tue, 8 Mar 2011 22:48:50 +0000 (22:48 +0000)]
Do not send random bytes in message

Fixing few issues:

struct clvm_header  contains  'char args[1]' - so adding '+ 1' here
for message length calculation is 1 byte off.
Message with last byte uninitialized is then passed to write function.
Update also related arglen.

Initialise xid and clintid to 0.

Memory allocation is checked for NULL

13 years agoFix reading byte from char params[-1] position
Zdenek Kabelac [Tue, 8 Mar 2011 22:43:19 +0000 (22:43 +0000)]
Fix reading byte from char params[-1] position

When the ->params string is empty - memory access is made on the byte
before allocated buffer (catched by valgrind) - in the case it would
constain 0x20 - it would even overwrite this buffer.
So fix by checking len > 0 before doing such access.
Also slightly optimise this loop from repeated strlen call.

13 years agoFix clvmd return code for bad options.
Milan Broz [Tue, 8 Mar 2011 13:27:39 +0000 (13:27 +0000)]
Fix clvmd return code for bad options.

We should return exit code 2 for unknown option.

Patch also adds standard --help option instead.

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=666991

13 years agoFix test for 8k page (fails on Sparc architecture).
Milan Broz [Sun, 6 Mar 2011 18:28:09 +0000 (18:28 +0000)]
Fix test for 8k page (fails on Sparc architecture).

13 years agoUse lvm_getpagesize wrapper
Zdenek Kabelac [Sun, 6 Mar 2011 17:52:07 +0000 (17:52 +0000)]
Use lvm_getpagesize wrapper

13 years agoFix hardcoded page size, fixing test fails with 8k page and new kernel.
Milan Broz [Sun, 6 Mar 2011 16:47:43 +0000 (16:47 +0000)]
Fix hardcoded page size, fixing test fails with 8k page and new kernel.

13 years agoMove secure flag warning to verbose level.
Milan Broz [Sat, 5 Mar 2011 21:17:19 +0000 (21:17 +0000)]
Move secure flag warning to verbose level.

This feature is not yet upstream and becuase cryptsetup in next version
uses this flag, it will cause a lot of noise on old kernels.

13 years agoFix reading of released memory
Zdenek Kabelac [Sat, 5 Mar 2011 12:14:00 +0000 (12:14 +0000)]
Fix reading of released memory

lvseg_segtype_dup used memory pool vg memory pool for strind duplication.
However this one gets released before reporting happens so the command like:

pvs -o segtype

prints data from already released memory pool. Thanks to the fact there
is not much allocation happing after the VG is released, the memory
stays unmodified and correct result is printed.

Fix adds support for mempool passed parameter (like other similar
query commands) and uses dm_report memory pool for string duplication.

13 years agoMake the lock test a little bit better...
Milan Broz [Fri, 4 Mar 2011 15:04:08 +0000 (15:04 +0000)]
Make the lock test a little bit better...

13 years agoWait until dmeventd properly starts in test.
Milan Broz [Fri, 4 Mar 2011 14:19:18 +0000 (14:19 +0000)]
Wait until dmeventd properly starts in test.

13 years agoLeave some time to scheduler
Zdenek Kabelac [Thu, 3 Mar 2011 16:04:53 +0000 (16:04 +0000)]
Leave some time to scheduler

Looks like scheduler prefers running task before exiting tasks.
So leave some time to finish running flock process.

13 years agoAvoid using pipes on lv commands
Zdenek Kabelac [Thu, 3 Mar 2011 15:46:05 +0000 (15:46 +0000)]
Avoid using pipes on lv commands

Failure on pipe kills lv command and produces memory stacktrace.
Add 'true' for empty grep/sed to avoid generating stacktrace.

This should help with long time (7min) for this test on Lenny testing maching
(mimage was filler with stacktrace and each word was used as LV name).

13 years agoFix test, "echo n" is not needed when -y is specified.
Milan Broz [Thu, 3 Mar 2011 14:16:08 +0000 (14:16 +0000)]
Fix test, "echo n" is not needed when -y is specified.

13 years agoLower severity of selabel_lookup and matchpathcon failure to log_debug.
Peter Rajnoha [Thu, 3 Mar 2011 13:05:40 +0000 (13:05 +0000)]
Lower severity of selabel_lookup and matchpathcon failure to log_debug.

13 years agoDo not echo y to lvconvert
Zdenek Kabelac [Thu, 3 Mar 2011 12:30:33 +0000 (12:30 +0000)]
Do not echo y to lvconvert

This lvconvert is now able to complete operation automatically without question.
So remove  'echo y |'  - it's breaking pipe on some bash versions.

i.e.:
+ echo y
./t-lvconvert-mirror-basic.sh: line 104: echo: write error: Broken pipe

while command has completed this operation succesfully

13 years agoFix syslog initialisation in clvmd to respect lvm.conf setting.
Milan Broz [Wed, 2 Mar 2011 23:38:22 +0000 (23:38 +0000)]
Fix syslog initialisation in clvmd to respect lvm.conf setting.

13 years agoIncrease check timeout again.
Milan Broz [Wed, 2 Mar 2011 20:14:39 +0000 (20:14 +0000)]
Increase check timeout again.

It fails on my s390x Hercules emulator otherwise. :)

13 years agoPE size overflows, on most architectures it is catch by "PE cannot be 0"
Milan Broz [Wed, 2 Mar 2011 20:00:09 +0000 (20:00 +0000)]
PE size overflows, on most architectures it is catch by "PE cannot be 0"
but s390x unfortunately return something usable.

Always use unit64 in inital parameter check.

13 years agoUse 64bit unsigned value for maximum stripe size test.
Milan Broz [Wed, 2 Mar 2011 16:56:06 +0000 (16:56 +0000)]
Use 64bit unsigned value for maximum stripe size test.

While STRIPE_SIZE_LIMIT * 2 is basically UINT_MAX, 32bit integer
value can already overflow durin arg size parsing.

(This really happens in test where --stripesize 4294967291 is used,
in s390x uint overflow and this test is ineffective.)

13 years agoDo not run past the end of an array in dmeventd's _handle_request when faced
Petr Rockai [Wed, 2 Mar 2011 14:20:48 +0000 (14:20 +0000)]
Do not run past the end of an array in dmeventd's _handle_request when faced
with an unknown command ID.

13 years agoFix test to use explicit /dev/mapper/ node, /proc/mounts should not change this...
Milan Broz [Wed, 2 Mar 2011 13:49:29 +0000 (13:49 +0000)]
Fix test to use explicit /dev/mapper/ node, /proc/mounts should not change this...
(failed on RHEL5)

13 years agoAs requested in BZ 454618:
Petr Rockai [Wed, 2 Mar 2011 12:49:13 +0000 (12:49 +0000)]
As requested in BZ 454618:
- dmeventd -R will continue to start up even if no dmeventd is currently
  running + a test for this behaviour
- add -R to dmeventd manpage

13 years agoUse a copy if moving an mda from pv fid to vg fid.
Peter Rajnoha [Wed, 2 Mar 2011 10:23:29 +0000 (10:23 +0000)]
Use a copy if moving an mda from pv fid to vg fid.

We'll destroy the pv fid (with all mdas in it) after merging all pv mdas to
a vg in _text_pv_setup fn, hence we need to use a copy here!

13 years agoMake add_metadata_area_to_pv/remove_metadata_area_from_pv static.
Peter Rajnoha [Wed, 2 Mar 2011 10:19:14 +0000 (10:19 +0000)]
Make add_metadata_area_to_pv/remove_metadata_area_from_pv static.

No need to put these in format-text.h, it's not used anywhere else actually.

13 years agoIndent case part properly
Zdenek Kabelac [Wed, 2 Mar 2011 08:41:55 +0000 (08:41 +0000)]
Indent case part properly

13 years agoAdd missing return
Zdenek Kabelac [Wed, 2 Mar 2011 08:40:28 +0000 (08:40 +0000)]
Add missing return

13 years agoAccept multiple mapped device names on many dmsetup command lines.
Alasdair Kergon [Wed, 2 Mar 2011 02:44:56 +0000 (02:44 +0000)]
Accept multiple mapped device names on many dmsetup command lines.

13 years agoFix dm_udev_wait calls in dmsetup to occur before readahead display not after.
Alasdair Kergon [Wed, 2 Mar 2011 00:29:57 +0000 (00:29 +0000)]
Fix dm_udev_wait calls in dmsetup to occur before readahead display not after.
Include an implicit dm_task_update_nodes() within dm_udev_wait().

13 years agoRather return success if skipping udev wait.
Milan Broz [Tue, 1 Mar 2011 23:44:07 +0000 (23:44 +0000)]
Rather return success if skipping udev wait.

13 years agoInvert condition for READLINE check
Zdenek Kabelac [Tue, 1 Mar 2011 23:29:14 +0000 (23:29 +0000)]
Invert condition for READLINE check

13 years agoFix _create_and_load_v4 not to lose the --addnodeoncreate setting (1.02.62).
Alasdair Kergon [Tue, 1 Mar 2011 23:27:06 +0000 (23:27 +0000)]
Fix _create_and_load_v4 not to lose the --addnodeoncreate setting (1.02.62).

13 years agoBuild test.c also without readline library
Zdenek Kabelac [Tue, 1 Mar 2011 23:18:40 +0000 (23:18 +0000)]
Build test.c also without readline library

Allow bulding of this testing tool also without readline library.
Outputs message about build without readline library then.

13 years agoFix tests if udevadm missing (old udev).
Milan Broz [Tue, 1 Mar 2011 22:28:27 +0000 (22:28 +0000)]
Fix tests if udevadm missing (old udev).

13 years agoQuick fix to compile lvm2api tests when possible
Zdenek Kabelac [Tue, 1 Mar 2011 21:30:43 +0000 (21:30 +0000)]
Quick fix to compile lvm2api tests when possible

Do not build lvm2api tests when lvm2api lib is not enabled.

13 years agoFix some compile warnings on RHEL5
Milan Broz [Tue, 1 Mar 2011 20:17:56 +0000 (20:17 +0000)]
Fix some compile warnings on RHEL5
- returned char not needed to be explicitly const
- warn if pipe() fails in clvmd (more fixes here needed for error paths...)
- assign (and ignore) read() output in drain buffer

13 years agoRephrase backup message.
Milan Broz [Mon, 28 Feb 2011 20:50:01 +0000 (20:50 +0000)]
Rephrase backup message.

13 years agoFix void pointer arithmetic warning in pool debug code
Zdenek Kabelac [Mon, 28 Feb 2011 19:54:30 +0000 (19:54 +0000)]
Fix void pointer arithmetic warning in pool debug code

13 years agoAdd fall through comments
Zdenek Kabelac [Mon, 28 Feb 2011 19:53:03 +0000 (19:53 +0000)]
Add fall through comments

Add comments to switch case construct.

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