]> sourceware.org Git - lvm2.git/log
lvm2.git
14 years agoMirrors can be layered - as in the case of an converting 2-way
Jonathan Earl Brassow [Mon, 21 Jun 2010 16:12:33 +0000 (16:12 +0000)]
Mirrors can be layered - as in the case of an converting 2-way
to 3-way mirror.  When conversion operations are performed on
these types of mirrors, log options can be confused/ignored.

In the case of a converting 3-way mirror, we have a top-level
2-way corelog mirror whose legs are 1) a 2-way disk-log mirror
and 2) a linear device.  If we wish to convert this 3-way mirror
to a 2-way mirror, the linear device is removed and the extra
top layer is eliminated.  If we also wished to convert the disk
log to a core log in the same step, ambiguity creeps in.  It is
somewhat obvious what the user wants - a 2-way mirror with a
corelog.  However, looking at the top level mirror before
compression, it seems that the mirror already has a core log.
This is why the operation seemed to fail.

This patch simply re-evaluates what mirrored_seg points to after
a compression and then considers the log argument.

This is a fix for bug 599898.

14 years agoAdd error checking for calls to sprintf - it can fail for more
Jonathan Earl Brassow [Mon, 21 Jun 2010 16:07:06 +0000 (16:07 +0000)]
Add error checking for calls to sprintf - it can fail for more
reasons than just 'out-of-space'.

14 years agoVarious cleanups following recent commits.
Alasdair Kergon [Mon, 21 Jun 2010 15:56:57 +0000 (15:56 +0000)]
Various cleanups following recent commits.

14 years agoLet running clvmd process time to reexec.
Milan Broz [Mon, 21 Jun 2010 10:45:15 +0000 (10:45 +0000)]
Let running clvmd process time to reexec.

Because execve stops the command loop,
we never receive response (only socket close) for clvmd -S,
so waiting for response here makes no sense.

But if the calling process (clvmd -S)  exits too early, connection
is closed from client side, clvmd takes this as an error and
never run restart code.

Ugly hack(TM).

14 years agoUse early udev synchronisation and update of dev nodes for clustered mirrors.
Peter Rajnoha [Mon, 21 Jun 2010 08:54:32 +0000 (08:54 +0000)]
Use early udev synchronisation and update of dev nodes for clustered mirrors.

When using clustered mirrors, we need device nodes to be created during
processing of device tree, not at its end like we normally do (we need to
access the nodes in cmirror prematurely). Therefore we use a new flag called
"immediate_dev_node" stored in deptree's load_properties struct to instruct the
device tree processing code to immediately synchronize with udev and flush all
stacked node operations so the nodes are prepared for use.

For now, the immediate_dev_node is used for clustered mirrors during
processing the dm_tree_preload_children code only. We can add more later if
needed.

14 years agodaemons/cmirrord/functions.c (part of cmirrord) was referencing
Jonathan Earl Brassow [Fri, 18 Jun 2010 20:58:04 +0000 (20:58 +0000)]
daemons/cmirrord/functions.c (part of cmirrord) was referencing
linux/kdev_t.h even though it wasn't needed.  Strangely, it seems
to be causing problems on various architectures (i686) in the
function daemons/cmirrord/functions.c:disk_status_info()->sprintf.

I'm not sure why this is a problem since none of the macros in
kdev_t.h are used in that code, but it certainly doesn't hurt to
pull an unnecessary header and it seems to fix the problem.

14 years agoAdd man pages for lvmconf and unsupported lvmsadc and lvmsar tools.
Zdenek Kabelac [Fri, 18 Jun 2010 10:19:29 +0000 (10:19 +0000)]
Add man pages for lvmconf and unsupported lvmsadc and lvmsar tools.

14 years agoFix exit code when requesting help using documented -o help option.
Milan Broz [Thu, 17 Jun 2010 13:15:51 +0000 (13:15 +0000)]
Fix exit code when requesting help using documented -o help option.

IOW fix lvs -o help
...
  Command failed with status code 5.

