]> sourceware.org Git - lvm2.git/log
lvm2.git
15 years agoUpdate test/api/test.c to call lvm_lv_remove.
Dave Wysochanski [Sun, 26 Jul 2009 14:37:15 +0000 (14:37 +0000)]
Update test/api/test.c to call lvm_lv_remove.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoAdd lvm_vg_remove_lv liblvm function.
Dave Wysochanski [Sun, 26 Jul 2009 14:36:52 +0000 (14:36 +0000)]
Add lvm_vg_remove_lv liblvm function.

Add a very simple version of lvm_vg_remove_lv.
Since we currently can only create linear LVs, this simple remove function
is adequate.  We must refactor lvremove_single a bit.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoUpdate test/api/test.c - correct list_vg_names and list_vg_ids.
Dave Wysochanski [Sun, 26 Jul 2009 13:08:00 +0000 (13:08 +0000)]
Update test/api/test.c - correct list_vg_names and list_vg_ids.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoUpdate test/api/test.c for liblvm 'get' functions.
Dave Wysochanski [Sun, 26 Jul 2009 13:07:41 +0000 (13:07 +0000)]
Update test/api/test.c for liblvm 'get' functions.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoAdd most all liblvm 'get' functions needed for anaconda.
Dave Wysochanski [Sun, 26 Jul 2009 13:06:59 +0000 (13:06 +0000)]
Add most all liblvm 'get' functions needed for anaconda.

Add the most straightforward 'get' functions required for anaconda.
These are the ones that return simple uint64_t values.
The other more complex ones involve the lv_attr bits.  These will
come in a separate patch series since each lv_attr bit will be returned
in a separate API instred of returning the string and requiring the
user to parse it.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoUse vg_size in vg_set_extent_size.
Dave Wysochanski [Sun, 26 Jul 2009 12:41:36 +0000 (12:41 +0000)]
Use vg_size in vg_set_extent_size.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoRefactor a few report field calculations into separate functions.
Dave Wysochanski [Sun, 26 Jul 2009 12:41:09 +0000 (12:41 +0000)]
Refactor a few report field calculations into separate functions.

For liblvm 'get' functions, we should share code with the reporting functions.
This means we need common code to return the values for the fields.
In this patch we refactor a few of the fields needed in liblvm.
Unfortunately, for the simple fields that do derefernces of structure
members (for example, vg_extent_count), we cannot call the common function
from the reporting infrastructure without more refactoring.  The reason is
that the dereference of the simple fields is done deep inside the reporting
code (to get the generic "data" pointer), and the display function is a
generic 'size32' function.  We can fix these issues later with more
refactoring.

Should be no functional change and the testsuite should cover any possible
regressions.  The only fields in the report affected by this patch are:
vg_size, vg_free, and pv_mda_count.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoRename vg_size to vgsize to avoid naming conflicts.
Dave Wysochanski [Sun, 26 Jul 2009 12:40:27 +0000 (12:40 +0000)]
Rename vg_size to vgsize to avoid naming conflicts.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoUpdate WHATS_NEW for recent checkins
Dave Wysochanski [Sun, 26 Jul 2009 11:21:32 +0000 (11:21 +0000)]
Update WHATS_NEW for recent checkins

15 years agoUpdate test/api/test.c to call lvm_vg_create_lv_linear.
Dave Wysochanski [Sun, 26 Jul 2009 02:35:47 +0000 (02:35 +0000)]
Update test/api/test.c to call lvm_vg_create_lv_linear.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoUpdate test/api/test.c to handle read/write open modes.
Dave Wysochanski [Sun, 26 Jul 2009 02:35:19 +0000 (02:35 +0000)]
Update test/api/test.c to handle read/write open modes.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoAdd lvm_vg_create_lv_linear liblvm function.
Dave Wysochanski [Sun, 26 Jul 2009 02:34:36 +0000 (02:34 +0000)]
Add lvm_vg_create_lv_linear liblvm function.

Create a default linear logical volume from a volume group.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoMove extents_from_size from lvcreate into internal library so we can reuse.
Dave Wysochanski [Sun, 26 Jul 2009 02:34:09 +0000 (02:34 +0000)]
Move extents_from_size from lvcreate into internal library so we can reuse.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoMove _lvcreate into the internal library and rename to lv_create_single.
Dave Wysochanski [Sun, 26 Jul 2009 02:33:35 +0000 (02:33 +0000)]
Move _lvcreate into the internal library and rename to lv_create_single.

