Accepting request 138672 from Base:System

- lvm2.spec: merge rules for device-mapper and
  lvm2-clvm packages, so there is only one
  spec file and all packages are built consistently.

OBS-URL: https://build.opensuse.org/request/show/138672
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/lvm2?expand=0&rev=47
This commit is contained in:
Stephan Kulow 2012-10-23 17:40:13 +00:00 committed by Git OBS Bridge
parent 56e5ad2fa6
commit f1a960eb91
26 changed files with 306 additions and 1513 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9238f3400208f26c0e5be896dd3bf41c4d515ab534de23aae8ef4d6ad0d3576d
size 980421

3
LVM2.2.02.98.tgz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:71030a58fef7e00d82ca4144334548e46aad24551a3cfbe7c3059b1bd137d864
size 1227919

View File

@ -1,24 +0,0 @@
From a2e5d2cb9c53cff13e48efa7ba2791d9deb36314 Mon Sep 17 00:00:00 2001
From: Peter Rajnoha <prajnoha@redhat.com>
Date: Thu, 16 Feb 2012 14:39:02 +0000
Subject: [PATCH] Switch to using built-in blkid in 13-dm-disk.rules.
Available in udev since version 176.
---
WHATS_NEW_DM | 1 +
udev/13-dm-disk.rules | 2 +-
2 files changed, 2 insertions(+), 1 deletions(-)
Index: LVM2.2.02.84/udev/13-dm-disk.rules
===================================================================
--- LVM2.2.02.84.orig/udev/13-dm-disk.rules
+++ LVM2.2.02.84/udev/13-dm-disk.rules
@@ -20,7 +20,7 @@ ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id
ENV{DM_SUSPENDED}=="1", GOTO="dm_end"
ENV{DM_TARGET_TYPES}=="|*error*", GOTO="dm_end"
-IMPORT{program}="$env{DM_SBIN_PATH}/blkid -o udev -p $tempnode"
+IMPORT{builtin}="blkid"
ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS+="link_priority=-100"
OPTIONS+="watch"
ENV{DM_TARGET_TYPES}=="*snapshot-origin*", OPTIONS+="link_priority=-90"

View File

@ -10,6 +10,7 @@
# Required-Stop: boot.udev
# Default-Start: B
# Default-Stop:
# Short-Description: DM
# Description: activate device mapper
### END INIT INFO
@ -27,6 +28,10 @@ case "$1" in
rc_failed 3
rc_status -v
;;
reload)
rc_failed 3
rc_status -v
;;
status)
rc_failed 4
rc_status -v

View File

@ -12,6 +12,7 @@
# Should-Stop: $null
# Default-Start: B
# Default-Stop:
# Short-Description: Start LVM2
# Description: start logical volumes
### END INIT INFO

View File