14 years agoClean up cluster lock mode and flags definition.
Milan Broz [Thu, 17 Jun 2010 12:48:54 +0000 (12:48 +0000)]
Clean up cluster lock mode and flags definition.

Code is mixing up internal DLM and LVM definitions of lock
modes and flags.

OpenAIS and singlenode locking do not depend on DLM but
code currently cannot be compiled without libdlm.h!

LCK_* flags is LVM abstraction, used through all the code.
Only low-level backend (clvmd-cman etc) should use DLM definitions,
also this code should do all needed conversions.

Because there are two DLM flags used in generic code
(NOQUEUE, CONVERT) we define it similar way like lock modes.
(So all needed binary-compatible flags are on one place in locking.h)

(Further code cleaning still needed, though:-)

14 years agoAdd man page for dmeventd
Zdenek Kabelac [Thu, 17 Jun 2010 12:14:43 +0000 (12:14 +0000)]
Add man page for dmeventd
(inspired by patch from Danny Rawlins, monster.romster at gmail dot com)

14 years agoUpdate lvresize/extend/reduce manpages with --nofsck, --resizefs options
Zdenek Kabelac [Thu, 17 Jun 2010 11:25:43 +0000 (11:25 +0000)]
Update lvresize/extend/reduce manpages with --nofsck, --resizefs options

14 years agoFix lvm2cmd example in documentation.
Milan Broz [Wed, 16 Jun 2010 13:03:48 +0000 (13:03 +0000)]
Fix lvm2cmd example in documentation.

14 years agoRemove C++ private keyword from headers.
Milan Broz [Wed, 16 Jun 2010 13:01:25 +0000 (13:01 +0000)]
Remove C++ private keyword from headers.
Add extern C definition for libdevmapper, lvm2app and lvm2cmd.

14 years agoUse "" instead of <> for configure.h and libdevmapper.h
Zdenek Kabelac [Tue, 15 Jun 2010 11:00:44 +0000 (11:00 +0000)]
Use "" instead of <> for  configure.h and libdevmapper.h
Move configure.h as the first header for clvmd source files.

14 years agoUpdate WHATS_NEW for last commit
Zdenek Kabelac [Mon, 7 Jun 2010 14:39:18 +0000 (14:39 +0000)]
Update WHATS_NEW  for last commit

14 years agoFix wrong usage of exec_prefix from previous patch introducing LVM_PATH define
Zdenek Kabelac [Mon, 7 Jun 2010 14:31:59 +0000 (14:31 +0000)]
Fix wrong usage of exec_prefix from previous patch introducing LVM_PATH define

Introduce lvm_exec_prefix with resolved exec_prefix.
(using same ac_default_prefix as for CLVMD_PATH)
Use lvm_exec_prefix instead of dmeventd_prefix (fixes missing ac_default_prefix)

Note: This patch is rather hot-fix as currently generate code
does not create correct code for make exec_prefix=

14 years agoFix segfault in clvmd -R if no response from daemon received.
Milan Broz [Mon, 7 Jun 2010 13:52:52 +0000 (13:52 +0000)]
Fix segfault in clvmd -R if no response from daemon received.

14 years agopost-release
Alasdair Kergon [Mon, 7 Jun 2010 10:25:43 +0000 (10:25 +0000)]
post-release

14 years agopre-release old-v2_02_67 v2_02_67
Alasdair Kergon [Fri, 4 Jun 2010 17:23:49 +0000 (17:23 +0000)]
pre-release

14 years agoFix restart of clvmd using -S switch
Milan Broz [Fri, 4 Jun 2010 12:59:30 +0000 (12:59 +0000)]
Fix restart of clvmd using -S switch

 - allocate environment dynamically (still missing some limit?)
 - try to recover, if destroy failed (do not destroy lvm here) and free memory
 - check strdup() return codes
 - report failure to log
 - do not print NULL in exclusive lock loop

14 years agoFix clvmd initscript restart command to start clvmd if not yet running.
Milan Broz [Thu, 3 Jun 2010 21:03:53 +0000 (21:03 +0000)]
Fix clvmd initscript restart command to start clvmd if not yet running.