After some refactorings, we can now move the bulk of _lvcreate into the
internal library, and we can call from liblvm.  In the future, we should
refactor lv_create_single further, probably by segtype, to reduce the
size of struct lvcreate_params.  For now this is a reasonable refactor
and allows us to re-use the function from liblvm.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoMove pvs and pv_count fields from lvcreate_params to lvcreate_cmdline_params.
Dave Wysochanski [Sun, 26 Jul 2009 02:32:50 +0000 (02:32 +0000)]
Move pvs and pv_count fields from lvcreate_params to lvcreate_cmdline_params.

No functional change.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoComment lvcreate_params struct.
Dave Wysochanski [Sun, 26 Jul 2009 02:32:26 +0000 (02:32 +0000)]
Comment lvcreate_params struct.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoMove 'size' from lvcreate_params into lvcreate_cmdline_params.
Dave Wysochanski [Sun, 26 Jul 2009 02:32:00 +0000 (02:32 +0000)]
Move 'size' from lvcreate_params into lvcreate_cmdline_params.

The main _lvcreate function should deal with extents - the 'size' parameter
is just an intermediate step.
Should be no functional change.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoMove percent_t from struct lvcreate_params to struct lvcreate_cmdline_params.
Dave Wysochanski [Sun, 26 Jul 2009 02:31:41 +0000 (02:31 +0000)]
Move percent_t from struct lvcreate_params to struct lvcreate_cmdline_params.

Create a new structure, lvcreate_cmdline_params, to store parameters only
relevant for the cmdline, not the library call to lvcreate.
Should be no functional change.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoRefactor extents calculations / updates in _lvcreate.
Dave Wysochanski [Sun, 26 Jul 2009 02:31:18 +0000 (02:31 +0000)]
Refactor extents calculations / updates in _lvcreate.

Move extents calculation adjustments into their own local functions
right after we read the vg.  This calculation really is not part of
the LV create function but is rather an adjustment to the parameters
based on what is given on the cmdline.  So we move it outside the main
_lvcreate.

Should be no functional change.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoRefactor _lvcreate - move *_ARG into _lvcreate_params and get 'cmd' from 'vg'.
Dave Wysochanski [Sun, 26 Jul 2009 02:30:57 +0000 (02:30 +0000)]
Refactor _lvcreate - move *_ARG into _lvcreate_params and get 'cmd' from 'vg'.

A couple simple refactorings of _lvcreate - should be no functional change.
Move tags_ARG parsing into _lvcreate_params.  Also use lp->voriginsize
instread of arg_count().  These refactorings make it easier to move the
bulk of _lvcreate into the library.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoRemove use of void * from pvcreate_single.
Dave Wysochanski [Sun, 26 Jul 2009 02:02:22 +0000 (02:02 +0000)]
Remove use of void * from pvcreate_single.

We should use struct pvcreate_params to utilize compiler typechecking.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoUpdate lvm_vg_extend to do an implicit pvcreate on the device.
Dave Wysochanski [Sun, 26 Jul 2009 01:54:40 +0000 (01:54 +0000)]
Update lvm_vg_extend to do an implicit pvcreate on the device.

Although the tools do not currently do this, we update lvm_vg_extend
to do an implicit pvcreate on an uninitialized device.  The tools will
soon be refactored to do this as well, but more work is needed in the
tools.  For now we update lvm_vg_extend since this is the behavior
required by liblvm.
With this change, the simple liblvm unit test, test/api/vgtest.c
should pass whether or not the device is initialized.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoMove ORPHAN_VG lock outside pvcreate_single.
Dave Wysochanski [Sun, 26 Jul 2009 01:54:20 +0000 (01:54 +0000)]
Move ORPHAN_VG lock outside pvcreate_single.

The implicit pvcreate require either moving the ORPHAN_VG lock outside
pvcreate_single or somehow having the function know or detect whether
the ORPHAN_VG lock is already held.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoChange pvcreate_single to return pv_t and update function description.
Dave Wysochanski [Sun, 26 Jul 2009 01:53:57 +0000 (01:53 +0000)]
Change pvcreate_single to return pv_t and update function description.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoAllow pvcreate_single to be called with NULL for default pvcreate params.
Dave Wysochanski [Sun, 26 Jul 2009 01:53:30 +0000 (01:53 +0000)]
Allow pvcreate_single to be called with NULL for default pvcreate params.

Passing NULL for pvcreate parameters gives you default parameters for
pvcreate_single.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoMove bulk of pvcreate logic into library.
Dave Wysochanski [Sun, 26 Jul 2009 01:53:09 +0000 (01:53 +0000)]
Move bulk of pvcreate logic into library.

