SHA256
1
0
forked from pool/lvm2

Accepting request 140943 from Base:System

fix bnc#789019,bnc#789020,bnc#789021 (forwarded request 140942 from seife)

OBS-URL: https://build.opensuse.org/request/show/140943
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/lvm2?expand=0&rev=50
This commit is contained in:
Stephan Kulow
2012-11-13 10:41:25 +00:00
committed by Git OBS Bridge
5 changed files with 75 additions and 23 deletions

View File

@@ -2,17 +2,25 @@
tools/dmsetup.c | 23 +++++++++++++++++++++++ tools/dmsetup.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+) 1 file changed, 23 insertions(+)
Index: LVM2.2.02.98/tools/dmsetup.c
===================================================================
--- LVM2.2.02.98.orig/tools/dmsetup.c --- LVM2.2.02.98.orig/tools/dmsetup.c
+++ LVM2.2.02.98/tools/dmsetup.c +++ LVM2.2.02.98/tools/dmsetup.c
@@ -1720,6 +1720,7 @@ static int _export(int argc, char **argv @@ -1717,10 +1717,11 @@ static int _export(CMD_ARGS)
char *target_type = NULL;
char *params;
const char *name = NULL; const char *name = NULL;
const char *uuid = NULL; const char *uuid = NULL;
struct dm_info info; struct dm_info info;
+ struct dm_deps *deps; + struct dm_deps *deps;
if (data) if (names)
name = names->name; name = names->name;
@@ -1789,6 +1790,28 @@ static int _export(int argc, char **argv else if (argc == 2)
name = argv[1];
@@ -1786,10 +1787,32 @@ static int _export(CMD_ARGS)
printf(",%s", target_type);
}
printf("\n"); printf("\n");
} }
@@ -22,9 +30,9 @@
+ goto out; + goto out;
+ +
+ name = NULL; + name = NULL;
+ if (data) + if (names)
+ name = names->name; + name = names->name;
+ else if (argc == 2) + else if (argc == 2)
+ name = argv[1]; + name = argv[1];
+ +
+ if (!_set_task_device(dmt, name, 0)) + if (!_set_task_device(dmt, name, 0))
@@ -41,3 +49,5 @@
r = 1; r = 1;
out: out:
if (dmt) if (dmt)
dm_task_destroy(dmt);
return r;

View File