14 years agoUse INSTALL_DIR to create directories
Zdenek Kabelac [Thu, 3 Jun 2010 13:52:21 +0000 (13:52 +0000)]
Use INSTALL_DIR to create directories

14 years agoUse absolute paths in commands
Zdenek Kabelac [Thu, 3 Jun 2010 13:50:26 +0000 (13:50 +0000)]
Use absolute paths in commands

clvmd restart does not work at all if clvmd binary is not in current
dir.

14 years agoRequire partial option in lvchange --refresh for partials LVs.
Milan Broz [Thu, 3 Jun 2010 12:45:05 +0000 (12:45 +0000)]
Require partial option in lvchange --refresh for partials LVs.

We must not refresh LV if some PVs are missing and partial activation
was not requested.

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

14 years agoRevert _init_rand() to reset errno - restores original init behavior.
Dave Wysochanski [Tue, 1 Jun 2010 21:47:57 +0000 (21:47 +0000)]
Revert _init_rand() to reset errno - restores original init behavior.

14 years agoDo not fail lvm_init() if init_logging() generates an errno.
Dave Wysochanski [Tue, 1 Jun 2010 21:46:29 +0000 (21:46 +0000)]
Do not fail lvm_init() if init_logging() generates an errno.

Revert to original behavior of lvm commands if init_logging() generated an
errno.  Fixes rhbz 592967.

14 years agoDon't merge unchanged persistent cache file before dumping if tool scanned.
Alasdair Kergon [Tue, 1 Jun 2010 19:02:12 +0000 (19:02 +0000)]
Don't merge unchanged persistent cache file before dumping if tool scanned.

14 years agoAdd support for dm-mod module autoload.
Peter Rajnoha [Tue, 1 Jun 2010 16:08:13 +0000 (16:08 +0000)]
Add support for dm-mod module autoload.

A kernel patch is on its way for 2.6.35 adding support for dm-mod module
autoload. Udev v155 and higher is able to read static node information given
in modules.devname (extracted by depmod before) and will create such nodes
at its start. The first access to such node will load the module automatically
(directly in kernel) before the actual read/write operation is processed.

14 years agoFix incorrect memory pool deallocation while using vg_read for files.
Peter Rajnoha [Tue, 1 Jun 2010 12:08:50 +0000 (12:08 +0000)]
Fix incorrect memory pool deallocation while using vg_read for files.

We create a separate pool "lvm2 vg_read" for vg_read and we don't use
cmd->mem anymore.

14 years agoAdd --type parameter description to the lvcreate man page.
Mike Snitzer [Fri, 28 May 2010 03:50:15 +0000 (03:50 +0000)]
Add --type parameter description to the lvcreate man page.

14 years agoDocument 'clear' in dmsetup man page.
Mike Snitzer [Thu, 27 May 2010 19:00:14 +0000 (19:00 +0000)]
Document 'clear' in dmsetup man page.

14 years agoUse expected union semun for arguments in selected semaphore operations.
Peter Rajnoha [Thu, 27 May 2010 15:02:56 +0000 (15:02 +0000)]
Use expected union semun for arguments in selected semaphore operations.

This is standard and expected use. It also prevents errors related with
misalignment of the arguments for semaphore operations on some architectures.

14 years agoFix copy&paste detection of kernel release version.
Zdenek Kabelac [Tue, 25 May 2010 08:40:36 +0000 (08:40 +0000)]
Fix copy&paste detection of kernel release version.
Add log_error to avoid return_0 without log_error.

14 years agoReplace strncmp kernel version number checks with proper ones
Alasdair Kergon [Mon, 24 May 2010 23:11:34 +0000 (23:11 +0000)]
Replace strncmp kernel version number checks with proper ones

14 years agoAvoid selecting names under /dev/block if there is an alternative.
Alasdair Kergon [Mon, 24 May 2010 22:53:48 +0000 (22:53 +0000)]
Avoid selecting names under /dev/block if there is an alternative.