In preparation for implicit pvcreate during vgcreate / vgextend,
move bulk of pvcreate logic inside library.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoRemove unneeded pv_create wrapper function.
Dave Wysochanski [Sun, 26 Jul 2009 01:52:19 +0000 (01:52 +0000)]
Remove unneeded pv_create wrapper function.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoAdd global/wait_for_locks to lvm.conf so blocking on locks can be disabled.
Alasdair Kergon [Fri, 24 Jul 2009 23:28:55 +0000 (23:28 +0000)]
Add global/wait_for_locks to lvm.conf so blocking on locks can be disabled.

15 years agoremove no-longer-needed NONBLOCK
Alasdair Kergon [Fri, 24 Jul 2009 18:26:42 +0000 (18:26 +0000)]
remove no-longer-needed NONBLOCK

15 years agoAll LV locks are non-blocking so remove LCK_NONBLOCK from separate macros.
Alasdair Kergon [Fri, 24 Jul 2009 18:15:06 +0000 (18:15 +0000)]
All LV locks are non-blocking so remove LCK_NONBLOCK from separate macros.

15 years agoEliminate compile warning introduced by previous commit.
Dave Wysochanski [Fri, 24 Jul 2009 15:15:26 +0000 (15:15 +0000)]
Eliminate compile warning introduced by previous commit.

15 years agoUpdate lvm_vg_extend() to obtain VG_ORPHAN.
Dave Wysochanski [Fri, 24 Jul 2009 15:12:50 +0000 (15:12 +0000)]
Update lvm_vg_extend() to obtain VG_ORPHAN.

vg_extend() no longer obtains VG_OPHAN so we must do so in liblvm function.
We still have the race in liblvm but we will address this problem later.

15 years agoRevert previous patch that moved VG_ORPHAN lock inside vg_extend.
Dave Wysochanski [Fri, 24 Jul 2009 15:01:43 +0000 (15:01 +0000)]
Revert previous patch that moved VG_ORPHAN lock inside vg_extend.

We must hold the VG_ORPHAN lock until we commit to disk.  Otherwise,
we risk a race condition on vgcreate / vgextend.  Reverts the following
commit:

commit 72a41480ba66d7dc2d05ef8583080b6b08208507
Author: Dave Wysochanski <dwysocha@redhat.com>
Date:   Fri Jul 10 20:09:21 2009 +0000

    Move orphan lock obtain/release inside vg_extend().

    With this change we now have vgcreate/vgextend liblvm functions.
    Note that this changes the lock order of the following functions as the
    orphan lock is now obtained first.  With our policy of non-blocking
    second locks, this should not be a problem.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
15 years agoAdd tests for lvm_vg_name_list, lvm_vg_id_list and lvm_scan_vgs.
Dave Wysochanski [Fri, 24 Jul 2009 12:51:32 +0000 (12:51 +0000)]
Add tests for lvm_vg_name_list, lvm_vg_id_list and lvm_scan_vgs.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoAdd lvm_scan_vgs liblvm fn to scan the system for LVM metadata.
Dave Wysochanski [Fri, 24 Jul 2009 12:48:21 +0000 (12:48 +0000)]
Add lvm_scan_vgs liblvm fn to scan the system for LVM metadata.

The lvm_list_vg_{names|ids} functions do not do a scan so we provide
a liblvm function that does a scan.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoAdd lvm_list_vg_names and lvm_list_vg_ids liblvm functions.
Dave Wysochanski [Fri, 24 Jul 2009 12:47:15 +0000 (12:47 +0000)]
Add lvm_list_vg_names and lvm_list_vg_ids liblvm functions.

These functions provide the capability of enumerating all vgnames and
vgids in the system.  They do not do a scan of the system.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoRemove redundant validate_name in vgreduce.
Dave Wysochanski [Fri, 24 Jul 2009 11:13:36 +0000 (11:13 +0000)]
Remove redundant validate_name in vgreduce.

This check is now done in vg_read_for_update, thanks to mornfall.
Should be no functional change.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoUpdate test/api/test.c to not segfault if null lists of pvs/lvs returned.
Dave Wysochanski [Fri, 24 Jul 2009 04:15:30 +0000 (04:15 +0000)]
Update test/api/test.c to not segfault if null lists of pvs/lvs returned.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoUpdate WHATS_NEW for liblvm commits
Dave Wysochanski [Thu, 23 Jul 2009 23:55:01 +0000 (23:55 +0000)]
Update WHATS_NEW for liblvm commits

15 years agoUpdate test/api/test.c for simple tests involving pv/vg/lv name/uuid attributes.
Dave Wysochanski [Thu, 23 Jul 2009 23:40:50 +0000 (23:40 +0000)]
Update test/api/test.c for simple tests involving pv/vg/lv name/uuid attributes.