@ -1,15 +0,0 @@
Index: tools/lvmcmdline.c
===================================================================
--- tools/lvmcmdline.c.orig 2011-01-13 23:00:29.000000000 +0800
+++ tools/lvmcmdline.c 2011-02-15 14:59:30.000000000 +0800
@@ -380,8 +380,8 @@
if (!_get_int_arg(av, &ptr) || (*ptr) || (av->sign == SIGN_MINUS))
return 0;
- if (av->i_value > 255) {
- log_error("Minor number outside range 0-255");
+ if (av->i_value > 1048575) {
+ log_error("Minor number outside range 0-1048575");
return 0;
}

View File

@ -1,8 +1,10 @@
Index: LVM2.2.02.84/tools/dmsetup.c
===================================================================
--- LVM2.2.02.84.orig/tools/dmsetup.c 2011-02-15 15:00:52.000000000 +0800
+++ LVM2.2.02.84/tools/dmsetup.c 2011-02-15 15:00:54.000000000 +0800
@@ -1645,6 +1645,7 @@
---
tools/dmsetup.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
--- LVM2.2.02.98.orig/tools/dmsetup.c
+++ LVM2.2.02.98/tools/dmsetup.c
@@ -1720,6 +1720,7 @@ static int _export(int argc, char **argv
const char *name = NULL;
const char *uuid = NULL;
struct dm_info info;
@ -10,7 +12,7 @@ Index: LVM2.2.02.84/tools/dmsetup.c
if (data)
name = names->name;
@@ -1714,6 +1715,28 @@
@@ -1789,6 +1790,28 @@ static int _export(int argc, char **argv
printf("\n");
}

View File

@ -1,8 +1,34 @@
Index: LVM2.2.02.84/tools/dmsetup.c
===================================================================
--- LVM2.2.02.84.orig/tools/dmsetup.c 2011-02-05 06:17:55.000000000 +0800
+++ LVM2.2.02.84/tools/dmsetup.c 2011-02-15 14:44:42.000000000 +0800
@@ -1633,6 +1633,94 @@
---
man/dmsetup.8.in | 7 ++++
tools/dmsetup.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 96 insertions(+)
--- LVM2.2.02.98.orig/man/dmsetup.8.in
+++ LVM2.2.02.98/man/dmsetup.8.in
@@ -19,6 +19,9 @@ dmsetup \- low level logical volume mana
.RI [ \+ ]< sectors >| auto | none ]
.RE
.br
+.B dmsetup export
+.I [device_name]
+.br
.B dmsetup deps
.RB [ \-o
.IR options ]
@@ -285,6 +288,10 @@ device_name in subsequent dmsetup comman
If successful a device will appear as
/dev/mapper/<device-name>.
See below for information on the table format.
+.IP \fBexport
+.I [device_name]
+.br
+Outputs information in key/value format to be imported by other programs.
.br
.TP
.B deps
--- LVM2.2.02.98.orig/tools/dmsetup.c
+++ LVM2.2.02.98/tools/dmsetup.c
@@ -1708,6 +1708,94 @@ static int _status(CMD_ARGS)
return r;
}
@ -95,38 +121,13 @@ Index: LVM2.2.02.84/tools/dmsetup.c
+}
+
/* Show target names and their version numbers */
static int _targets(int argc __attribute__((unused)), char **argv __attribute__((unused)), void *data __attribute__((unused)))
static int _targets(CMD_ARGS)
{
@@ -2735,6 +2823,7 @@
{"info", "[<device>]", 0, 1, _info},
{"deps", "[<device>]", 0, 1, _deps},
{"status", "[<device>] [--target <target_type>]", 0, 1, _status},
+ {"export", "[<device>]", 0, 1, _export},
{"table", "[<device>] [--target <target_type>] [--showkeys]", 0, 1, _status},
{"wait", "<device> [<event_nr>]", 0, 2, _wait},
{"mknodes", "[<device>]", 0, 1, _mknodes},
Index: LVM2.2.02.84/man/dmsetup.8.in
===================================================================
--- LVM2.2.02.84.orig/man/dmsetup.8.in 2011-02-05 03:33:54.000000000 +0800
+++ LVM2.2.02.84/man/dmsetup.8.in 2011-02-15 14:44:42.000000000 +0800
@@ -50,6 +50,9 @@
.I [--noheadings] [--separator separator] [-o fields] [-O|--sort sort_fields]
.I [device_name]
.br
+.B dmsetup export
+.I [device_name]
+.br
.B dmsetup deps
.I [device_name]
.br
@@ -200,6 +203,10 @@
If successful a device will appear as
/dev/device-mapper/<device-name>.
See below for information on the table format.
+.IP \fBexport
+.I [device_name]
+.br
+Outputs information in key/value format to be imported by other programs.
.IP \fBdeps
.I [device_name]
.br
@@ -3058,6 +3146,7 @@ static struct command _commands[] = {
{"info", "[<device>]", 0, -1, 1, _info},
{"deps", "[-o options] [<device>]", 0, -1, 1, _deps},
{"status", "[<device>] [--noflush] [--target <target_type>]", 0, -1, 1, _status},
+ {"export", "[<device>]", 0, 1, 1, _export},
{"table", "[<device>] [--target <target_type>] [--showkeys]", 0, -1, 1, _status},
{"wait", "<device> [<event_nr>] [--noflush]", 0, 2, 0, _wait},
{"mknodes", "[<device>]", 0, -1, 1, _mknodes},

View File

@ -1,45 +0,0 @@
Index: LVM2.2.02.84/libdm/datastruct/hash.c
===================================================================
--- LVM2.2.02.84.orig/libdm/datastruct/hash.c 2010-10-01 05:06:52.000000000 +0800
+++ LVM2.2.02.84/libdm/datastruct/hash.c 2011-02-15 14:45:59.000000000 +0800
@@ -19,7 +19,7 @@
struct dm_hash_node *next;
void *data;
unsigned keylen;
- char key[0];
+ unsigned char key[0];
};
struct dm_hash_table {
@@ -136,7 +136,7 @@
static struct dm_hash_node **_find(struct dm_hash_table *t, const char *key,
uint32_t len)
{
- unsigned h = _hash(key, len) & (t->num_slots - 1);
+ unsigned h = _hash((unsigned char*)key, len) & (t->num_slots - 1);
struct dm_hash_node **c;
for (c = &t->slots[h]; *c; c = &((*c)->next)) {
@@ -235,7 +235,7 @@
char *dm_hash_get_key(struct dm_hash_table *t __attribute__((unused)),
struct dm_hash_node *n)
{
- return n->key;
+ return (char*)n->key;
}
void *dm_hash_get_data(struct dm_hash_table *t __attribute__((unused)),
Index: LVM2.2.02.84/libdm/ioctl/libdm-iface.c
===================================================================
--- LVM2.2.02.84.orig/libdm/ioctl/libdm-iface.c 2011-02-05 05:26:33.000000000 +0800
+++ LVM2.2.02.84/libdm/ioctl/libdm-iface.c 2011-02-15 14:45:59.000000000 +0800
@@ -1983,7 +1983,8 @@
dmt->skip_lockfs ? "S " : "",
dmt->secure_data ? "W " : "",
dmt->query_inactive_table ? "I " : "",
- dmt->sector, _sanitise_message(dmt->message),
+ (unsigned long long int)dmt->sector,
+ _sanitise_message(dmt->message),
dmi->data_size);
#ifdef DM_IOCTLS
if (ioctl(_control_fd, command, dmi) < 0) {

View File

@ -1,8 +1,10 @@
Index: lib/device/device.c
===================================================================
--- lib/device/device.c.orig 2009-08-02 01:14:52.000000000 +0800
+++ lib/device/device.c 2010-02-04 14:02:42.000000000 +0800
@@ -38,7 +38,7 @@
---
lib/device/device.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- LVM2.2.02.98.orig/lib/device/device.c
+++ LVM2.2.02.98/lib/device/device.c
@@ -39,7 +39,7 @@ struct partition {
uint8_t end_cyl;
uint32_t start_sect;
uint32_t nr_sects;

View File

@ -1,629 +0,0 @@
-------------------------------------------------------------------
Thu Sep 27 01:08:44 UTC 2012 - nfbrown@suse.com
- mkinitrd-devmapper-*: tidy up dm_modules handling.
It is confusing that 'save_var' isn't called on it,
so call it.
As these modules need to be in initrd, but not
forcibly loaded, they could be listed as
'udevmodules'.
Also filter out 'snapshot-origin' - a table without
a module. (bnc#779965)
-------------------------------------------------------------------
Thu Jul 26 17:15:54 UTC 2012 - fcrozat@suse.com
- Add blkid-builtin.patch: use built-in blkid from udev
-------------------------------------------------------------------
Sun Sep 18 17:17:12 UTC 2011 - jengelh@medozas.de
- Remove redundant tags/sections from specfile
(cf. packaging guidelines)
- Use %_smp_mflags for parallel build
-------------------------------------------------------------------
Fri May 27 09:07:22 UTC 2011 - lnussel@suse.de
- don't enable boot.device-mapper by default and don't load dm-mod
unconditionally in initrd. udev creates /dev/mapper/control so
dm-mod is automatically loaded when needed.
-------------------------------------------------------------------
Tue Feb 15 08:57:07 UTC 2011 - xwhu@novell.com
- Update to device mapper 1.2.63
- Add configure --with-device-nodes-on=create for previous
behaviour.
- Move creation of device nodes from 'create' to 'resume'.
- Add dmeventd -R to restart dmeventd without losing monitoring
state
-------------------------------------------------------------------
Fri Jan 14 10:08:08 UTC 2011 - lnussel@suse.de
- the lsmod|grep in boot.device-mapper is superfluous, modprobe does
that internally anyways
-------------------------------------------------------------------
Wed Dec 15 16:30:55 CST 2010 - cmeng@novell.com
- sleep and try to wait opne_count to be 0 while lvremove.
(Bug #642296)
-------------------------------------------------------------------
Sun Oct 31 12:37:02 UTC 2010 - jengelh@medozas.de
- Use %_smp_mflags
-------------------------------------------------------------------
Tue Oct 12 17:44:09 UTC 2010 - cristian.rodriguez@opensuse.org
- mkinitrd-devmapper-boot.sh: do not complain if /dev/mapper
directory already exists and contains the control device.
-------------------------------------------------------------------
Thu Sep 30 07:32:27 UTC 2010 - stefan.fent@novell.com
- add device-mapper-devel to baselibs.conf to be able to link lilo
against libdevmapper (bnc #642400)
-------------------------------------------------------------------
Fri Jul 16 10:11:59 UTC 2010 - xwhu@novell.com
- bnc#556177, undefined symbol error while loading dmevent so.
-------------------------------------------------------------------
Mon Jul 5 09:43:41 UTC 2010 - xwhu@novell.com
- bnc#619566, fix error in "dmsetup export" patch,
-------------------------------------------------------------------
Wed Jun 23 05:53:43 UTC 2010 - xwhu@novell.com
- Update to LVM.1.02.49
- Support autoloading of dm-mod module for kernels from 2.6.35
- Use -d to control level of messages sent to syslog by dmeventd
- Do not print encryption key in message debug output
- Add support for new IMPORT{db} udev rule
- Add DM_UDEV_PRIMARY_SOURCE_FLAG udev flag to recognize proper
DM events
- Also include udev libs in libdevmapper.pc when udev_sync is
enabled
- Add support for ioctl's DM_UEVENT_GENERATED_FLAG
- Use the upcoming udev rules update of dm, to cooperate with
artificial uevent (bnc#598193)
-------------------------------------------------------------------
Tue Jun 1 13:08:00 UTC 2010 - xwhu@novell.com
- Link device-mapper to libudev
-------------------------------------------------------------------
Fri May 21 03:40:34 UTC 2010 - xwhu@novell.com
- Fix mkinitrd-devmapper to use udev rules for device mapper
-------------------------------------------------------------------
Mon Apr 26 16:51:40 CEST 2010 - ro@suse.de
- fix pkgconfig file for device mapper
-------------------------------------------------------------------
Sat Apr 3 03:07:44 UTC 2010 - xwhu@novell.com
- Upgrade to device-mapper 1.02.
- Add libdevmapper functions to support synchronisation with udev
- Check udev is running when processing cookies and retain state
internally.
- Add support for the "snapshot-merge" kernel target
-------------------------------------------------------------------
Sun Dec 20 17:12:29 UTC 2009 - coolo@novell.com
- use -j1 - parallel build breaks with symlinks_generated
-------------------------------------------------------------------
Mon Dec 7 15:47:57 CET 2009 - meissner@suse.de
- added type punning patch from pth@suse.de
-------------------------------------------------------------------
Sun Nov 15 10:40:44 CET 2009 - meissner@suse.de
- refreshed patches to avoid fuzz
-------------------------------------------------------------------
Wed Sep 23 06:39:29 UTC 2009 - xwhu@novell.com
- Add -devmapper- infix to mkinitrd scripts
-------------------------------------------------------------------
Thu May 21 16:46:43 CST 2009 - xwhu@suse.de
- specify usrlibdir for configuration
-------------------------------------------------------------------
Mon May 11 15:36:05 CST 2009 - xwhu@suse.de
- Enable pkgconfig for GNOME 2.28
-------------------------------------------------------------------
Mon Apr 27 18:37:32 CST 2009 - xwhu@suse.de
- Upgrade to 1.02.31
. Add "all" field to reports expanding to all fields of report type.
. Enforce device name length and character limitations in libdm.
. Replace _dm_snprintf with EMIT_PARAMS macro for creating target lines.
. Only resume devices in dm_tree_preload_children if size changes.
. Extend deptree buffers so the largest possible device numbers fit.
. Generate versioned libdevmapper-event.so.
. Underline longer report help text headings.
-------------------------------------------------------------------
Tue Apr 21 10:11:35 CEST 2009 - xwhu@suse.de
- bnc#479104, export additional information
-------------------------------------------------------------------
Tue Feb 3 08:42:58 CET 2009 - hare@suse.de
- No whitespace for DM_STATE export variable (bnc#440959)
- Remove obsolete reference to boot.scsidev from init script
-------------------------------------------------------------------
Wed Dec 10 12:34:56 CET 2008 - olh@suse.de
- use Obsoletes: -XXbit only for ppc64 to help solver during distupgrade
(bnc#437293)
-------------------------------------------------------------------
Wed Nov 5 16:57:47 CET 2008 - werner@suse.de
- As boot.crypto depends on boot.device-mapper, the later one has
even on shutdown to depend on boot.udev to make sure that events
will be processed (bnc#413059)
-------------------------------------------------------------------
Thu Oct 30 12:34:56 CET 2008 - olh@suse.de
- obsolete old -XXbit packages (bnc#437293)
-------------------------------------------------------------------
Sat Sep 13 07:03:44 CEST 2008 - xwhu@suse.de
- Fix typo for correct compiling
- Timeout if udevd's not running (bnc#425436)
-------------------------------------------------------------------
Wed Sep 10 11:56:17 CEST 2008 - xwhu@suse.de
- update to 1.02.27
Align struct memblock in dbg_malloc for sparc.
Add --unquoted and --rows to dmsetup.
Avoid compiler warning about cast in dmsetup.c's OFFSET_OF macro.
Fix inverted no_flush debug message.
Remove --enable-jobs from configure. (Set at runtime instead.)
Bring configure.in and list.h into line with the lvm2 versions.
-------------------------------------------------------------------
Wed Sep 3 11:09:34 CEST 2008 - hare@suse.de
- Call mkinitrd_setup during %post and %postun (bnc#413709)
-------------------------------------------------------------------
Mon Aug 25 12:03:57 CEST 2008 - prusnak@suse.cz
- enabled SELinux support [Fate#303662]
-------------------------------------------------------------------
Fri Aug 22 13:00:15 CEST 2008 - xwhu@suse.de
- Remove the -p option for fillup_and_insserv
-------------------------------------------------------------------
Wed Aug 13 06:26:49 CEST 2008 - xwhu@suse.de
- Add Should-Stop to boot.device-mapper
-------------------------------------------------------------------
Wed Jul 23 15:35:05 CEST 2008 - hare@suse.de
- Include mkinitrd scriptlets.
-------------------------------------------------------------------
Wed Jul 16 19:38:07 CEST 2008 - xwhu@suse.de
- repack device-mapper.1.02.26.tar.bz2 into bzip2.
- change the owner of device to root:disk, with permission
0640 (bnc#407952)
-------------------------------------------------------------------
Tue Jun 24 05:43:08 CEST 2008 - xwhu@suse.de
- update to new version 1.02.26
Initialise params buffer to empty string in _emit_segment.
Skip add_dev_node when ioctls disabled.
Make dm_hash_iter safe against deletion.
Accept a NULL pointer to dm_free silently.
Add tables_loaded, readonly and suspended columns to reports.
Add --nameprefixes to dmsetup.
Add field name prefix option to reporting functions.
Calculate string size within dm_pool_grow_object.
Remove redundant if-before-free tests.
Use log_warn for reporting field help text instead of log_print.
Change cluster mirror log type name (s/clustered_/clustered-/)
-------------------------------------------------------------------
Fri May 30 13:54:02 CEST 2008 - xwhu@suse.de
- Hold on mknod until udev finish it's job.
-------------------------------------------------------------------
Thu Apr 10 12:54:45 CEST 2008 - ro@suse.de
- added baselibs.conf file to build xxbit packages
for multilib support
-------------------------------------------------------------------
Wed Feb 27 13:00:25 CET 2008 - dmueller@suse.de
- fix static library installation again
-------------------------------------------------------------------
Tue Feb 26 21:55:47 CET 2008 - dmueller@suse.de
- fix "binary contains trace of $RPM_BUILD_ROOT" failure
-------------------------------------------------------------------
Thu Feb 7 08:59:16 CET 2008 - hare@suse.de
- Enable dmeventd (FATE#303381)
-------------------------------------------------------------------
Thu Jan 31 11:54:11 CET 2008 - fehr@suse.de
- update to new version 1.02.24
Fix deptree to pass new name to _resume_node after a rename.
Suppress other node operations if node is deleted.
Report error when empty device name passed to readahead functions.
-------------------------------------------------------------------
Mon Dec 10 11:25:40 CET 2007 - fehr@suse.de
- update to new version 1.02.23
Add readahead support to libdevmapper and dmsetup.
Fix double free in a libdevmapper-event error path.
Allow a DM_DEV_DIR environment variable to override /dev.
-------------------------------------------------------------------
Thu Nov 22 14:07:15 CET 2007 - fehr@suse.de
- update to new version 1.02.22
Fix inconsistent licence notices: executables are GPLv2; libraries LGPLv2.1.
Fix dmsetup -o devno string termination.
Fix default dmsetup report buffering and add --unbuffered.
Add tree-based and dependency fields to dmsetup reports.
-------------------------------------------------------------------
Mon May 7 11:46:29 CEST 2007 - kay.sievers@suse.de
- update to new version 1.02.19
Avoid trailing separator in reports when there are hidden sort fields.
Fix segfault in 'dmsetup status' without --showkeys against crypt target.
Migrate dmsetup column-based output over to new libdevmapper report framework.
Add descriptions to reporting field definitions.
Add basic reporting functions to libdevmapper.
- remove dmsetup option patch (upstream provides it)
- add dmsetup export command
-------------------------------------------------------------------
Sun Feb 11 11:58:37 CET 2007 - ro@suse.de
- fix build as non-root
-------------------------------------------------------------------
Tue Jan 16 14:25:01 CET 2007 - fehr@suse.de
- remove superfluouus /lib/libdevmapper.so (#235359)
- add call to ldconfig (#235359)
-------------------------------------------------------------------
Wed Dec 6 09:58:48 CET 2006 - fehr@suse.de
- update to new version 1.02.13
Update dmsetup man page (setgeometry & message).
Fix dmsetup free after getline with debug.
Suppress encryption key in 'dmsetup table' output unless --showkeys supplied.
-------------------------------------------------------------------
Mon Oct 16 13:01:52 CEST 2006 - fehr@suse.de
- update to new version 1.02.12
Avoid deptree attempting to suspend a device that's already suspended.
Add suspend noflush support.
Add basic dmsetup loop support.
Switch dmsetup to use dm_malloc and dm_free.
-------------------------------------------------------------------
Wed Sep 20 13:12:05 CEST 2006 - fehr@suse.de
- update to new version 1.02.10
Add dm_snprintf(), dm_split_words() and dm_split_lvm_name() to libdevmapper.
Reorder mm bounds_check code to reduce window for a dmeventd race.
-------------------------------------------------------------------
Thu Sep 14 13:40:12 CEST 2006 - mkoenig@suse.de
- fixed permissions for static lib
- removed static lib version extension
-------------------------------------------------------------------
Tue Sep 12 16:57:24 CEST 2006 - hvogel@suse.de
- split device-mapper-devel subpackage
- install static libs (needed to link cryptsetup from
util-linux-crypto static)
-------------------------------------------------------------------
Wed Aug 30 14:38:57 CEST 2006 - hare@suse.de
- Fix gcc warnings
- Fix field display for 'dmsetup info'.
-------------------------------------------------------------------
Wed Aug 30 09:10:36 CEST 2006 - hare@suse.de
- Add 'major', 'minor', and 'uuid' as valid fields for
'dmsetup info -o XXX'.
-------------------------------------------------------------------
Wed Aug 16 13:15:28 CEST 2006 - fehr@suse.de
- update to new version 1.02.09
Add --table argument to dmsetup for a one-line table.
Abort if errors are found during cmdline option processing.
Add lockfs indicator to debug output.
-------------------------------------------------------------------
Wed Jul 26 16:28:37 CEST 2006 - fehr@suse.de
- update to new version 1.02.08
Update dmsetup man page.
Add --force to dmsetup remove* to load error target.
dmsetup remove_all also performs mknodes.
Don't suppress identical table reloads if permission changes.
Fix corelog segment line.
-------------------------------------------------------------------
Mon May 22 17:16:40 CEST 2006 - fehr@suse.de
- update to new version 1.02.07
Add DM_CORELOG flag to dm_tree_node_add_mirror_target().
Avoid a dmeventd compiler warning.
- update to new version 1.02.06
Move DEFS into configure.h.
Fix leaks in error paths found by coverity.
Remove dmsetup line buffer limitation.
-------------------------------------------------------------------
Thu Apr 20 12:25:08 CEST 2006 - fehr@suse.de
- update to new version 1.02.05
Separate install_include target in makefiles.
Separate out DEFS from CFLAGS.
Support pkg-config.
Check for libsepol.
-------------------------------------------------------------------
Wed Apr 19 09:41:49 CEST 2006 - fehr@suse.de
- update to new version 1.02.04
Bring dmsetup man page up-to-date.
Use name-based device refs if kernel doesn't support device number refs.
Fix memory leak (struct dm_ioctl) when struct dm_task is reused.
If _create_and_load_v4 fails part way through, revert the creation.
dmeventd thread/fifo fixes.
Add file & line to dm_strdup_aux().
Add setgeometry.
-------------------------------------------------------------------
Tue Mar 14 11:26:03 CET 2006 - fehr@suse.de
- update to new version 1.02.03
Add exported functions to set uid, gid and mode.
Rename _log to dm_log and export.
Add dm_tree_skip_lockfs.
Fix dm_strdup debug definition.
Fix hash function to avoid using a negative array offset.
Don't inline _find in hash.c and tidy signed/unsigned etc.
Fix libdevmapper.h #endif.
Fix dmsetup version driver version.
Add sync, nosync and block_on_error mirror log parameters.
Add hweight32.
Fix dmeventd build.
-------------------------------------------------------------------
Thu Mar 2 08:29:42 CET 2006 - hare@suse.de
- Do not call devmap_mknod.sh (#150818)
-------------------------------------------------------------------
Wed Jan 25 21:35:26 CET 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
--------------------------------------------------------------------
Tue Jan 24 15:28:30 CET 2006 - fehr@suse.de
- fix exit code of "dmsetup version" (#144794)
--------------------------------------------------------------------
Mon Jan 23 11:50:44 CET 2006 - fehr@suse.de
- add boot.udev to Required-Start section of init script (#144586)
--------------------------------------------------------------------
Tue Dec 6 16:10:55 CET 2005 - fehr@suse.de
- update to new version 1.02.02
--------------------------------------------------------------------
Tue Sep 27 09:32:02 CEST 2005 - fehr@suse.de
- update to new version 1.01.05
--------------------------------------------------------------------
Wed Sep 21 14:27:57 CEST 2005 - fehr@suse.de
- increase ioctl buffer size from 16k to 256k to allow larger number
of dm device visible by "dmsetup ls" and "dmsetup table"
-------------------------------------------------------------------
Wed Aug 3 12:00:40 CEST 2005 - fehr@suse.de
- update to new version 1.01.04
-------------------------------------------------------------------
Thu Jun 30 11:25:59 CEST 2005 - meissner@suse.de
- use RPM_OPT_FLAGS.
-------------------------------------------------------------------
Tue Jun 14 10:58:19 CEST 2005 - fehr@suse.de
- update to new version 1.01.03
-------------------------------------------------------------------
Wed May 18 15:02:07 CEST 2005 - fehr@suse.de
- update to new version 1.01.02
-------------------------------------------------------------------
Mon Apr 11 13:08:38 CEST 2005 - fehr@suse.de
- use -py instead of -pY as option for fillup_and_insserv (#76689)
- update to new version 1.01.01
-------------------------------------------------------------------
Tue Jan 18 11:07:41 CET 2005 - fehr@suse.de
- update to new version 1.01.00
-------------------------------------------------------------------
Tue Jan 11 17:39:14 CET 2005 - fehr@suse.de
- update to new version 1.00.21
-------------------------------------------------------------------
Thu Aug 26 11:11:33 CEST 2004 - fehr@suse.de
- /dev/mapper directory is now part of devs.rpm (#44258)
-------------------------------------------------------------------
Wed Jul 14 15:25:00 CEST 2004 - fehr@suse.de
- update to new version 1.00.19
-------------------------------------------------------------------
Thu May 27 16:24:22 CEST 2004 - fehr@suse.de
- do not unload dm modules on shutdown, this hangs on some machines
-------------------------------------------------------------------
Sat Apr 10 17:09:28 CEST 2004 - aj@suse.de
- devicemapper does not need 2.6 kernelsources.
-------------------------------------------------------------------
Thu Apr 1 09:34:25 CEST 2004 - fehr@suse.de
- update to new version 1.00.09
-------------------------------------------------------------------
Tue Mar 16 16:53:11 CET 2004 - fehr@suse.de
- fix typo in start script (#36168)
-------------------------------------------------------------------
Mon Mar 15 14:39:12 CET 2004 - fehr@suse.de
- do not depend on existence of /dev/mapper dir (#35825)
-------------------------------------------------------------------
Tue Mar 2 01:57:20 CET 2004 - ro@suse.de
- remove root-fsck stuff in bootscript
- instead depend on boot.rootfsck
-------------------------------------------------------------------
Fri Dec 5 13:19:50 CET 2003 - fehr@suse.de
- update to new version 1.00.07
-------------------------------------------------------------------
Mon Nov 17 17:27:07 CET 2003 - odabrunz@suse.de
- fix spec file to make it compile with both new and old glibc
(__kernel_dev_t)
-------------------------------------------------------------------
Thu Oct 2 11:55:09 CEST 2003 - fehr@suse.de
- add fix to make it compile with new glibc (use __kernel_old_dev_t)
-------------------------------------------------------------------
Thu Sep 18 13:05:20 CEST 2003 - fehr@suse.de
- fix boot.devicemapper to cope with LABEL= and UUID= in /etc/fstab
also check reiser filesystem (#31060)
-------------------------------------------------------------------
Wed Sep 17 11:57:03 CEST 2003 - fehr@suse.de
- add comment when remounting root fs read-only (#31060)
-------------------------------------------------------------------
Tue Sep 16 13:10:09 CEST 2003 - kukuk@suse.de
- Add missing PreRequires [Bug #31006]
-------------------------------------------------------------------
Tue Sep 2 11:02:52 CEST 2003 - fehr@suse.de
- update to version 1.00.05
-------------------------------------------------------------------
Mon Aug 25 10:24:48 CEST 2003 - fehr@suse.de
- update to version 1.00.04
-------------------------------------------------------------------
Thu Aug 21 12:21:50 CEST 2003 - fehr@suse.de
- update to version 1.00.03
-------------------------------------------------------------------
Mon Aug 18 17:34:00 CEST 2003 - garloff@suse.de
- (#29083) Add # X-UnitedLinux-Should-Start: boot.scsidev
-------------------------------------------------------------------
Fri Jul 25 09:29:48 CEST 2003 - fehr@suse.de
- update to version 1.00.02
-------------------------------------------------------------------
Tue Jul 1 15:55:12 CEST 2003 - fehr@suse.de
- add boot script for automated startup in system
- fix typos in boot script
-------------------------------------------------------------------
Mon Jun 30 17:32:06 CEST 2003 - fehr@suse.de
- created initial version of a SuSE package
-------------------------------------------------------------------

View File

@ -1,147 +0,0 @@
#
# spec file for package device-mapper
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Name: device-mapper
# bug437293
%ifarch ppc64
Obsoletes: device-mapper-64bit
%endif
#
Version: 1.02.63
Release: 0
Summary: Device Mapper Tools
License: GPL-2.0+ ; LGPL-2.1+
Group: System/Base
Source: LVM2.2.02.84.tgz
Source1: boot.device-mapper
Source2: mkinitrd-devmapper-setup.sh
Source3: mkinitrd-devmapper-boot.sh
Source4: baselibs.conf
#Patches for device mapper
Patch60: k_dev_t.dif
Patch61: device-mapper-dmsetup-export.patch
Patch62: device-mapper-gcc-warning.diff
Patch65: device-mapper-dmsetup-deps-export.patch
Patch66: device-mapper-type_punning.diff
Patch67: udev-rules_update.diff
#Patch68: device-mapper-pkgconfig.patch
Patch70: sleep-try-open-count.diff
Patch71: blkid-builtin.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: libselinux-devel
BuildRequires: libudev-devel
PreReq: %insserv_prereq %fillup_prereq
%description
Programs, libraries, and man pages for configuring and using the device
mapper.
%package devel
Summary: Development package for the device mapper
Group: System/Base
Requires: %name = %version
%description devel
Files needed for software development using the device mapper
%prep
%setup -n LVM2.2.02.84
%patch60 -p1
%patch61 -p1
%patch62 -p1
#%patch63 -p1
%patch65 -p1
%patch66 -p0
%patch67 -p1
#%patch68 -p0
%patch70 -p1
#%patch80 -p0
%patch71 -p1
%build
CFLAGS="$RPM_OPT_FLAGS" \
%configure --bindir=/bin --libdir=/%_lib --with-usrlibdir=%_libdir \
--sbindir=/sbin --enable-dmeventd \
--with-udevdir=/lib/udev/rules.d \
--enable-selinux --enable-cmdlib \
--with-dmeventd-path=/sbin/dmeventd \
--with-device-uid=0 --with-device-gid=6 --with-device-mode=0640 \
--enable-udev_sync --enable-udev_rules --enable-compat \
--enable-pkgconfig --enable-realtime
export SUSE_ASNEEDED=0
make -j1 # symlinks are generated in parallel! %{?_smp_mflags}
%install
#%makeinstall
make install_device-mapper DESTDIR=$RPM_BUILD_ROOT
#make libdir=$RPM_BUILD_ROOT/%_libdir install_static_lib
mkdir -p $RPM_BUILD_ROOT/%_libdir
#ln -s /%_lib/libdevmapper.so.1.02 $RPM_BUILD_ROOT/%_libdir/libdevmapper.so
#ln -s /%_lib/libdevmapper-event.so.1.02 $RPM_BUILD_ROOT/%_libdir/libdevmapper-event.so
#rm $RPM_BUILD_ROOT/%_lib/libdevmapper.so
#rm $RPM_BUILD_ROOT/%_lib/libdevmapper-event.so
#install -m 744 scripts/devmap_mknod.sh $RPM_BUILD_ROOT/sbin/
mkdir -p $RPM_BUILD_ROOT/etc/init.d
install -m 744 %{SOURCE1} $RPM_BUILD_ROOT/etc/init.d
install -d $RPM_BUILD_ROOT/lib/mkinitrd/scripts
install -m 755 %{SOURCE2} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/setup-dm.sh
install -m 755 %{SOURCE3} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-dm.sh
%post
%{run_ldconfig}
[ -x /sbin/mkinitrd_setup ] && mkinitrd_setup
%{insserv_cleanup}
%postun
%{run_ldconfig}
[ -x /sbin/mkinitrd_setup ] && mkinitrd_setup
%{insserv_cleanup}
%files
%defattr(-,root,root)
%doc INSTALL COPYING COPYING.LIB README VERSION_DM WHATS_NEW_DM
%config /etc/init.d/boot.device-mapper
/%_lib/libdevmapper.so.1.02
/%_lib/libdevmapper-event.so.1.02
%dir /lib/udev/rules.d
%dir /lib/udev
/lib/udev/rules.d/10-dm.rules
#/lib/udev/rules.d/12-dm-permissions.rules
/lib/udev/rules.d/13-dm-disk.rules
/lib/udev/rules.d/95-dm-notify.rules
/sbin/dmsetup
/sbin/dmeventd
#/sbin/devmap_mknod.sh
%{_mandir}/man8/dmsetup.8.gz
%{_mandir}/man8/dmeventd.8.gz
%dir /lib/mkinitrd
%dir /lib/mkinitrd/scripts
/lib/mkinitrd/scripts/setup-dm.sh
/lib/mkinitrd/scripts/boot-dm.sh
%files devel
%defattr(-,root,root)
/%_libdir/libdevmapper.so
/%_libdir/libdevmapper-event.so
/%_libdir/pkgconfig/*.pc
#%attr(644, root, root) %_libdir/libdevmapper.a
/usr/include/libdevmapper.h
/usr/include/libdevmapper-event.h
%changelog

View File

@ -1,8 +1,10 @@
Index: LVM2.2.02.58/lib/device/dev-cache.c
===================================================================
--- LVM2.2.02.58.orig/lib/device/dev-cache.c 2009-07-16 04:02:46.000000000 +0800
+++ LVM2.2.02.58/lib/device/dev-cache.c 2010-02-04 15:32:59.000000000 +0800
@@ -358,7 +358,11 @@
---
lib/device/dev-cache.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
--- LVM2.2.02.98.orig/lib/device/dev-cache.c
+++ LVM2.2.02.98/lib/device/dev-cache.c
@@ -434,7 +434,11 @@ static int _insert_dir(const char *dir)
dirent_count = scandir(dir, &dirent, NULL, alphasort);
if (dirent_count > 0) {
for (n = 0; n < dirent_count; n++) {

View File

@ -1,14 +1,16 @@
Index: LVM2.2.02.45/lib/filters/filter.c
===================================================================
--- LVM2.2.02.45.orig/lib/filters/filter.c
+++ LVM2.2.02.45/lib/filters/filter.c
@@ -179,6 +179,10 @@ static int _scan_proc_dev(const char *pr
---
lib/filters/filter.c | 4 ++++
1 file changed, 4 insertions(+)
--- LVM2.2.02.98.orig/lib/filters/filter.c
+++ LVM2.2.02.98/lib/filters/filter.c
@@ -180,6 +180,10 @@ static int _scan_proc_dev(const char *pr
/* All types unrecognised initially */
memset(_max_partitions_by_major, 0, sizeof(int) * NUMBER_OF_MAJORS);
memset(_partitions, 0, sizeof(_partitions));
+ /* Extended devt will use MAJOR 259
+ Consider it an non-partitionable block device */
+ _max_partitions_by_major[259] = 1;
+ _partitions[259].max_partitions = 1;
+
if (dm_snprintf(proc_devices, sizeof(proc_devices),
"%s/devices", proc) < 0) {

View File

@ -1,7 +1,9 @@
Index: lib/filters/filter.c
===================================================================
--- lib/filters/filter.c.orig 2011-01-27 08:21:37.000000000 +0800
+++ lib/filters/filter.c 2011-02-15 14:56:43.000000000 +0800
---
lib/filters/filter.c | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
--- LVM2.2.02.98.orig/lib/filters/filter.c
+++ LVM2.2.02.98/lib/filters/filter.c
@@ -13,6 +13,12 @@
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
@ -15,16 +17,16 @@ Index: lib/filters/filter.c
#include "lib.h"
#include "dev-cache.h"
#include "filter.h"
@@ -147,11 +153,18 @@
@@ -111,11 +117,18 @@ static int _passes_lvm_type_device_filte
}
/* Check it's accessible */
- if (!dev_open_flags(dev, O_RDONLY, 1, 1)) {
- if (!dev_open_readonly_quiet(dev)) {
+ if (!dev_open_flags(dev, O_RDONLY|O_NONBLOCK, 1, 1)) {
log_debug("%s: Skipping: open failed", name);
return 0;
}
+ /* Skip cdrom device */
+ #define CDROM_GET_CAPABILITY 0x5331
+ if (ioctl(dev->fd, CDROM_GET_CAPABILITY) >= 0) {

View File

@ -1,22 +0,0 @@
Index: LVM2.2.02.45/libdm/ioctl/libdm-compat.h
===================================================================
--- LVM2.2.02.45.orig/libdm/ioctl/libdm-compat.h 2008-11-01 10:19:18.000000000 +0800
+++ LVM2.2.02.45/libdm/ioctl/libdm-compat.h 2009-04-27 17:43:08.000000000 +0800
@@ -40,7 +40,7 @@
int32_t open_count; /* out */
uint32_t flags; /* in/out */
- __kernel_dev_t dev; /* in/out */
+ __kernel_old_dev_t dev; /* in/out */
char name[DM_NAME_LEN]; /* device name */
char uuid[DM_UUID_LEN]; /* unique identifier for
@@ -60,7 +60,7 @@
struct dm_target_deps_v1 {
uint32_t count;
- __kernel_dev_t dev[0]; /* out */
+ __kernel_old_dev_t dev[0]; /* out */
};
enum {

View File

@ -1,261 +0,0 @@
Index: LVM2.2.02.67/tools/pvremove.c
===================================================================
--- LVM2.2.02.67.orig/tools/pvremove.c 2009-12-03 20:18:34.000000000 +0100
+++ LVM2.2.02.67/tools/pvremove.c 2010-09-09 13:51:21.370385527 +0200
@@ -18,6 +18,30 @@
const char _really_wipe[] =
"Really WIPE LABELS from physical volume \"%s\" of volume group \"%s\" [y/n]? ";
+static const char* pv_remove_symlink(struct cmd_context* cmd, const char* name)
+{
+ struct physical_volume *pv;
+ char *pvuuid;
+ char pvuuid_link[70];
+
+ if (!(pv = pv_read(cmd, name, NULL, NULL, 0, 0))) {
+ return NULL;
+ }
+
+ pvuuid = malloc(sizeof(char)*40);
+ if (pvuuid == NULL) {
+ return NULL;
+ }
+
+ id_write_format(&pv->id, pvuuid, 40);
+
+ snprintf(pvuuid_link, 70, "/dev/disk/by-id/lvm2-pvuuid-%s", pvuuid);
+ unlink(pvuuid_link); //we really don't care if it successed or not.
+
+ free(pvuuid);
+ return pvuuid;
+}
+
/*
* Decide whether it is "safe" to wipe the labels on this device.
* 0 indicates we may not.
@@ -125,6 +149,8 @@ static int pvremove_single(struct cmd_co
log_print("Labels on physical volume \"%s\" successfully wiped",
pv_name);
+ pv_remove_symlink(cmd, pv_name);
+
ret = ECMD_PROCESSED;
error:
Index: LVM2.2.02.67/tools/pvchange.c
===================================================================
--- LVM2.2.02.67.orig/tools/pvchange.c 2010-05-19 17:34:10.000000000 +0200
+++ LVM2.2.02.67/tools/pvchange.c 2010-09-09 13:51:21.370385527 +0200
@@ -15,6 +15,90 @@
#include "tools.h"
+static const char* pv_follow_if_link (const char* path)
+{
+ int r;
+ int len = 60;
+ char *fpath = NULL;
+ char *npath = NULL;
+ struct stat st;
+
+ r = lstat(path, &st);
+ if (r == -1) return NULL; //shouldn't happen
+
+ if (S_ISLNK(st.st_mode)) {
+ while (1) {
+ npath = realloc(fpath, sizeof(char)*len);
+ if (npath == NULL) {
+ if (fpath != NULL) free(fpath);
+ return NULL;
+ }
+ fpath = npath;
+
+ memset(fpath, 0, sizeof(char)*len);
+ r = readlink(path, fpath, len);
+ if (r != -1 && fpath[len-1] == 0) break;
+ if (r == -1) {
+ free(fpath);
+ return NULL;
+ } else {
+ len = len * 2;
+ }
+ }
+ }
+ else {
+ fpath = strdup(path);
+ }
+ return fpath;
+}
+
+static const char* pv_symlink_handle(struct cmd_context* cmd, const char* name, int create)
+{
+ struct physical_volume *pv;
+ char *pvuuid;
+ char *pvuuid_link;
+
+ pvuuid_link = malloc(70);
+ if (pvuuid_link == NULL) return NULL;
+
+
+ if (!(pv = pv_read(cmd, name, NULL, NULL, 0, 0))) {
+ free(pvuuid_link);
+ return NULL;
+ }
+
+ pvuuid = malloc(sizeof(char)*40);
+ if (pvuuid == NULL) {
+ free(pvuuid_link);
+ return NULL;
+ }
+
+ id_write_format(&pv->id, pvuuid, 40);
+
+ snprintf(pvuuid_link, 70, "/dev/disk/by-id/lvm2-pvuuid-%s", pvuuid);
+
+ //we really don't care if it successed or not.
+ if (create) {
+ const char* tname = NULL;
+ int r;
+ tname = pv_follow_if_link(name);
+ if (tname != NULL) {
+ r = symlink(tname, pvuuid_link);
+ free(tname);
+ }
+ else {
+ symlink(name, pvuuid_link);
+ }
+ } else {
+ //pvuuid_link is saved for future unlink
+ //unlink(pvuuid_link);
+ }
+
+ free(pvuuid);
+ return pvuuid_link;
+}
+
+
/* FIXME Locking. PVs in VG. */
static int _pvchange_single(struct cmd_context *cmd, struct volume_group *vg,
Index: LVM2.2.02.67/lib/metadata/metadata.c
===================================================================
--- LVM2.2.02.67.orig/lib/metadata/metadata.c 2010-05-24 17:32:20.000000000 +0200
+++ LVM2.2.02.67/lib/metadata/metadata.c 2010-09-09 13:52:19.866385579 +0200
@@ -1424,6 +1424,88 @@ void pvcreate_params_set_defaults(struct
pp->yes = 0;
}
+static const char* pv_follow_if_link (const char* path)
+{
+ int r;
+ int len = 60;
+ char *fpath = NULL;
+ char *npath = NULL;
+ struct stat st;
+
+ r = lstat(path, &st);
+ if (r == -1) return NULL; //shouldn't happen
+
+ if (S_ISLNK(st.st_mode)) {
+ while (1) {
+ npath = realloc(fpath, sizeof(char)*len);
+ if (npath == NULL) {
+ if (fpath != NULL) free(fpath);
+ return NULL;
+ }
+ fpath = npath;
+
+ memset(fpath, 0, sizeof(char)*len);
+ r = readlink(path, fpath, len);
+ if (r != -1 && fpath[len-1] == 0) break;
+ if (r == -1) {
+ free(fpath);
+ return NULL;
+ } else {
+ len = len * 2;
+ }
+ }
+ } else {
+ fpath = strdup(path);
+ }
+ return fpath;
+}
+
+
+static const char* pv_symlink_handle(struct cmd_context* cmd, const char* name, int create)
+{
+ struct physical_volume *pv;
+ char *pvuuid;
+ char *pvuuid_link;
+
+ pvuuid_link = malloc(70);
+ if (pvuuid_link == NULL) return NULL;
+
+ if (!(pv = pv_read(cmd, name, NULL, NULL, 0, 0))) {
+ free(pvuuid_link);
+ return NULL;
+ }
+
+ pvuuid = malloc(sizeof(char)*40);
+ if (pvuuid == NULL) {
+ free(pvuuid_link);
+ return NULL;
+ }
+
+ id_write_format(&pv->id, pvuuid, 40);
+ snprintf(pvuuid_link, 70, "/dev/disk/by-id/lvm2-pvuuid-%s", pvuuid);
+
+ //we really don't care if it successed or not.
+ if (create) {
+ const char* tname = NULL;
+ int r;
+ tname = pv_follow_if_link(name);
+ if (tname != NULL) {
+ r = symlink(tname, pvuuid_link);
+ free(tname);
+ } else {
+ symlink(name, pvuuid_link);
+ }
+ } else {
+ //pvuuid_link is saved for future unlink
+ //unlink(pvuuid_link);
+ }
+
+ free(pvuuid);
+ return pvuuid_link;
+}
+
+
+
/*
* pvcreate_single() - initialize a device with PV label and metadata area
*
@@ -1444,6 +1526,7 @@ struct physical_volume * pvcreate_single
struct dm_list mdas;
struct pvcreate_params default_pp;
char buffer[64] __attribute((aligned(8)));
+ const char *oldsymlink;
pvcreate_params_set_defaults(&default_pp);
if (!pp)
@@ -1509,11 +1592,20 @@ struct physical_volume * pvcreate_single
log_very_verbose("Writing physical volume data to disk \"%s\"",
pv_name);
+ oldsymlink = pv_symlink_handle(cmd, pv_name, 0);
+
if (!(pv_write(cmd, pv, &mdas, pp->labelsector))) {
log_error("Failed to write physical volume \"%s\"", pv_name);
+ if (oldsymlink) free(oldsymlink);
goto error;
}
+ pv_symlink_handle(cmd, pv_name, 1);
+ if (oldsymlink) {
+ unlink(oldsymlink);
+ free(oldsymlink);
+ }
+
log_print("Physical volume \"%s\" successfully created", pv_name);
return pv;

View File

@ -1,101 +0,0 @@
-------------------------------------------------------------------
Thu Sep 27 01:12:17 UTC 2012 - nfbrown@suse.com
- lvm2-clvm.spec: make sure MODPROBE_CMD is set properly
when configure is run. Without it, modules are
not auto-loaded. Also fix problem with LDFLAGS (bnc#779965)
-------------------------------------------------------------------
Sun Sep 18 17:17:12 UTC 2011 - jengelh@medozas.de
- Remove redundant tags/sections from specfile
(cf. packaging guidelines)
- Use %_smp_mflags for parallel build
-------------------------------------------------------------------
Tue Feb 22 07:32:46 UTC 2011 - xwhu@novell.com
- Re-enable clvmd build
- Cleanup unused patches
- Build against corosync instead of openais
-------------------------------------------------------------------
Sun Oct 31 12:37:02 UTC 2010 - jengelh@medozas.de
- Use %_smp_mflags
-------------------------------------------------------------------
Thu Sep 9 12:17:25 UTC 2010 - coolo@novell.com
- massive rebase of the patches
-------------------------------------------------------------------
Mon Apr 26 16:51:35 CEST 2010 - ro@suse.de
- fix lvm2-clvm specfile so that patches apply
-------------------------------------------------------------------
Sat Apr 3 03:17:12 UTC 2010 - xwhu@novell.com
- Upgrade to LVM2 2.02.58
- Rename liblvm.so to liblvm2app.so
- Introduce lvconvert --use_policies
- Add readonly locking type to replace implementation of
--ignorelockingfailure
- Add liblvm APIs to implement creation and deletion of VGs
- Add activation/udev_sync to lvm.conf
- Enable dmeventd monitoring section of config file by default
- Add --pvmetadatacopies for pvcreate, vgcreate, vgextend,
vgconvert.
-------------------------------------------------------------------
Sun Nov 15 10:41:04 CET 2009 - meissner@suse.de
- refreshed patches to avoid fuzz-0
-------------------------------------------------------------------
Mon Apr 27 18:37:32 CST 2009 - xwhu@suse.de
- Upgrade to LVM2 2.02.45
Avoid scanning empty metadata areas for VG names
Pass --test from lvresize to fsadm as --dry-run.
Remove duplicate cpg_initialize from clvmd startup.
Add option to /etc/sysconfig/cluster to select cluster type for clvmd.
Remove external dependency on the 'cut' command from fsadm.
Fix pvs segfault when pv mda attributes requested for not available PV.
Fix lvresize size conversion for fsadm when block size is not 1K.
Add pv_mda_size to pvs and vg_mda_size to vgs.
Add "--refresh" functionality to vgchange and vgmknodes.
Fix vgrename using UUID if there are VGs with identical names.
Fix segfault when invalid field given in reporting commands.
Merge device-mapper into the lvm2 tree.
Exit with non-zero status from vgdisplay if couldn't show any requested VG.
Fix snapshot monitoring library to not cancel monitoring invalid snapshot.
Fix conversion of md chunk size into sectors.
Fix misleading error message when there are no allocatable extents in VG.
Fix handling of PVs which reappeared with old metadata version.
Fix mirror DSO to call vgreduce with proper parameters.
Fix validation of --minor and --major in lvcreate to require -My always.
Fix release: clvmd build, vgreduce consolidate & tests, /dev/ioerror warning.
-------------------------------------------------------------------
Tue Apr 1 01:10:00 CST 2009 - lmb@suse.de
- clvmd: Ensure that the lockspace is released locally even we were the
lock master, avoiding an unclean shutdown (bnc#490415).
-------------------------------------------------------------------
Tue Mar 31 19:16:18 CST 2009 - xwhu@suse.de
- Call cpg_leave before shutting down clvmd
-------------------------------------------------------------------
Wed Mar 25 23:14:29 CST 2009 - xwhu@suse.de
- Do not filter out tmp device file(bnc#485572)
-------------------------------------------------------------------
Wed Mar 25 22:50:50 CST 2009 - xwhu@suse.de
- Newly splitted off from lvm2, as a independent package now

View File

@ -1,116 +0,0 @@
#
# spec file for package lvm2-clvm
#
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
Url: http://sources.redhat.com/cluster/clvm/
Name: lvm2-clvm
BuildRequires: device-mapper-devel
BuildRequires: libcorosync-devel
BuildRequires: libdlm-devel
BuildRequires: libopenais-devel
BuildRequires: libselinux-devel
BuildRequires: readline-devel
Version: 2.02.84
Release: 0
Requires: device-mapper >= 1.02.25
Requires: lvm2 = %{version}
Requires: openais
Provides: clvm
PreReq: %fillup_prereq %insserv_prereq
Summary: Clustered LVM2
License: GPL-2.0+ ; LGPL-2.1+
Group: System/Base
Source: LVM2.%{version}.tgz
Source1: lvm.conf
Source2: boot.lvm
Source3: sysconfig.lvm
Source4: mkinitrd-lvm2-setup.sh
Source5: mkinitrd-lvm2-boot.sh
Source6: 64-lvm2.rules
Source7: collect_lvm
Source8: clvmd.ocf
Patch: improve_probing.diff
Patch2: no-inc-audit.diff
Patch3: no_buildroot_shared.diff
Patch4: sys_mount_instead_linux_fs.diff
Patch6: man_page_sectors.diff
Patch11: cmdline_large_minor.diff
Patch13: pipe_buff-definition.diff
Patch14: lvm-pv-create-link.diff
Patch19: dont_ignore_tmp_device_file.diff
Patch20: support-drbd-filter.diff
Patch22: handle_extended_devt.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
A daemon for using LVM2 Logival Volumes in a clustered environment.
%prep
%setup -n LVM2.%{version}
%patch
%patch2
%patch3
%patch4
%patch6
%patch11
%patch13
#%patch14 -p1
%patch19 -p1
%patch20 -p1
%patch22 -p1
%build
export MODPROBE_CMD=/sbin/modprobe
export LDFLAGS="-L /usr/%_lib/openais"
%configure --prefix=/ \
--enable-selinux \
--enable-cmdlib \
--libdir=/%_lib --with-usrlibdir=%_libdir --enable-dmeventd --enable-cmdlib \
--with-clvmd=corosync --datarootdir=/usr/share
make %{?_smp_mflags}
%install
pushd daemons/clvmd
make install DESTDIR=$RPM_BUILD_ROOT
popd
pushd man
make install DESTDIR=$RPM_BUILD_ROOT
popd
install -D -m 755 $RPM_BUILD_ROOT/sbin/clvmd $RPM_BUILD_ROOT/usr/sbin/clvmd
rm $RPM_BUILD_ROOT/sbin/clvmd
rm -rf $RPM_BUILD_ROOT/%{_mandir}/man5
rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/lv*
rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/pv*
rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/vg*
rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/dmsetup*
rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/fsadm*
rm -f $RPM_BUILD_ROOT/%{_mandir}/man8/dmeventd*
install -m755 -D %{S:8} $RPM_BUILD_ROOT/usr/lib/ocf/resource.d/lvm2/clvmd
%files
%defattr(-,root,root)
/usr/sbin/clvmd
%dir /usr/lib/ocf
%dir /usr/lib/ocf/resource.d
%dir /usr/lib/ocf/resource.d/lvm2
/usr/lib/ocf/resource.d/lvm2/clvmd
%{_mandir}/man8/clvmd.8.gz
%changelog

View File

@ -1,3 +1,24 @@
-------------------------------------------------------------------
Wed Oct 17 23:01:54 UTC 2012 - nfbrown@suse.com
- lvm2.spec: merge rules for device-mapper and
lvm2-clvm packages, so there is only one
spec file and all packages are built consistently.
-------------------------------------------------------------------
Tue Oct 16 09:34:40 UTC 2012 - coolo@suse.com
- build against the minimal udev to avoid cycles
- the sysvinit requires are no longer necessary
-------------------------------------------------------------------
Tue Oct 16 04:19:59 UTC 2012 - nfbrown@suse.com
- Upgrade to LVM2-2-02-98. Improvements include
improved interaction with udev and systemd,
improved dmraid support, and new command
"blkdeactivate".
-------------------------------------------------------------------
Thu Sep 27 01:11:17 UTC 2012 - nfbrown@suse.com

181
lvm2.spec
View File

@ -19,19 +19,19 @@
Url: http://sources.redhat.com/cluster/clvm/
Name: lvm2
BuildRequires: libcorosync-devel
BuildRequires: libdlm-devel
BuildRequires: libopenais-devel
BuildRequires: libselinux-devel
BuildRequires: libudev-devel
BuildRequires: readline-devel
BuildRequires: pkgconfig(udev)
Requires: device-mapper >= 1.02.25
Provides: lvm
PreReq: %fillup_prereq %insserv_prereq /sbin/mkinitrd
%if %suse_version > 1130
PreReq: sysvinit(boot.device-mapper)
%endif
Version: 2.02.84
Version: 2.02.98
Release: 0
Summary: LVM2 Tools
License: GPL-2.0+ ; LGPL-2.1+
Summary: Logical Volume Manager Tools
License: GPL-2.0+ and LGPL-2.1+
Group: System/Base
Source: LVM2.%{version}.tgz
Source1: lvm.conf
@ -42,23 +42,25 @@ Source5: mkinitrd-lvm2-boot.sh
Source6: 64-lvm2.rules
Source7: collect_lvm
Source8: clvmd.ocf
Source11: boot.device-mapper
Source12: mkinitrd-devmapper-setup.sh
Source13: mkinitrd-devmapper-boot.sh
Source14: baselibs.conf
Patch: improve_probing.diff
Patch2: no-inc-audit.diff
Patch3: no_buildroot_shared.diff
Patch4: sys_mount_instead_linux_fs.diff
#Patch5: pvscan_2TB_limit.diff
Patch6: man_page_sectors.diff
Patch11: cmdline_large_minor.diff
Patch13: pipe_buff-definition.diff
Patch14: lvm-pv-create-link.diff
Patch19: dont_ignore_tmp_device_file.diff
Patch20: support-drbd-filter.diff
Patch22: handle_extended_devt.diff
#Patch23: lvm2cmd-link-to-devmapper-event.diff
#Patches for device mapper
Patch60: k_dev_t.dif
Patch61: device-mapper-dmsetup-export.patch
Patch62: device-mapper-gcc-warning.diff
Patch65: device-mapper-dmsetup-deps-export.patch
Patch66: device-mapper-type_punning.diff
Patch70: sleep-try-open-count.diff
Patch81: udev-rules_update.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
@ -80,70 +82,70 @@ Volume Manager.
%prep
%setup -n LVM2.%{version}
%patch
%patch -p1
%patch2
%patch3
%patch4
#%patch5
%patch6
%patch11
%patch13
#%patch14 -p1
%patch6 -p1
%patch13 -p1
%patch19 -p1
%patch20 -p1
%patch22 -p1
#%patch23 -p1
# patch to device-mapper
%patch60 -p1
%patch61 -p1
%patch62 -p1
#%patch63 -p1
%patch65 -p1
#%patch80 -p0
%patch66 -p1
%patch70 -p1
%patch81 -p1
%build
export MODPROBE_CMD=/sbin/modprobe
%configure --prefix=/ \
--bindir=/bin --libdir=/%_lib --with-userlibdir=%_libdir \
--bindir=/bin --libdir=/%_lib --with-usrlibdir=%_libdir \
--sbindir=/sbin --enable-dmeventd \
--with-udevdir=/lib/udev/rules.d \
--with-dmeventd_path=/sbin/dmeventd \
--enable-udev_sync --enable-udev_rules --enable-compat \
--with-device-uid=0 --with-device-gid=6 --with-device-mode=0640 \
--enable-udev_sync --enable-udev_rules \
--enable-cmdlib --enable-dmeventd \
--enable-realtime --enable-pkgconfig
--enable-realtime --enable-pkgconfig \
--enable-selinux \
--with-clvmd=corosync --datarootdir=/usr/share
export SUSE_ASNEEDED=0
make %{?_smp_mflags}
make -j1 # symlinks are generated in parallel! %{?_smp_mflags}
%install
make install_lvm2 DESTDIR=$RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT
install -d -m 755 $RPM_BUILD_ROOT/etc/lvm
install -d -m 755 $RPM_BUILD_ROOT/etc/lvm/backup
install -d -m 755 $RPM_BUILD_ROOT/etc/lvm/archive
install -d -m 755 $RPM_BUILD_ROOT/etc/lvm/metadata
install -d -m 755 $RPM_BUILD_ROOT/var/lock/lvm
install -m 644 %{SOURCE1} $RPM_BUILD_ROOT/etc/lvm
mkdir -p $RPM_BUILD_ROOT/etc/init.d
install -m 755 %{SOURCE2} $RPM_BUILD_ROOT/etc/init.d
install -m 744 %{SOURCE11} $RPM_BUILD_ROOT/etc/init.d
install -d $RPM_BUILD_ROOT/lib/mkinitrd/scripts
install -m 755 %{SOURCE4} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/setup-lvm2.sh
install -m 755 %{SOURCE5} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-lvm2.sh
install -m 755 %{SOURCE12} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/setup-dm.sh
install -m 755 %{SOURCE13} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-dm.sh
mkdir -p $RPM_BUILD_ROOT/var/adm/fillup-templates
install -m 644 %{SOURCE3} $RPM_BUILD_ROOT/var/adm/fillup-templates
[ %_lib != lib ] && mv $RPM_BUILD_ROOT/lib/liblvm2cmd.so $RPM_BUILD_ROOT/%_lib/liblvm2cmd.so
[ %_lib != lib ] && mv $RPM_BUILD_ROOT/lib/libdevmapper-event-lvm2.so $RPM_BUILD_ROOT/%_lib/libdevmapper-event-lvm2.so
install -m755 -D %{S:8} $RPM_BUILD_ROOT/usr/lib/ocf/resource.d/lvm2/clvmd
rm -f $RPM_BUILD_ROOT/%_libdir/liblvm2cmd.so
ln -sf liblvm2cmd.so.2.02 $RPM_BUILD_ROOT/%_lib/liblvm2cmd.so
rm -f $RPM_BUILD_ROOT/%_libdir/libdevmapper-event-lvm2.so
ln -sf libdevmapper-event-lvm2.so.2.02 $RPM_BUILD_ROOT/%_lib/libdevmapper-event-lvm2.so
pushd $RPM_BUILD_ROOT/%_lib
ln -sf device-mapper/libdevmapper-event-lvm2mirror.so libdevmapper-event-lvm2mirror.so.2.02
ln -sf device-mapper/libdevmapper-event-lvm2snapshot.so libdevmapper-event-lvm2snapshot.so.2.02
ln -sf device-mapper/libdevmapper-event-lvm2raid.so libdevmapper-event-lvm2raid.so.2.02
popd
install -d $RPM_BUILD_ROOT/usr/sbin
mv $RPM_BUILD_ROOT/sbin/clvmd $RPM_BUILD_ROOT/usr/sbin/clvmd
mkdir -p $RPM_BUILD_ROOT/usr/share
mv $RPM_BUILD_ROOT/share/man $RPM_BUILD_ROOT/%{_mandir}
rmdir $RPM_BUILD_ROOT/share
rm $RPM_BUILD_ROOT/usr/include/lvm2cmd.h
# install 64-lvm2.rules and collect_lvm
#install -m644 -D %{S:6} $RPM_BUILD_ROOT/lib/udev/rules.d/64-lvm2.rules
# install and collect_lvm
install -m755 -D %{S:7} $RPM_BUILD_ROOT/lib/udev/collect_lvm
# remove all device mapper files
rm $RPM_BUILD_ROOT/%{_mandir}/man8/fsadm.*
%post
%{fillup_and_insserv -n lvm boot.lvm}
@ -174,12 +176,11 @@ fi
%files
%defattr(-,root,root)
%doc INSTALL README WHATS_NEW doc/*
%doc README WHATS_NEW doc/*
%dir /etc/lvm
%dir /etc/lvm/backup
%dir /etc/lvm/archive
%dir /etc/lvm/metadata
%dir /var/lock/lvm
%config /etc/lvm/lvm.conf
%config /etc/init.d/boot.lvm
%dir /lib/mkinitrd
@ -192,6 +193,7 @@ fi
/lib/mkinitrd/scripts/setup-lvm2.sh
/lib/mkinitrd/scripts/boot-lvm2.sh
/var/adm/fillup-templates/sysconfig.lvm
/sbin/blkdeactivate
/sbin/fsadm
/sbin/lvchange
/sbin/lvconvert
@ -242,15 +244,20 @@ fi
%dir /%_lib/device-mapper
/%_lib/device-mapper/libdevmapper-event-lvm2mirror.so
/%_lib/device-mapper/libdevmapper-event-lvm2snapshot.so
/%_lib/device-mapper/libdevmapper-event-lvm2raid.so
/%_lib/libdevmapper-event-lvm2mirror.so
/%_lib/libdevmapper-event-lvm2snapshot.so
/%_lib/libdevmapper-event-lvm2raid.so
/%_lib/liblvm2cmd.so
/%_lib/libdevmapper-event-lvm2mirror.so.2.02
/%_lib/libdevmapper-event-lvm2snapshot.so.2.02
/%_lib/libdevmapper-event-lvm2raid.so.2.02
/%_lib/liblvm2cmd.so.2.02
/%_lib/libdevmapper-event-lvm2.so
/%_lib/libdevmapper-event-lvm2.so.2.02
%{_mandir}/man5/lvm.conf.5.gz
%{_mandir}/man8/blkdeactivate.8.gz
%{_mandir}/man8/fsadm.8.gz
%{_mandir}/man8/lvchange.8.gz
%{_mandir}/man8/lvcreate.8.gz
%{_mandir}/man8/lvconvert.8.gz
@ -298,4 +305,94 @@ fi
%{_mandir}/man8/lvmsadc.8.gz
%{_mandir}/man8/lvmsar.8.gz
%package -n device-mapper
# bug437293
%ifarch ppc64
Obsoletes: device-mapper-64bit
%endif
#
Version: 1.02.77
Release: 0
Url: ftp://sources.redhat.com/pub/lvm2/
Summary: Device Mapper Tools
Group: System/Base
%description -n device-mapper
Programs, libraries, and man pages for configuring and using the device
mapper.
%post -n device-mapper
%{run_ldconfig}
[ -x /sbin/mkinitrd_setup ] && mkinitrd_setup
%{insserv_cleanup}
%postun -n device-mapper
%{run_ldconfig}
[ -x /sbin/mkinitrd_setup ] && mkinitrd_setup
%{insserv_cleanup}
%files -n device-mapper
%defattr(-,root,root)
%doc COPYING COPYING.LIB README VERSION_DM WHATS_NEW_DM
%config /etc/init.d/boot.device-mapper
/%_lib/libdevmapper.so.1.02
/%_lib/libdevmapper-event.so.1.02
%dir /lib/udev/rules.d
%dir /lib/udev
/lib/udev/rules.d/10-dm.rules
#/lib/udev/rules.d/12-dm-permissions.rules
/lib/udev/rules.d/13-dm-disk.rules
/lib/udev/rules.d/95-dm-notify.rules
/sbin/dmsetup
/sbin/dmeventd
%{_mandir}/man8/dmsetup.8.gz
%{_mandir}/man8/dmeventd.8.gz
%dir /lib/mkinitrd
%dir /lib/mkinitrd/scripts
/lib/mkinitrd/scripts/setup-dm.sh
/lib/mkinitrd/scripts/boot-dm.sh
%package -n device-mapper-devel
Version: 1.02.77
Release: 0
Summary: Development package for the device mapper
Group: System/Base
Requires: device-mapper = 1.02.77
%description -n device-mapper-devel
Files needed for software development using the device mapper
%files -n device-mapper-devel
%defattr(-,root,root)
/%_libdir/libdevmapper.so
/%_libdir/libdevmapper-event.so
/%_libdir/pkgconfig/*.pc
/usr/include/libdevmapper.h
/usr/include/libdevmapper-event.h
%package clvm
Url: http://sources.redhat.com/cluster/clvm/
Version: 2.02.98
Release: 0
Requires: device-mapper >= 1.02.25
Requires: lvm2 = %{version}
Requires: openais
Provides: clvm
Summary: Clustered LVM2
Group: System/Base
%description clvm
A daemon for using LVM2 Logival Volumes in a clustered environment.
%files clvm
%defattr(-,root,root)
/usr/sbin/clvmd
%dir /usr/lib/ocf
%dir /usr/lib/ocf/resource.d
%dir /usr/lib/ocf/resource.d/lvm2
/usr/lib/ocf/resource.d/lvm2/clvmd
%{_mandir}/man8/clvmd.8.gz
%changelog

View File

@ -1,8 +1,10 @@
Index: man/pvdisplay.8.in
===================================================================
--- man/pvdisplay.8.in.orig 2009-10-26 22:37:09.000000000 +0800
+++ man/pvdisplay.8.in 2010-02-04 11:00:40.000000000 +0800
@@ -51,7 +51,7 @@
---
man/pvdisplay.8.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- LVM2.2.02.98.orig/man/pvdisplay.8.in
+++ LVM2.2.02.98/man/pvdisplay.8.in
@@ -64,7 +64,7 @@ The values are:
* physical volume device name
* volume group name

View File

@ -1,8 +1,10 @@
Index: daemons/clvmd/clvmd.c
===================================================================
--- daemons/clvmd/clvmd.c.orig
+++ daemons/clvmd/clvmd.c
@@ -65,6 +65,8 @@
---
daemons/clvmd/clvmd.c | 2 ++
1 file changed, 2 insertions(+)
--- LVM2.2.02.98.orig/daemons/clvmd/clvmd.c
+++ LVM2.2.02.98/daemons/clvmd/clvmd.c
@@ -53,6 +53,8 @@
#define ISLOCAL_CSID(c) (memcmp(c, our_csid, max_csid_len) == 0)

View File

@ -1,9 +1,19 @@
Index: LVM2.2.02.67/libdm/libdm-deptree.c
===================================================================
--- LVM2.2.02.67.orig/libdm/libdm-deptree.c
+++ LVM2.2.02.67/libdm/libdm-deptree.c
@@ -1143,6 +1143,19 @@ static int _dm_tree_deactivate_children(
(child->presuspend_node &&
---
libdm/libdm-deptree.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
--- LVM2.2.02.98.orig/libdm/libdm-deptree.c
+++ LVM2.2.02.98/libdm/libdm-deptree.c
@@ -20,6 +20,7 @@
#include <stdarg.h>
#include <sys/param.h>
#include <sys/utsname.h>
+#include <time.h>
#define MAX_TARGET_PARAMSIZE 500000
@@ -1570,6 +1571,19 @@ static int _dm_tree_deactivate_children(
if ((child->presuspend_node &&
!_node_has_closed_parents(child->presuspend_node,
uuid_prefix, uuid_prefix_len))) {
+
@ -11,7 +21,7 @@ Index: LVM2.2.02.67/libdm/libdm-deptree.c
+ while (info.open_count && idx--) {
+ struct timespec ts = {0, 500000000};
+ nanosleep(&ts, NULL);
+ _info_by_dev(dinfo->major, dinfo->minor, 1, &info);
+ _info_by_dev(dinfo->major, dinfo->minor, 1, &info, NULL, NULL, NULL);
+ }
+
+ if (info.open_count) {

View File

@ -1,10 +1,13 @@
This is still very primitive support of drbd in lvm2.
Can we use some /sys information for this ?
Index: LVM2.2.02.58/lib/cache/lvmcache.c
================================================================================
--- LVM2.2.02.58/lib/cache/lvmcache.c
+++ LVM2.2.02.58/lib/cache/lvmcache.c
@@ -1222,6 +1222,14 @@
---
lib/cache/lvmcache.c | 14 ++++++++++++++
lib/filters/filter.c | 7 +++++++
2 files changed, 21 insertions(+)
--- LVM2.2.02.98.orig/lib/cache/lvmcache.c
+++ LVM2.2.02.98/lib/cache/lvmcache.c
@@ -1489,6 +1489,14 @@ struct lvmcache_info *lvmcache_add(struc
dev_subsystem_name(existing->dev),
dev_name(existing->dev));
return NULL;
@ -19,7 +22,7 @@ Index: LVM2.2.02.58/lib/cache/lvmcache.c
} else if (dm_is_dm_major(MAJOR(existing->dev->dev)) &&
!dm_is_dm_major(MAJOR(dev->dev))) {
log_very_verbose("Ignoring duplicate PV %s on "
@@ -1242,6 +1250,12 @@
@@ -1509,6 +1517,12 @@ struct lvmcache_info *lvmcache_add(struc
"using dm %s", pvid,
dev_name(existing->dev),
dev_name(dev));
@ -32,9 +35,9 @@ Index: LVM2.2.02.58/lib/cache/lvmcache.c
/* FIXME If both dm, check dependencies */
//else if (dm_is_dm_major(MAJOR(existing->dev->dev)) &&
//dm_is_dm_major(MAJOR(dev->dev)))
--- LVM2.2.02.58/lib/filters/filter.c
+++ LVM2.2.02.58/lib/filters/filter.c
@@ -54,6 +54,13 @@
--- LVM2.2.02.98.orig/lib/filters/filter.c
+++ LVM2.2.02.98/lib/filters/filter.c
@@ -60,6 +60,13 @@ int md_major(void)
return _md_major;
}

View File

@ -1,10 +1,13 @@
Index: LVM2.2.02.84/udev/10-dm.rules.in
===================================================================
--- LVM2.2.02.84.orig/udev/10-dm.rules.in 2011-01-28 19:41:52.000000000 +0800
+++ LVM2.2.02.84/udev/10-dm.rules.in 2011-02-15 14:50:19.000000000 +0800
@@ -94,6 +94,10 @@
TEST!="dm", IMPORT{program}="$env{DM_SBIN_PATH}/dmsetup info -j %M -m %m -c --nameprefixes --noheadings --rows -o name,uuid,suspended"
ENV{DM_SUSPENDED}!="?*", IMPORT{program}="$env{DM_SBIN_PATH}/dmsetup info -j %M -m %m -c --nameprefixes --noheadings --rows -o suspended"
---
udev/10-dm.rules.in | 4 ++++
udev/13-dm-disk.rules.in | 9 ++++++---
2 files changed, 10 insertions(+), 3 deletions(-)
--- LVM2.2.02.98.orig/udev/10-dm.rules.in
+++ LVM2.2.02.98/udev/10-dm.rules.in
@@ -90,6 +90,10 @@ TEST=="dm", ENV{DM_NAME}="$attr{dm/name}
TEST!="dm", IMPORT{program}="(DM_EXEC)/dmsetup info -j %M -m %m -c --nameprefixes --noheadings --rows -o name,uuid,suspended"
ENV{DM_SUSPENDED}!="?*", IMPORT{program}="(DM_EXEC)/dmsetup info -j %M -m %m -c --nameprefixes --noheadings --rows -o suspended"
+# dmsetup export is a SUSE extension to dmsetup
+# it is required by some other udev rules in SUSE distro.
@ -13,11 +16,9 @@ Index: LVM2.2.02.84/udev/10-dm.rules.in
# dmsetup tool provides suspended state information in textual
# form with values "Suspended"/"Active". We translate it to
# 0/1 respectively to be consistent with sysfs values.
Index: LVM2.2.02.84/udev/13-dm-disk.rules
===================================================================
--- LVM2.2.02.84.orig/udev/13-dm-disk.rules 2009-11-13 20:33:27.000000000 +0800
+++ LVM2.2.02.84/udev/13-dm-disk.rules 2011-02-15 14:51:31.000000000 +0800
@@ -14,13 +14,16 @@
--- LVM2.2.02.98.orig/udev/13-dm-disk.rules.in
+++ LVM2.2.02.98/udev/13-dm-disk.rules.in
@@ -14,13 +14,16 @@ ACTION!="add|change", GOTO="dm_end"
ENV{DM_UDEV_RULES_VSN}!="?*", GOTO="dm_end"
ENV{DM_UDEV_DISABLE_DISK_RULES_FLAG}=="1", GOTO="dm_end"
@ -29,7 +30,7 @@ Index: LVM2.2.02.84/udev/13-dm-disk.rules
ENV{DM_SUSPENDED}=="1", GOTO="dm_end"
+ENV{DM_TARGET_TYPES}=="|*error*", GOTO="dm_end"
IMPORT{program}="$env{DM_SBIN_PATH}/blkid -o udev -p $tempnode"
(BLKID_RULE)
-ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS="link_priority=-100"
+ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS+="link_priority=-100"
+OPTIONS+="watch"