14 years agoFix topology test after last changes to not leak loop devices.
Milan Broz [Mon, 24 May 2010 19:27:38 +0000 (19:27 +0000)]
Fix topology test after last changes to not leak loop devices.

14 years agoChoose between clustered log versions based on kernel version.
Alasdair Kergon [Mon, 24 May 2010 17:46:47 +0000 (17:46 +0000)]
Choose between clustered log versions based on kernel version.
Add fixmes for broken strcmp.

14 years agoUse mv -f for replace config in test.
Milan Broz [Mon, 24 May 2010 17:19:50 +0000 (17:19 +0000)]
Use mv -f for replace config in test.

14 years agoReplace lvm.conf instead of truncating it.
Milan Broz [Mon, 24 May 2010 17:18:05 +0000 (17:18 +0000)]
Replace lvm.conf instead of truncating it.

14 years agot-lvconvert-repair-transient hangs on .33 and on RHEL6 kernel -> disable
Petr Rockai [Mon, 24 May 2010 16:33:21 +0000 (16:33 +0000)]
t-lvconvert-repair-transient hangs on .33 and on RHEL6 kernel -> disable

14 years agoUpdate clustered log kernel module name to log-userspace.
Alasdair Kergon [Mon, 24 May 2010 16:30:15 +0000 (16:30 +0000)]
Update clustered log kernel module name to log-userspace.

14 years agoAccount for mirror transient status when doing lvconvert --repair.
Petr Rockai [Mon, 24 May 2010 15:32:20 +0000 (15:32 +0000)]
Account for mirror transient status when doing lvconvert --repair.

14 years agoSkip t-pvcreate-operation-md if mdadm fails to create the required device.
Petr Rockai [Mon, 24 May 2010 15:28:45 +0000 (15:28 +0000)]
Skip t-pvcreate-operation-md if mdadm fails to create the required device.

14 years agoUpdate Copyright date for resently modifed files
Zdenek Kabelac [Mon, 24 May 2010 09:04:27 +0000 (09:04 +0000)]
Update Copyright date for resently modifed files

14 years agoReplicator: update activate code for vgchange
Zdenek Kabelac [Mon, 24 May 2010 09:03:39 +0000 (09:03 +0000)]
Replicator: update activate code for vgchange

Activate only the first replicator-dev LV, that activates all other
related LVs from Replicator. In case of error during this activation,
it will not retry again for other heads (less confusing error log).

14 years agoReplicator: add replicator to dtree
Zdenek Kabelac [Mon, 24 May 2010 09:01:05 +0000 (09:01 +0000)]
Replicator: add replicator to dtree

Adding all replicator related LVs to dtree.
Start of one replicator_dev initiate start of all other related.

14 years agoReplicator: VG with cmd_missing_vgs does not generate output
Zdenek Kabelac [Mon, 24 May 2010 08:59:29 +0000 (08:59 +0000)]
Replicator: VG with cmd_missing_vgs does not generate output

Do not print message if missing VG is found.

14 years agoFix scripts/relpath.awk to work with mawk
Mikulas Patocka [Fri, 21 May 2010 15:28:16 +0000 (15:28 +0000)]
Fix scripts/relpath.awk to work with mawk

length(array) is specific to GNU awk and doesn't work in mawk.
Use a return value of "split" function to indicate array size, this is
supported in both gawk and mawk.

This patch fixes the following errors during "make install" when mawk is
installed as a default awk.

mawk: scripts/relpath.awk: line 25: illegal reference to array from
mawk: scripts/relpath.awk: line 25: illegal reference to array to
mawk: scripts/relpath.awk: line 27: illegal reference to array from
mawk: scripts/relpath.awk: line 32: illegal reference to array to

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
14 years agoReplicator: update _create_partial_dtree()
Zdenek Kabelac [Fri, 21 May 2010 14:47:58 +0000 (14:47 +0000)]
Replicator: update _create_partial_dtree()

Adding function _add_partial_replicator_to_dtree() to create
partial tree for Replicator target.

Using dm_tree_node_set_presuspend_node() for Replicator.