Tests the following APIs:
- lvm_{pv|vg|lv}_get_{name|uuid}()
- lvm_{lvs|pvs}_in_vg()

Example:
lvm> vg_open VolGroup00
Success opening vg VolGroup00
lvm> vg_list_lvs VolGroup00
LVs in VG VolGroup00:
VolGroup00/LogVol00 (bFO4EU-UaDu-iuMm-N6BA-xcZc-nm3u-J5K5lu)
VolGroup00/LogVol01 (BHGsPK-PwzY-kye0-MEWa-a67z-BiYE-03ZjwM)
lvm> vg_list_pvs VolGroup00
PVs in VG VolGroup00:
/dev/sda2 (Be91pt-CqT0-4YJE-nGI6-Oisz-hy0N-l9CHgn)

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Acked-by: Thomas Woerner <twoerner@redhat.com>
15 years agoAdd lvm_{pv|vg|lv}_get_{uuid|name}.
Dave Wysochanski [Thu, 23 Jul 2009 23:40:05 +0000 (23:40 +0000)]
Add lvm_{pv|vg|lv}_get_{uuid|name}.

Caller must free the memory of the uuid / name returned.
This may not be the best memory management policy since it may lead to
memory leaks if the caller has code like this:
if (!lvm_vg_get_name(vg))

Maybe we don't care - if we do we can use pools tied to handles later
or some other scheme.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Acked-by: Thomas Woerner <twoerner@redhat.com>
15 years agoAdd lvm_vg_list_{pvs|lvs} - return lists of pv/lv handles for a vg.
Dave Wysochanski [Thu, 23 Jul 2009 23:39:02 +0000 (23:39 +0000)]
Add lvm_vg_list_{pvs|lvs} - return lists of pv/lv handles for a vg.

- Use vgmem pool to allocate a list of lvm_*_list structs
- Allocate a new list each call (list may have changed since last call)
- Add to liblvm's exported symbols

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Acked-by: Thomas Woerner <twoerner@redhat.com>
15 years agoAdd list structure definitions for liblvm objects.
Dave Wysochanski [Thu, 23 Jul 2009 23:37:24 +0000 (23:37 +0000)]
Add list structure definitions for liblvm objects.

- pv_t, vg_t, lv_t
- include libdevmapper.h: needed for struct dm_list