@@ -1,11 +1,15 @@
--- ---
man/dmsetup.8.in | 7 ++++ man/dmsetup.8.in | 7 ++++
tools/dmsetup.c | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ tools/dmsetup.c | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 96 insertions(+) 2 files changed, 95 insertions(+)
Index: LVM2.2.02.98/man/dmsetup.8.in
===================================================================
--- LVM2.2.02.98.orig/man/dmsetup.8.in --- LVM2.2.02.98.orig/man/dmsetup.8.in
+++ LVM2.2.02.98/man/dmsetup.8.in +++ LVM2.2.02.98/man/dmsetup.8.in
@@ -19,6 +19,9 @@ dmsetup \- low level logical volume mana @@ -17,10 +17,13 @@ dmsetup \- low level logical volume mana
.RB [{ \-\-addnodeoncreate | \-\-addnodeonresume }]
.RB [ \-\-readahead
.RI [ \+ ]< sectors >| auto | none ] .RI [ \+ ]< sectors >| auto | none ]
.RE .RE
.br .br
@@ -15,7 +19,11 @@
.B dmsetup deps .B dmsetup deps
.RB [ \-o .RB [ \-o
.IR options ] .IR options ]
@@ -285,6 +288,10 @@ device_name in subsequent dmsetup comman .RI [ device_name ]
.br
@@ -283,10 +286,14 @@ Otherwise a table is read from standard
The optional uuid can be used in place of
device_name in subsequent dmsetup commands.
If successful a device will appear as If successful a device will appear as
/dev/mapper/<device-name>. /dev/mapper/<device-name>.
See below for information on the table format. See below for information on the table format.
@@ -26,13 +34,19 @@
.br .br
.TP .TP
.B deps .B deps
.RB [ \-o
.IR options ]
Index: LVM2.2.02.98/tools/dmsetup.c
===================================================================
--- LVM2.2.02.98.orig/tools/dmsetup.c --- LVM2.2.02.98.orig/tools/dmsetup.c
+++ LVM2.2.02.98/tools/dmsetup.c +++ LVM2.2.02.98/tools/dmsetup.c
@@ -1708,6 +1708,94 @@ static int _status(CMD_ARGS) @@ -1706,10 +1706,97 @@ static int _status(CMD_ARGS)
out:
dm_task_destroy(dmt);
return r; return r;
} }
+static int _export(int argc, char **argv, void *data) +static int _export(CMD_ARGS)
+{ +{
+ int r = 0; + int r = 0;
+ struct dm_task *dmt = NULL; + struct dm_task *dmt = NULL;
@@ -40,12 +54,11 @@
+ uint64_t start, length; + uint64_t start, length;
+ char *target_type = NULL; + char *target_type = NULL;
+ char *params; + char *params;
+ struct dm_names *names = (struct dm_names *) data;
+ const char *name = NULL; + const char *name = NULL;
+ const char *uuid = NULL; + const char *uuid = NULL;
+ struct dm_info info; + struct dm_info info;
+ +
+ if (data) + if (names)
+ name = names->name; + name = names->name;
+ else if (argc == 2) + else if (argc == 2)
+ name = argv[1]; + name = argv[1];
@@ -123,7 +136,11 @@
/* Show target names and their version numbers */ /* Show target names and their version numbers */
static int _targets(CMD_ARGS) static int _targets(CMD_ARGS)
{ {
@@ -3058,6 +3146,7 @@ static struct command _commands[] = { int r = 0;
struct dm_task *dmt;
@@ -3056,10 +3143,11 @@ static struct command _commands[] = {
{"message", "<device> <sector> <message>", 2, -1, 0, _message},
{"ls", "[--target <target_type>] [--exec <command>] [-o options] [--tree]", 0, 0, 0, _ls},
{"info", "[<device>]", 0, -1, 1, _info}, {"info", "[<device>]", 0, -1, 1, _info},
{"deps", "[-o options] [<device>]", 0, -1, 1, _deps}, {"deps", "[-o options] [<device>]", 0, -1, 1, _deps},
{"status", "[<device>] [--noflush] [--target <target_type>]", 0, -1, 1, _status}, {"status", "[<device>] [--noflush] [--target <target_type>]", 0, -1, 1, _status},
@@ -131,3 +148,5 @@
{"table", "[<device>] [--target <target_type>] [--showkeys]", 0, -1, 1, _status}, {"table", "[<device>] [--target <target_type>] [--showkeys]", 0, -1, 1, _status},
{"wait", "<device> [<event_nr>] [--noflush]", 0, 2, 0, _wait}, {"wait", "<device> [<event_nr>] [--noflush]", 0, 2, 0, _wait},
{"mknodes", "[<device>]", 0, -1, 1, _mknodes}, {"mknodes", "[<device>]", 0, -1, 1, _mknodes},
{"mangle", "[<device>]", 0, -1, 1, _mangle},
{"udevcreatecookie", "", 0, 0, 0, _udevcreatecookie},

View File

@@ -1,3 +1,14 @@
-------------------------------------------------------------------
Mon Nov 12 10:41:45 UTC 2012 - seife+obs@b1-systems.com
- fix 10-dm.rules (bnc#789021)
- port dmsetup export patch to new LVM code (bnc#789019,bnc#789020)
-------------------------------------------------------------------
Mon Nov 5 21:10:28 UTC 2012 - hrvoje.senjan@gmail.com
- Now also fix devmapper-setup
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Nov 5 12:08:26 UTC 2012 - hrvoje.senjan@gmail.com Mon Nov 5 12:08:26 UTC 2012 - hrvoje.senjan@gmail.com

View File

@@ -29,12 +29,12 @@ if [ -x /sbin/dmsetup ]; then
fi fi
# include dm block var from sysconfig # include dm block var from sysconfig
mkdir -p etc/sysconfig mkdir -p $tmp_mnt/etc/sysconfig
grep DM_BLOCK /etc/sysconfig/kernel > etc/sysconfig/kernel grep DM_BLOCK /etc/sysconfig/kernel > $tmp_mnt/etc/sysconfig/kernel
mkdir -p usr/lib/udev/rules.d mkdir -p $tmp_mnt/usr/lib/udev/rules.d
cp usr/lib/udev/rules.d/10-dm.rules usr/lib/udev/rules.d cp /usr/lib/udev/rules.d/10-dm.rules $tmp_mnt/usr/lib/udev/rules.d/
cp usr/lib/udev/rules.d/13-dm-disk.rules usrlib/udev/rules.d cp /usr/lib/udev/rules.d/13-dm-disk.rules $tmp_mnt/usr/lib/udev/rules.d
cp usr/lib/udev/rules.d/95-dm-notify.rules usr/lib/udev/rules.d cp /usr/lib/udev/rules.d/95-dm-notify.rules $tmp_mnt/usr/lib/udev/rules.d
save_var root_dm save_var root_dm
save_var dm_modules save_var dm_modules
fi fi

View File

@@ -3,22 +3,32 @@
udev/13-dm-disk.rules.in | 9 ++++++--- udev/13-dm-disk.rules.in | 9 ++++++---
2 files changed, 10 insertions(+), 3 deletions(-) 2 files changed, 10 insertions(+), 3 deletions(-)
Index: LVM2.2.02.98/udev/10-dm.rules.in
===================================================================
--- LVM2.2.02.98.orig/udev/10-dm.rules.in --- LVM2.2.02.98.orig/udev/10-dm.rules.in
+++ LVM2.2.02.98/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} @@ -88,10 +88,14 @@ ACTION=="add", ENV{DM_UDEV_RULES_VSN}!="
# is in between these releases.
TEST=="dm", ENV{DM_NAME}="$attr{dm/name}", ENV{DM_UUID}="$attr{dm/uuid}", ENV{DM_SUSPENDED}="$attr{dm/suspended}"
TEST!="dm", IMPORT{program}="(DM_EXEC)/dmsetup info -j %M -m %m -c --nameprefixes --noheadings --rows -o name,uuid,suspended" 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" 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 +# dmsetup export is a SUSE extension to dmsetup
+# it is required by some other udev rules in SUSE distro. +# it is required by some other udev rules in SUSE distro.
+IMPORT{program}="$env{DM_SBIN_PATH}/dmsetup export -j %M -m %m" +IMPORT{program}="(DM_EXEC)/dmsetup export -j %M -m %m"
+ +
# dmsetup tool provides suspended state information in textual # dmsetup tool provides suspended state information in textual
# form with values "Suspended"/"Active". We translate it to # form with values "Suspended"/"Active". We translate it to
# 0/1 respectively to be consistent with sysfs values. # 0/1 respectively to be consistent with sysfs values.
ENV{DM_SUSPENDED}=="Active", ENV{DM_SUSPENDED}="0"
ENV{DM_SUSPENDED}=="Suspended", ENV{DM_SUSPENDED}="1"
Index: LVM2.2.02.98/udev/13-dm-disk.rules.in
===================================================================
--- LVM2.2.02.98.orig/udev/13-dm-disk.rules.in --- LVM2.2.02.98.orig/udev/13-dm-disk.rules.in
+++ LVM2.2.02.98/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" @@ -12,17 +12,20 @@
# "add" event is processed on coldplug only!
ACTION!="add|change", GOTO="dm_end"
ENV{DM_UDEV_RULES_VSN}!="?*", GOTO="dm_end" ENV{DM_UDEV_RULES_VSN}!="?*", GOTO="dm_end"
ENV{DM_UDEV_DISABLE_DISK_RULES_FLAG}=="1", GOTO="dm_end" ENV{DM_UDEV_DISABLE_DISK_RULES_FLAG}=="1", GOTO="dm_end"
@@ -38,3 +48,5 @@
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}"
ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
# Add inotify watch to track changes on this device.
# Using the watch rule is not optimal - it generates a lot of spurious