14 years agoReplicator: activate checks for missing vgs
Zdenek Kabelac [Fri, 21 May 2010 14:34:01 +0000 (14:34 +0000)]
Replicator: activate checks for missing vgs

Activation needs to have all remote VGs locked to pass for replicator.
So if activated LV is replicator-dev LV - read all remote VGs.

14 years agoReplicator: lock_lv_vol() finds missing VGs
Zdenek Kabelac [Fri, 21 May 2010 14:29:49 +0000 (14:29 +0000)]
Replicator: lock_lv_vol() finds missing VGs

Find and check for all needed VGs before calling lock_vol().

14 years agoReplicator: use cmd_vg for process_each_lv_in_vg()
Zdenek Kabelac [Fri, 21 May 2010 14:15:39 +0000 (14:15 +0000)]
Replicator: use cmd_vg for process_each_lv_in_vg()

As for _process_one_vg() we need similar retry loop for
process_each_lv_in_vg(). This patch retries to process
failed LVs with reopened VGs.

Patch does not add any extra repeated invocations if there is not
found any missing VG during LV processing.

14 years agoReplicator: use cmd_vg list for _process_one_vg()
Zdenek Kabelac [Fri, 21 May 2010 14:11:13 +0000 (14:11 +0000)]
Replicator: use cmd_vg list for _process_one_vg()

Patch modifes behavior of _process_one_vg().

In the first pass vg_read() collectis for replicator sorted list of
additional VGs during lock_vol().
If any other VG is needed by the replicator and it is not yet opened
then next iteration loop is taken with all collected VGs.

Flag vg->cmd_missing_vgs detects missing VGs.

14 years agoReplicator: add read and release VGs for rsites
Zdenek Kabelac [Fri, 21 May 2010 14:07:16 +0000 (14:07 +0000)]
Replicator: add read and release VGs for rsites

Add functions to read and release remote VGs for replicator sites
in activation context.

14 years agoAdd toolcontext.h header file.
Zdenek Kabelac [Fri, 21 May 2010 13:34:09 +0000 (13:34 +0000)]
Add toolcontext.h header file.

14 years agoRemove files from wrong directory
Zdenek Kabelac [Fri, 21 May 2010 13:18:25 +0000 (13:18 +0000)]
Remove files from wrong directory

14 years agoRight directory name for replicator files.
Zdenek Kabelac [Fri, 21 May 2010 13:17:20 +0000 (13:17 +0000)]
Right directory name for replicator files.

My local CVS was placing file in slightly different directory by using
obsolete files.

14 years agoHmm - fixing cvs import mistake
Zdenek Kabelac [Fri, 21 May 2010 13:14:02 +0000 (13:14 +0000)]
Hmm - fixing cvs import mistake

14 years agoReplicator: add find_replicator_vgs
Zdenek Kabelac [Fri, 21 May 2010 12:55:25 +0000 (12:55 +0000)]
Replicator: add find_replicator_vgs

Adding find_replicator_vgs() function to find all needed
VGs for replicator-dev LV.

This function is later called before taking lock_vol().

14 years agoReplicator: add sorted cmd_vg list
Zdenek Kabelac [Fri, 21 May 2010 12:52:01 +0000 (12:52 +0000)]
Replicator: add sorted cmd_vg list

Introduce struct cmd_vg to store information about needed
volume group name, vgid, flags and the pointer to opened VG.

Keep VGs list in alphabetical order for locking order.

Introduce functions:
cmd_vg_add() add new cmd_vg entry.
cmd_vg_lookup() search cmd_vgs for vg_name.
cmd_vg_read() open VGs in cmd_vgs list.
cmd_vg_release() close VGs in reversed order.

14 years agoReplicator: extend volume_group with list of VGs and flag
Zdenek Kabelac [Fri, 21 May 2010 12:47:46 +0000 (12:47 +0000)]
Replicator: extend volume_group with list of VGs and flag

Add pointer to linked list of opened VGs. List temporarily keeps
the information about needed or locked and opened VGs for replicator target.

Also add cmd_missing_vgs flag information for quick check and
also for possible continuos process_each_lv() usage where we need
to detect whether failure has been caused by missing VG or
some other reason.