These list structures will be needed in later APIs to return a list of
handles to one object, given another object.  For example, lvm_vg_list_lvs()
will return a list of LV handles (lv_t's) given a VG handle (vg_t).  We
need a structure to do this so we define the LV structure, as well as the
other structures at this point.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
15 years agoRemove lvseg_t and pvseg_t typedefs from liblvm/lvm.h.
Dave Wysochanski [Thu, 23 Jul 2009 23:36:20 +0000 (23:36 +0000)]
Remove lvseg_t and pvseg_t typedefs from liblvm/lvm.h.

We do not need lvseg and pvseg for now.  If we need we will add back
later.

15 years agocheck in the correct pkgconfig file
Alasdair Kergon [Thu, 23 Jul 2009 01:41:53 +0000 (01:41 +0000)]
check in the correct pkgconfig file

15 years agoUpdate lvm_vg_create to use NULL / non-NULL return for the time being.
Dave Wysochanski [Thu, 23 Jul 2009 01:20:22 +0000 (01:20 +0000)]
Update lvm_vg_create to use NULL / non-NULL return for the time being.

Some of the error interface is still TBD.  Rather than exporting a lot
of codes, etc, just use a simple pass / fail.  The allows our unit test
to not segfault if trying to create a VG that already exists.

15 years agoAdd a couple lvm_vg_open() calls to vgtest.c.
Dave Wysochanski [Wed, 22 Jul 2009 22:25:30 +0000 (22:25 +0000)]
Add a couple lvm_vg_open() calls to vgtest.c.

15 years agoAdd lvm_vg_open() to open an existing VG for reading or writing.
Dave Wysochanski [Wed, 22 Jul 2009 22:24:16 +0000 (22:24 +0000)]
Add lvm_vg_open() to open an existing VG for reading or writing.

lvm_vg_open() calls internal vg_read() function which is the entry point
for reading an existing VG.  In addition to the mode, we include a 'flags'
parameter for future extensions.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
15 years agoAdd liblvm2app Makefile installation targets.
Alasdair Kergon [Wed, 22 Jul 2009 21:09:13 +0000 (21:09 +0000)]
Add liblvm2app Makefile installation targets.
Add liblvm pkgconfig file.

15 years agofix dir in generated file list for cflow
Alasdair Kergon [Wed, 22 Jul 2009 20:29:56 +0000 (20:29 +0000)]
fix dir in generated file list for cflow

15 years agoUse newly-independent LVM_LIBAPI in liblvm soname. E.g. liblvm2app.so.2.1.
Alasdair Kergon [Wed, 22 Jul 2009 20:12:14 +0000 (20:12 +0000)]
Use newly-independent LVM_LIBAPI in liblvm soname.  E.g. liblvm2app.so.2.1.

15 years agoAdd an API version number, LVM_LIBAPI, to the VERSION string.
Alasdair Kergon [Wed, 22 Jul 2009 20:01:28 +0000 (20:01 +0000)]
Add an API version number, LVM_LIBAPI, to the VERSION string.

15 years agoUpdate api/test/vgtest.c error handling.
Dave Wysochanski [Wed, 22 Jul 2009 16:49:54 +0000 (16:49 +0000)]
Update api/test/vgtest.c error handling.

Reverts some of my 'cleanup' from last night.  For now we will use pass/fail
on API calls (either 'int' return or NULL/non-NULL handle), then use
lvm_errno() to get more specific errors.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoUpdate test/api/vgtest.c to use lvm_errno and lvm_errmsg.
Dave Wysochanski [Wed, 22 Jul 2009 03:13:57 +0000 (03:13 +0000)]
Update test/api/vgtest.c to use lvm_errno and lvm_errmsg.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoFix lvm_vg_close() when locking fails.
Dave Wysochanski [Wed, 22 Jul 2009 03:13:35 +0000 (03:13 +0000)]
Fix lvm_vg_close() when locking fails.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoExport lvm_errno and lvm_errmsg in liblvm.
Dave Wysochanski [Wed, 22 Jul 2009 03:13:13 +0000 (03:13 +0000)]
Export lvm_errno and lvm_errmsg in liblvm.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoPass struct cmd_context as a first argument to init_multiple_segtypes.
Mikulas Patocka [Tue, 21 Jul 2009 20:00:02 +0000 (20:00 +0000)]
Pass struct cmd_context as a first argument to init_multiple_segtypes.

Remove redundant assignment seglib.cmd = cmd (done already at the beginning
of the function).

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
15 years agoAfter rebasing the cluster logging code, adjustments need to be
Jonathan Earl Brassow [Tue, 21 Jul 2009 15:34:53 +0000 (15:34 +0000)]
After rebasing the cluster logging code, adjustments need to be
made to compensate for the changes in the kernel-side component
that recently went upstream.  (Things like: renamed structures,
removal of structure fields, and changes to arguments passed
between userspace and kernel.)

15 years agoRebasing the cluster log daemon code from the most current
Jonathan Earl Brassow [Tue, 21 Jul 2009 15:32:13 +0000 (15:32 +0000)]
Rebasing the cluster log daemon code from the most current
sources in the 'cluster' tree.  There have been a number of
bug fixes and I don't want to loose them.

15 years agoFix build environment of test/api: Make it usable for more than one test case.
Dave Wysochanski [Tue, 21 Jul 2009 13:51:05 +0000 (13:51 +0000)]
Fix build environment of test/api: Make it usable for more than one test case.

Author: Thomas Woerner <twoerner@redhat.com>
Committer: Dave Wysochanski <dwysocha@redhat.com>

15 years agoReturn EINVALID_CMD_LINE not success when invalid VG name format is used.
Alasdair Kergon [Tue, 21 Jul 2009 11:10:49 +0000 (11:10 +0000)]
Return EINVALID_CMD_LINE not success when invalid VG name format is used.

15 years agoRename test/api/vgcreate.c to vgtest.c to reduce filename conflicts in tree.
Dave Wysochanski [Tue, 21 Jul 2009 10:46:45 +0000 (10:46 +0000)]
Rename test/api/vgcreate.c to vgtest.c to reduce filename conflicts in tree.

Signed-off-by: Thomas Woerner <twoerner@redhat.com>
Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
15 years agoFix compile warnings in vgcreate liblvm api unit test case.
Dave Wysochanski [Tue, 21 Jul 2009 10:41:47 +0000 (10:41 +0000)]
Fix compile warnings in vgcreate liblvm api unit test case.

Use const and PRIu64.

Signed-off-by: Thomas Woerner <twoerner@redhat.com>
Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Author: Thomas Woerner <twoerner@redhat.com>
Committer: Dave Wysochanski <dwysocha@redhat.com>

15 years agoCast MINOR() in _md_sysfs_attribute_snprintf()'s dm_snprintf() call.
Mike Snitzer [Mon, 20 Jul 2009 18:44:13 +0000 (18:44 +0000)]
Cast MINOR() in _md_sysfs_attribute_snprintf()'s dm_snprintf() call.

15 years agoCast MAJOR() and MINOR() to int when used with "%d" in dm_snprintf() call.
Mike Snitzer [Mon, 20 Jul 2009 18:33:16 +0000 (18:33 +0000)]
Cast MAJOR() and MINOR() to int when used with "%d" in dm_snprintf() call.
Fixes SEGV in _md_sysfs_attribute_snprintf() on 32-bit systems.

15 years agoRemove 'is already' message from vg_set_* functions.
Dave Wysochanski [Thu, 16 Jul 2009 20:18:16 +0000 (20:18 +0000)]
Remove 'is already' message from vg_set_* functions.

These messages are unnecessary in the set functions.  We check for this
condition and print a message in the vgchange tool but not the library
functions.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
15 years agoFix so only log_error and log_fatal set EUNCLASSIFIED.
Alasdair Kergon [Thu, 16 Jul 2009 13:13:33 +0000 (13:13 +0000)]
Fix so only log_error and log_fatal set EUNCLASSIFIED.

15 years agoRemove extraneous messages for extent_size and alloc_policy upon vgcreate.
Dave Wysochanski [Thu, 16 Jul 2009 03:25:26 +0000 (03:25 +0000)]
Remove extraneous messages for extent_size and alloc_policy upon vgcreate.

When converting to the new liblvm functions, the vgcreate code path
changed to create a new vg, then set values.  As a result of this
change, and the fact that we give a user a message if they try to
set the same value of a VG attribute (extent_size, alloc_policy, etc),
you'll see these 2 extraneous "is already" messages with vgcreate:
tools/lvm vgcreate vg2 /dev/loop2
  Physical extent size of VG vg2 is already 4.00 MB
  Volume group allocation policy is already normal
  Volume group "vg2" successfully created

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoChange default errno value to 0 (no error) and add prototypes in lvm.h
Dave Wysochanski [Thu, 16 Jul 2009 03:07:45 +0000 (03:07 +0000)]
Change default errno value to 0 (no error) and add prototypes in lvm.h

Since we are using errno values, we should use '0' as a default value
which indicates a non-error, rather than defining some made-up default
value that is not defined in errno.  If we need to deviate from errno
values, this will most likely indicate a flaw in our design.

Add prototypes for lvm_errno and lvm_errmsg inside lvm.h and provide
a basic description of their function.  This fixes a couple compile
warnings.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoAdd log_errno to set a specific errno and replace log_error in due course.
Alasdair Kergon [Thu, 16 Jul 2009 00:52:06 +0000 (00:52 +0000)]
Add log_errno to set a specific errno and replace log_error in due course.

15 years agoAdd lvm_errno and lvm_errmsg to liblvm to obtain failure information.
Alasdair Kergon [Thu, 16 Jul 2009 00:36:59 +0000 (00:36 +0000)]
Add lvm_errno and lvm_errmsg to liblvm to obtain failure information.
Change create_toolcontext to still return an object if it fails part-way.
Add EUNCLASSIFIED (-1) as the default LVM errno code.

15 years agoStore any errno and error messages issued while processing each command.
Alasdair Kergon [Wed, 15 Jul 2009 23:57:54 +0000 (23:57 +0000)]
Store any errno and error messages issued while processing each command.
(Enabled by default while we test it, but in due course we'll only store
the error messages when we need to.)

15 years agoUse log_error macro consistently throughout in place of log_err.
Alasdair Kergon [Wed, 15 Jul 2009 20:02:46 +0000 (20:02 +0000)]
Use log_error macro consistently throughout in place of log_err.

15 years agoRevert broken commit:
Alasdair Kergon [Wed, 15 Jul 2009 17:26:26 +0000 (17:26 +0000)]
Revert broken commit:
  2009-07-15 06:10:51  Un-export vg_read_internal.

lvm-functions.c:774: warning: implicit declaration of function 'vg_read_internal'

15 years agopost-release
Alasdair Kergon [Wed, 15 Jul 2009 15:38:41 +0000 (15:38 +0000)]
post-release

15 years agopre-release
Alasdair Kergon [Wed, 15 Jul 2009 15:16:48 +0000 (15:16 +0000)]
pre-release

15 years agopre-release clarification
Alasdair Kergon [Wed, 15 Jul 2009 14:59:14 +0000 (14:59 +0000)]
pre-release clarification

15 years agoNew LOG_MESG macro to fix file/line number logging for memory leaks after
Alasdair Kergon [Wed, 15 Jul 2009 14:18:38 +0000 (14:18 +0000)]
New LOG_MESG macro to fix file/line number logging for memory leaks after
LOG_LINENO macro was added.

15 years agopre-release
Alasdair Kergon [Wed, 15 Jul 2009 13:20:06 +0000 (13:20 +0000)]
pre-release

15 years agoFix memory leak in process_each_pv path.
Dave Wysochanski [Wed, 15 Jul 2009 12:22:59 +0000 (12:22 +0000)]
Fix memory leak in process_each_pv path.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoFix memory leak in _process_one_vg error path.
Dave Wysochanski [Wed, 15 Jul 2009 12:15:36 +0000 (12:15 +0000)]
Fix memory leak in _process_one_vg error path.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoFix warning.
Petr Rockai [Wed, 15 Jul 2009 06:11:25 +0000 (06:11 +0000)]
Fix warning.

15 years agoUn-export vg_read_internal.
Petr Rockai [Wed, 15 Jul 2009 06:10:51 +0000 (06:10 +0000)]
Un-export vg_read_internal.

15 years agoFix bad prototype from previous checkin.
Petr Rockai [Wed, 15 Jul 2009 05:57:11 +0000 (05:57 +0000)]
Fix bad prototype from previous checkin.

15 years agoPort process_each_pv to new vg_read.
Petr Rockai [Wed, 15 Jul 2009 05:50:22 +0000 (05:50 +0000)]
Port process_each_pv to new vg_read.

15 years agoRemove lockingfailed().
Petr Rockai [Wed, 15 Jul 2009 05:49:47 +0000 (05:49 +0000)]
Remove lockingfailed().

  We provide a lock type that behaves like no_locking, but is not
  clustered. Moreover, it also forbids any write locks. This magically (and
  consistently) prevents use of clustered VGs, or changing local VGs with
  --ignorelockingfailure. As a bonus, we can remove the special hacks in a few
  places. Of course, people looking for trouble can always set their locking_type
  to 0 to override.

15 years agoTake just a read lock when activating in lvchange.
Petr Rockai [Wed, 15 Jul 2009 05:48:36 +0000 (05:48 +0000)]
Take just a read lock when activating in lvchange.

15 years agoRefuse to open VG with MISSING_PVs for update unless handles_missing_pvs is set.
Petr Rockai [Wed, 15 Jul 2009 05:47:55 +0000 (05:47 +0000)]
Refuse to open VG with MISSING_PVs for update unless handles_missing_pvs is set.

15 years agoCheck for certain vg_read errors in _process_one_vg iterator.
Dave Wysochanski [Wed, 15 Jul 2009 05:23:19 +0000 (05:23 +0000)]
Check for certain vg_read errors in _process_one_vg iterator.

In _process_one_vg, we should never proceed if the VG read fails with certain
conditions.  If we cannot allocate or construct the volume_group structure,
we should not proceed - this is true regardless of the tool calling the
iterator.  In other cases, when the volume group structure is constructed but
there is some error (PVs missing, metadata corrupted, etc), some tools may
want to process the VG while others may not.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoFix FAILED_INCONSISTENT case in vg_backup_single - typeo on 'if' condition.
Dave Wysochanski [Wed, 15 Jul 2009 03:30:04 +0000 (03:30 +0000)]
Fix FAILED_INCONSISTENT case in vg_backup_single - typeo on 'if' condition.

In vg_backup_single, we should error out if we vg_read_error(vg) and the
error code we received was anything other than FAILED_INCONSISTENT.
Original code contained an error because C operator precedence.
Note - this was part of the vg_read() so no WHATS_NEW entry neceesary.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoFix pvremove test breakage.
Dave Wysochanski [Tue, 14 Jul 2009 19:59:41 +0000 (19:59 +0000)]
Fix pvremove test breakage.

Author: Dave Wysochanski <dwysocha@redhat.com>

15 years agoFix vgck and vgremove segfault if non-existent vg given.
Dave Wysochanski [Tue, 14 Jul 2009 19:37:18 +0000 (19:37 +0000)]
Fix vgck and vgremove segfault if non-existent vg given.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
15 years agoAdd a few negative tests which should fail cleanly if pv, vg, lvs don't exist.
Dave Wysochanski [Tue, 14 Jul 2009 19:35:35 +0000 (19:35 +0000)]
Add a few negative tests which should fail cleanly if pv, vg, lvs don't exist.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
15 years agoEnable use of new multi-segment registration for static registration too.
Milan Broz [Tue, 14 Jul 2009 12:17:14 +0000 (12:17 +0000)]
Enable use of new multi-segment registration for static registration too.

so it allows this use:

#ifdef MYNEWSEG_INTERNAL
        if (!init_mynewseg_segtypes(&seglib))
                        return 0;
#endif

15 years agoExclude VG_GLOBAL from vg_write_lock_held so scans open devs read-only again. (mbroz)
Alasdair Kergon [Tue, 14 Jul 2009 11:01:26 +0000 (11:01 +0000)]
Exclude VG_GLOBAL from vg_write_lock_held so scans open devs read-only again. (mbroz)

15 years agoAdd liblvm test case for creating of a vg.
Dave Wysochanski [Tue, 14 Jul 2009 03:08:56 +0000 (03:08 +0000)]
Add liblvm test case for creating of a vg.

liblvm unit test case uses the following APIs:
- lvm_create, lvm_destroy
- lvm_vg_create, lvm_vg_extend, lvm_vg_set_extent_size, lvm_vg_write,
lvm_vg_remove, lvm_vg_close

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Acked-by: Alasdair G Kergon <agk@redhat.com>
15 years agoAdd VG APIs to liblvm/.exported_symbols.
Dave Wysochanski [Tue, 14 Jul 2009 03:02:44 +0000 (03:02 +0000)]
Add VG APIs to liblvm/.exported_symbols.

Add the following VG APIs to liblvm/.exported_symbols:
-lvm_reload_config
-lvm_vg_create
-lvm_vg_extend
-lvm_vg_set_extent_size
-lvm_vg_write
-lvm_vg_close
-lvm_vg_remove

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Acked-by: Alasdair G Kergon <agk@redhat.com>
15 years agoAdd lvm_vg_* APIs to create and modify VGs.
Dave Wysochanski [Tue, 14 Jul 2009 03:02:14 +0000 (03:02 +0000)]
Add lvm_vg_* APIs to create and modify VGs.

Add some liblvm APIs for VGs.  Most of these APIs simply call into the internal
liblvm library.  Ideally we should call the liblvm functions directly from
the tools.  However, until we convert more of the code to liblvm functions,
things like the cmd_context will get in the way.  For now just implement the
liblvm functions as wrappers around the internal functions, with a little
error checking and return code handling.  We put all these vg APIs into a
new file, lvm_vg.c

The following APIs are implemented:
lvm_vg_create, lvm_vg_extend, lvm_vg_set_extent_size, lvm_vg_write,
lvm_vg_remove, lvm_vg_close.

Still TODO:
- cleanup error handling by using lvm_errno() and related APIs
- cleanup naming / clarify which functions commit to disk vs not
- implement more 'set' functions
- decide on 'set' / 'change' nomenclature

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Acked-by: Alasdair G Kergon <agk@redhat.com>
15 years agoAdd default cmd->cmd_line initialization for liblvm lvm_create().
Dave Wysochanski [Tue, 14 Jul 2009 03:01:18 +0000 (03:01 +0000)]
Add default cmd->cmd_line initialization for liblvm lvm_create().

This needs initialized to non-NULL before using the archive() call.
Normally this is set to the cmdline string when lvm is called from a tool.
We could think about using it in another way, as a potential audit trail
of liblvm calls, or just leave it set to the default "liblvm", similar to
what clvmd does.  For now, just set it to "liblvm".

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Acked-by: Alasdair G Kergon <agk@redhat.com>
15 years agoDefine handles to liblvm objects for pv, vg, lv, lvseg, pvseg.
Dave Wysochanski [Tue, 14 Jul 2009 03:00:30 +0000 (03:00 +0000)]
Define handles to liblvm objects for pv, vg, lv, lvseg, pvseg.

Define the 5 main liblvm objects to be the pv, vg, lv, lvseg, and pvseg.
We need handles defined to all these objects in order for liblvm to be
equivalent to the reporting commands pvs, vgs, and lvs.

- move vg_t, lv_t, and pv_t from metadata-exported.h into lvm.h
- move lv_segment and pv_segment forward declarations into lvm.h
- add lvseg_t and pvseg_t to lvm.h

NOTE: We currently have an inconsistency in handle definitions.
lvm_t is defined as a pointer, while these other handles are just
structures.  We should pick one scheme and be consistent - perhaps
define all handles as pointers (this is what I've seen elsewhere).

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
Acked-by: Alasdair G Kergon <agk@redhat.com>
This page took 0.070784 seconds and 5 git commands to generate.