14 years agoReplicator: extend _lv_each_dependency() with dependencies for Replicator devices
Zdenek Kabelac [Fri, 21 May 2010 12:45:18 +0000 (12:45 +0000)]
Replicator: extend _lv_each_dependency() with dependencies for Replicator devices

14 years agoReplicator: check replicator segment
Zdenek Kabelac [Fri, 21 May 2010 12:43:02 +0000 (12:43 +0000)]
Replicator: check replicator segment

Check for possible problems within replicator structures.
Used also by vg_validate.

14 years agoReplicator: new files for Replicator target
Zdenek Kabelac [Fri, 21 May 2010 12:40:05 +0000 (12:40 +0000)]
Replicator: new files for Replicator target

14 years agoReplicator: base lvm2 support
Zdenek Kabelac [Fri, 21 May 2010 12:36:30 +0000 (12:36 +0000)]
Replicator: base lvm2 support

Adding configure.in support for Replicators.
Adding basic lib lvm support for Replicators.
Adding flags REPLICATOR and REPLICATOR_LOG.
Adding segments SEG_REPLICATOR and SEG_REPLICATOR_DEV.
Adding basic methods for handling replicator metadata.

14 years agoReplicator: check open_count for parents of presuspend_node
Zdenek Kabelac [Fri, 21 May 2010 12:30:35 +0000 (12:30 +0000)]
Replicator: check open_count for parents of presuspend_node

For deactivation of Replicator check in advance that all heads
have open_count == 0. For this presuspend_node is used as all
head nodes are linking this control node.

14 years agoReplicator: support deactivate of replicator-dev nodes
Zdenek Kabelac [Fri, 21 May 2010 12:27:02 +0000 (12:27 +0000)]
Replicator: support deactivate of replicator-dev nodes

Introducing dm_tree_node_set_presuspend_node() for presuspending child
node (i.e. replicator control target) before deactivation of parent node
(i.e. replicator-dev target).

This patch presents no functional change to current dtree - only
replicator target currently sets presuspend node for dev nodes.

14 years agoReplicator: libdm support
Zdenek Kabelac [Fri, 21 May 2010 12:24:15 +0000 (12:24 +0000)]
Replicator: libdm support

Introducing new API calls:
dm_tree_node_add_replicator_target()
dm_tree_node_add_replicator_dev_target().

Define new typedef dm_replicator_mode_t.

14 years agoAPI change for args of process_each_lv_in_vg()
Zdenek Kabelac [Fri, 21 May 2010 12:21:51 +0000 (12:21 +0000)]
API change for args of process_each_lv_in_vg()

Patch adds failed_lvnames to the list of parameters for process_each_lv_in_vg().
If the list is not NULL it will be filled with LV names of failing LVs
during function execution.

Application could later reiterate only on failed LVs.

14 years agoReturn ECMD_FAILED for break in process_each_lv() and process_each_segment_in_lv()
Zdenek Kabelac [Fri, 21 May 2010 12:19:22 +0000 (12:19 +0000)]
Return ECMD_FAILED for break in process_each_lv() and process_each_segment_in_lv()

14 years agopost-release
Alasdair Kergon [Thu, 20 May 2010 23:21:53 +0000 (23:21 +0000)]
post-release

14 years agoFix $(INSTALL_SCRIPT) old-v2_02_66 v2_02_66
Alasdair Kergon [Thu, 20 May 2010 22:54:58 +0000 (22:54 +0000)]
Fix $(INSTALL_SCRIPT)

14 years agobackup->cache
Alasdair Kergon [Thu, 20 May 2010 22:32:44 +0000 (22:32 +0000)]
backup->cache

14 years agopre-release
Alasdair Kergon [Thu, 20 May 2010 22:27:26 +0000 (22:27 +0000)]
pre-release

14 years agoIf unable to obtain snapshot percentage leave value blank on reports.
Alasdair Kergon [Thu, 20 May 2010 22:24:33 +0000 (22:24 +0000)]
If unable to obtain snapshot percentage leave value blank on reports.

14 years agoAdd make install_initscripts
Alasdair Kergon [Thu, 20 May 2010 14:45:14 +0000 (14:45 +0000)]
Add make install_initscripts

14 years agoAdd install_system_dirs makefile target.
Alasdair Kergon [Thu, 20 May 2010 13:47:21 +0000 (13:47 +0000)]
Add install_system_dirs makefile target.
Add configure options for system and locking directories.

14 years agoGenerate example.conf so default lvm.conf contents can be configured.
Alasdair Kergon [Thu, 20 May 2010 11:45:56 +0000 (11:45 +0000)]
Generate example.conf so default lvm.conf contents can be configured.

14 years agoInstall lvmconf script by default.
Alasdair Kergon [Thu, 20 May 2010 11:20:35 +0000 (11:20 +0000)]
Install lvmconf script by default.
Remove unnecessary versioned dmeventd plugin symlinks.

14 years agoRemove another pvchange hack involving orphan VG names.
Dave Wysochanski [Wed, 19 May 2010 15:34:10 +0000 (15:34 +0000)]
Remove another pvchange hack involving orphan VG names.

Unnecessary as a result of recent changes.

14 years agoRemove hack in pvchange to unlock orphan VG.
Dave Wysochanski [Wed, 19 May 2010 13:21:09 +0000 (13:21 +0000)]
Remove hack in pvchange to unlock orphan VG.

With agk's recent changes, the lock/unlock APIs can properly handle
orphan VG names.

14 years agoFix warnings with conversion of uuid.
Dave Wysochanski [Wed, 19 May 2010 12:12:47 +0000 (12:12 +0000)]
Fix warnings with conversion of uuid.

More cleanup of uuid casting / structures is needed but for now just
cast like the rest of the code.

14 years agoUpdate WHATS_NEW
Dave Wysochanski [Wed, 19 May 2010 11:57:05 +0000 (11:57 +0000)]
Update WHATS_NEW

14 years agoTest lvm_vgname_from_{pvid|device}.
Dave Wysochanski [Wed, 19 May 2010 11:53:30 +0000 (11:53 +0000)]
Test lvm_vgname_from_{pvid|device}.

14 years agoAdd lvm2app interfaces to lookup a vgname from a pvid and pvname.
Dave Wysochanski [Wed, 19 May 2010 11:53:12 +0000 (11:53 +0000)]
Add lvm2app interfaces to lookup a vgname from a pvid and pvname.

lvm2app forces applications to start with a volume group name,
open the volume group, then operate on individual pvs.  In some
cases the application may want to start with a device name rather
than the volume group name.  Today, if an application wants to
do this, it must iterate through all the volume groups to find
the volume group that the specific device is attached to.
These new interfaces allow the application to avoid such overhead.
Bump the lvm2app version number to 3.

14 years agoUpdate pvchange to always obtain a vg handle for each pv to process.
Dave Wysochanski [Wed, 19 May 2010 11:53:00 +0000 (11:53 +0000)]
Update pvchange to always obtain a vg handle for each pv to process.

Earlier patches added some infrastructure to lookup a vgname from
a pvname.  We now can cleanup some of the pvchange and other code
by requiring callers that want to modify some pv property:
1) lookup the vgname by the pvname
2) use the vgname to obtain a vg handle
3) get the pv handle from the vg handle

This should work going forward and be a much cleaner interface,
as we move away from pvs as standalone objects.

14 years agoAdd find_vgname_from_{pvname|pvid} functions.
Dave Wysochanski [Wed, 19 May 2010 11:52:37 +0000 (11:52 +0000)]
Add find_vgname_from_{pvname|pvid} functions.

Some commands start with a pvname, but we'd like to force users to
start with a vg handle to obtain a pv handle.  Our best option seems
to be providing a way to look up the vgname from the pvname, and then
require them to use vg_read/vg_open.

In addition to the pvname lookup function, this patch also provides a
lookup by pvid.  The lookup by pvid can be used in conjunction with
lvmcache_get_pvids to process all pvs in the system.

The pvid find function first calls lvmcache_vgname_from_pvid, which may
cause the label to be read if it is not in the cache.  If the vgname is
returned is an orphan, we then check to see if there are metadata areas,
and if not, we scan every PV on the system by calling scan_vgs_for_pvs().
In most cases we should not need to do this, and by using the info->mdas
count, we avoid calling pv_read() as prior code did.  So this patch is a
bit cleaner and should allow us to refactor more of the pv code.

Signed-off-by: Dave Wysochanski <dwysocha@redhat.com>
14 years agoAdd lvmcache_vgname_from_pvid().
Dave Wysochanski [Wed, 19 May 2010 11:52:21 +0000 (11:52 +0000)]
Add lvmcache_vgname_from_pvid().

Add lvmcache function to lookup a vgname from a pvid.

14 years agoAdd pvid_from_devname() lvmcache function.
Dave Wysochanski [Wed, 19 May 2010 11:52:07 +0000 (11:52 +0000)]
Add pvid_from_devname() lvmcache function.

Add supporting function for mappings from devname -> pvid -> vgname.

14 years agoAdd is_global_vg and split out from is_orphan_vg.
Alasdair Kergon [Wed, 19 May 2010 02:36:33 +0000 (02:36 +0000)]
Add is_global_vg and split out from is_orphan_vg.

14 years agoValidate orphan and VG_GLOBAL lock order too.
Alasdair Kergon [Wed, 19 May 2010 02:08:50 +0000 (02:08 +0000)]
Validate orphan and VG_GLOBAL lock order too.

14 years agoNote that orphan lock is always obtained last
Alasdair Kergon [Wed, 19 May 2010 01:49:08 +0000 (01:49 +0000)]
Note that orphan lock is always obtained last

14 years agoAccept orphan VG names as parameters to lock_vol() and related functions.
Alasdair Kergon [Wed, 19 May 2010 01:16:40 +0000 (01:16 +0000)]
Accept orphan VG names as parameters to lock_vol() and related functions.

14 years agoUse is_orphan_vg in place of hard-coded prefix tests.
Alasdair Kergon [Wed, 19 May 2010 00:52:55 +0000 (00:52 +0000)]
Use is_orphan_vg in place of hard-coded prefix tests.

14 years agopost-release
Alasdair Kergon [Mon, 17 May 2010 20:18:13 +0000 (20:18 +0000)]
post-release

14 years agopre-release v2_02_65
Alasdair Kergon [Mon, 17 May 2010 18:39:01 +0000 (18:39 +0000)]
pre-release

14 years agoFix clvmd init script stop function to not deactive non-clustered volume groups.
Fabio M. Di Nitto [Mon, 17 May 2010 03:18:27 +0000 (03:18 +0000)]
Fix clvmd init script stop function to not deactive non-clustered volume groups.

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

14 years agoDisallow toggling the cluster attribute of a volume group if there
Jonathan Earl Brassow [Fri, 14 May 2010 15:19:42 +0000 (15:19 +0000)]
Disallow toggling the cluster attribute of a volume group if there
are active mirrors or snapshots.

We don't have the mechanisms in place to change the device-mapper
tables for those targets that have behavioral differences between
cluster and single machine instances.  Allowing users to change
the attribute but not changing the target's behavior can lead to
data corruption.

The following bugs are fixed/avoided by this patch:
235123 - vgchange -c [ny] do not change target types when necessary
289331 - RFE: switching from cluster domain to local domain needs to deactivate volume somehow
289541 - when changing from local to cluster, volumes can not appear to be deactivated

14 years agoUse -d to control level of messages sent to syslog by dmeventd.
Alasdair Kergon [Fri, 14 May 2010 14:56:39 +0000 (14:56 +0000)]
Use -d to control level of messages sent to syslog by dmeventd.
Change -d to -f to run dmeventd in foreground.
(mornfall)

14 years agoFix static build.
Alasdair Kergon [Fri, 14 May 2010 13:36:56 +0000 (13:36 +0000)]
Fix static build.

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