Accepting request 356420 from home:wanglh:branches:Base:System

update lvm2 & split thin-provisioning-tools &fix bsc#960044

OBS-URL: https://build.opensuse.org/request/show/356420
OBS-URL: https://build.opensuse.org/package/show/Base:System/lvm2?expand=0&rev=145
This commit is contained in:
LiuhuaMelody Wang 2016-01-28 04:41:36 +00:00 committed by Git OBS Bridge
parent f9d13336dd
commit 32c4fd31de
21 changed files with 265 additions and 262 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8d6bd02f7d00315482538ece3e831cd81709c29d74ce71229c60192fb166081a
size 1653183

View File

@ -1,7 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iEYEABECAAYFAlVWcqQACgkQIoGRwVZ+LBeiKgCg6vIAWhC7AZcf01Qf505sty3A
HOwAoJGo8JYHscwGMo3FSIkLWHjbcRq0
=96gn
-----END PGP SIGNATURE-----

3
LVM2.2.02.141.tgz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6299e0905dd60755c5e11c80145fe29dad2c01d51b25136f8e4015cb63b388f5
size 1902386

7
LVM2.2.02.141.tgz.asc Normal file
View File

@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (GNU/Linux)
iEYEABECAAYFAlaldhAACgkQIoGRwVZ+LBd+JgCfX58yWPrTHz0LwNzX5FHvvdNT
7MsAoJET99QghzwYv9refV2KXs2G5Laj
=BMDt
-----END PGP SIGNATURE-----

View File

@ -9,8 +9,10 @@ Subject: Parallelize dispatching
tools/lvconvert.c | 9 --- tools/lvconvert.c | 9 ---
7 files changed, 109 insertions(+), 81 deletions(-) 7 files changed, 109 insertions(+), 81 deletions(-)
--- a/daemons/cmirrord/Makefile.in Index: LVM2.2.02.139/daemons/cmirrord/Makefile.in
+++ b/daemons/cmirrord/Makefile.in ===================================================================
--- LVM2.2.02.139.orig/daemons/cmirrord/Makefile.in
+++ LVM2.2.02.139/daemons/cmirrord/Makefile.in
@@ -26,7 +26,7 @@ TARGETS = cmirrord @@ -26,7 +26,7 @@ TARGETS = cmirrord
include $(top_builddir)/make.tmpl include $(top_builddir)/make.tmpl
@ -20,8 +22,10 @@ Subject: Parallelize dispatching
LMLIBS += $(CPG_LIBS) $(SACKPT_LIBS) LMLIBS += $(CPG_LIBS) $(SACKPT_LIBS)
CFLAGS += $(CPG_CFLAGS) $(SACKPT_CFLAGS) $(EXTRA_EXEC_CFLAGS) CFLAGS += $(CPG_CFLAGS) $(SACKPT_CFLAGS) $(EXTRA_EXEC_CFLAGS)
LDFLAGS += $(EXTRA_EXEC_LDFLAGS) LDFLAGS += $(EXTRA_EXEC_LDFLAGS)
--- a/daemons/cmirrord/cluster.c Index: LVM2.2.02.139/daemons/cmirrord/cluster.c
+++ b/daemons/cmirrord/cluster.c ===================================================================
--- LVM2.2.02.139.orig/daemons/cmirrord/cluster.c
+++ LVM2.2.02.139/daemons/cmirrord/cluster.c
@@ -22,6 +22,7 @@ @@ -22,6 +22,7 @@
#include <errno.h> #include <errno.h>
#include <signal.h> #include <signal.h>
@ -30,10 +34,10 @@ Subject: Parallelize dispatching
#if CMIRROR_HAS_CHECKPOINT #if CMIRROR_HAS_CHECKPOINT
#include <openais/saAis.h> #include <openais/saAis.h>
#include <openais/saCkpt.h> #include <openais/saCkpt.h>
@@ -151,9 +152,11 @@ struct clog_cpg { @@ -152,9 +153,11 @@ struct clog_cpg {
struct checkpoint_data *checkpoint_list; struct checkpoint_data *checkpoint_list;
int idx; int idx;
char debugging[DEBUGGING_HISTORY][128]; char debugging[DEBUGGING_HISTORY][DEBUGGING_BUFLEN];
+ pthread_t thread_pid; + pthread_t thread_pid;
}; };
@ -42,7 +46,7 @@ Subject: Parallelize dispatching
/* /*
* cluster_send * cluster_send
@@ -168,12 +171,14 @@ int cluster_send(struct clog_request *rq @@ -169,12 +172,14 @@ int cluster_send(struct clog_request *rq
struct iovec iov; struct iovec iov;
struct clog_cpg *entry; struct clog_cpg *entry;
@ -57,7 +61,7 @@ Subject: Parallelize dispatching
if (!found) { if (!found) {
rq->u_rq.error = -ENOENT; rq->u_rq.error = -ENOENT;
@@ -254,11 +259,11 @@ static struct clog_request *get_matching @@ -255,11 +260,11 @@ static struct clog_request *get_matching
return NULL; return NULL;
} }
@ -70,7 +74,7 @@ Subject: Parallelize dispatching
struct clog_request *tmp = (struct clog_request *)rq_buffer; struct clog_request *tmp = (struct clog_request *)rq_buffer;
/* /*
@@ -369,9 +374,13 @@ static struct clog_cpg *find_clog_cpg(cp @@ -370,9 +375,13 @@ static struct clog_cpg *find_clog_cpg(cp
{ {
struct clog_cpg *match; struct clog_cpg *match;
@ -85,7 +89,7 @@ Subject: Parallelize dispatching
return NULL; return NULL;
} }
@@ -981,34 +990,21 @@ static int resend_requests(struct clog_c @@ -982,34 +991,21 @@ static int resend_requests(struct clog_c
return r; return r;
} }
@ -132,7 +136,7 @@ Subject: Parallelize dispatching
} }
static int flush_startup_list(struct clog_cpg *entry) static int flush_startup_list(struct clog_cpg *entry)
@@ -1061,23 +1057,37 @@ static int flush_startup_list(struct clo @@ -1062,23 +1058,37 @@ static int flush_startup_list(struct clo
return 0; return 0;
} }
@ -176,7 +180,7 @@ Subject: Parallelize dispatching
/* /*
* Perform necessary endian and version compatibility conversions * Perform necessary endian and version compatibility conversions
@@ -1373,7 +1383,7 @@ static void cpg_leave_callback(struct cl @@ -1384,7 +1394,7 @@ static void cpg_leave_callback(struct cl
size_t member_list_entries) size_t member_list_entries)
{ {
unsigned i; unsigned i;
@ -185,7 +189,7 @@ Subject: Parallelize dispatching
uint32_t lowest = match->lowest_id; uint32_t lowest = match->lowest_id;
struct clog_request *rq, *n; struct clog_request *rq, *n;
struct checkpoint_data *p_cp, *c_cp; struct checkpoint_data *p_cp, *c_cp;
@@ -1384,10 +1394,9 @@ static void cpg_leave_callback(struct cl @@ -1395,10 +1405,9 @@ static void cpg_leave_callback(struct cl
/* Am I leaving? */ /* Am I leaving? */
if (my_cluster_id == left->nodeid) { if (my_cluster_id == left->nodeid) {
LOG_DBG("Finalizing leave..."); LOG_DBG("Finalizing leave...");
@ -198,7 +202,7 @@ Subject: Parallelize dispatching
cluster_postsuspend(match->name.value, match->luid); cluster_postsuspend(match->name.value, match->luid);
@@ -1515,11 +1524,13 @@ static void cpg_config_callback(cpg_hand @@ -1526,11 +1535,13 @@ static void cpg_config_callback(cpg_hand
struct clog_cpg *match; struct clog_cpg *match;
int found = 0; int found = 0;
@ -212,7 +216,7 @@ Subject: Parallelize dispatching
if (!found) { if (!found) {
LOG_ERROR("Unable to find match for CPG config callback"); LOG_ERROR("Unable to find match for CPG config callback");
@@ -1536,6 +1547,16 @@ static void cpg_config_callback(cpg_hand @@ -1547,6 +1558,16 @@ static void cpg_config_callback(cpg_hand
else else
cpg_leave_callback(match, left_list, cpg_leave_callback(match, left_list,
member_list, member_list_entries); member_list, member_list_entries);
@ -229,7 +233,7 @@ Subject: Parallelize dispatching
} }
cpg_callbacks_t cpg_callbacks = { cpg_callbacks_t cpg_callbacks = {
@@ -1603,12 +1624,16 @@ int create_cluster_cpg(char *uuid, uint6 @@ -1614,12 +1635,16 @@ int create_cluster_cpg(char *uuid, uint6
size_t size; size_t size;
struct clog_cpg *new = NULL; struct clog_cpg *new = NULL;
struct clog_cpg *tmp; struct clog_cpg *tmp;
@ -246,7 +250,7 @@ Subject: Parallelize dispatching
new = malloc(sizeof(*new)); new = malloc(sizeof(*new));
if (!new) { if (!new) {
@@ -1650,13 +1675,16 @@ int create_cluster_cpg(char *uuid, uint6 @@ -1661,13 +1686,16 @@ int create_cluster_cpg(char *uuid, uint6
} }
new->cpg_state = VALID; new->cpg_state = VALID;
@ -266,7 +270,7 @@ Subject: Parallelize dispatching
return 0; return 0;
} }
@@ -1725,9 +1753,11 @@ int destroy_cluster_cpg(char *uuid) @@ -1736,9 +1764,11 @@ int destroy_cluster_cpg(char *uuid)
{ {
struct clog_cpg *del, *tmp; struct clog_cpg *del, *tmp;
@ -278,8 +282,10 @@ Subject: Parallelize dispatching
return 0; return 0;
} }
--- a/daemons/cmirrord/functions.c Index: LVM2.2.02.139/daemons/cmirrord/functions.c
+++ b/daemons/cmirrord/functions.c ===================================================================
--- LVM2.2.02.139.orig/daemons/cmirrord/functions.c
+++ LVM2.2.02.139/daemons/cmirrord/functions.c
@@ -19,6 +19,7 @@ @@ -19,6 +19,7 @@
#include <sys/stat.h> #include <sys/stat.h>
#include <time.h> #include <time.h>
@ -288,7 +294,7 @@ Subject: Parallelize dispatching
#define BYTE_SHIFT 3 #define BYTE_SHIFT 3
@@ -105,6 +106,9 @@ struct recovery_request { @@ -106,6 +107,9 @@ struct recovery_request {
static DM_LIST_INIT(log_list); static DM_LIST_INIT(log_list);
static DM_LIST_INIT(log_pending_list); static DM_LIST_INIT(log_pending_list);
@ -298,7 +304,7 @@ Subject: Parallelize dispatching
static int log_test_bit(dm_bitset_t bs, int bit) static int log_test_bit(dm_bitset_t bs, int bit)
{ {
return dm_bit(bs, bit) ? 1 : 0; return dm_bit(bs, bit) ? 1 : 0;
@@ -151,11 +155,15 @@ static struct log_c *get_log(const char @@ -152,11 +156,15 @@ static struct log_c *get_log(const char
{ {
struct log_c *lc; struct log_c *lc;
@ -315,7 +321,7 @@ Subject: Parallelize dispatching
return NULL; return NULL;
} }
@@ -171,10 +179,14 @@ static struct log_c *get_pending_log(con @@ -172,10 +180,14 @@ static struct log_c *get_pending_log(con
{ {
struct log_c *lc; struct log_c *lc;
@ -331,7 +337,7 @@ Subject: Parallelize dispatching
return NULL; return NULL;
} }
@@ -519,7 +531,9 @@ static int _clog_ctr(char *uuid, uint64_ @@ -520,7 +532,9 @@ static int _clog_ctr(char *uuid, uint64_
LOG_DBG("Disk log ready"); LOG_DBG("Disk log ready");
} }
@ -341,7 +347,7 @@ Subject: Parallelize dispatching
return 0; return 0;
fail: fail:
@@ -643,7 +657,10 @@ static int clog_dtr(struct dm_ulog_reque @@ -644,7 +658,10 @@ static int clog_dtr(struct dm_ulog_reque
LOG_DBG("[%s] Cluster log removed", SHORT_UUID(lc->uuid)); LOG_DBG("[%s] Cluster log removed", SHORT_UUID(lc->uuid));
@ -352,7 +358,7 @@ Subject: Parallelize dispatching
if (lc->disk_fd != -1 && close(lc->disk_fd)) if (lc->disk_fd != -1 && close(lc->disk_fd))
LOG_ERROR("Failed to close disk log: %s", LOG_ERROR("Failed to close disk log: %s",
strerror(errno)); strerror(errno));
@@ -715,8 +732,13 @@ int cluster_postsuspend(char *uuid, uint @@ -716,8 +733,13 @@ int cluster_postsuspend(char *uuid, uint
lc->resume_override = 0; lc->resume_override = 0;
/* move log to pending list */ /* move log to pending list */
@ -366,7 +372,7 @@ Subject: Parallelize dispatching
return 0; return 0;
} }
@@ -820,9 +842,9 @@ no_disk: @@ -821,9 +843,9 @@ no_disk:
if (commit_log && (lc->disk_fd >= 0)) { if (commit_log && (lc->disk_fd >= 0)) {
rq->error = write_log(lc); rq->error = write_log(lc);
if (rq->error) if (rq->error)
@ -378,7 +384,7 @@ Subject: Parallelize dispatching
lc->touched = 0; lc->touched = 0;
} }
out: out:
@@ -904,8 +926,13 @@ int local_resume(struct dm_ulog_request @@ -905,8 +927,13 @@ int local_resume(struct dm_ulog_request
} }
/* move log to official list */ /* move log to official list */
@ -392,7 +398,7 @@ Subject: Parallelize dispatching
} }
return 0; return 0;
@@ -1928,7 +1955,6 @@ void log_debug(void) @@ -1929,7 +1956,6 @@ void log_debug(void)
LOG_ERROR(""); LOG_ERROR("");
LOG_ERROR("LOG COMPONENT DEBUGGING::"); LOG_ERROR("LOG COMPONENT DEBUGGING::");
@ -400,7 +406,7 @@ Subject: Parallelize dispatching
LOG_ERROR("Pending log list:"); LOG_ERROR("Pending log list:");
dm_list_iterate_items(lc, &log_pending_list) { dm_list_iterate_items(lc, &log_pending_list) {
LOG_ERROR("%s", lc->uuid); LOG_ERROR("%s", lc->uuid);
@@ -1938,6 +1964,7 @@ void log_debug(void) @@ -1939,6 +1965,7 @@ void log_debug(void)
print_bits(lc->clean_bits, 1); print_bits(lc->clean_bits, 1);
} }
@ -408,8 +414,10 @@ Subject: Parallelize dispatching
dm_list_iterate_items(lc, &log_list) { dm_list_iterate_items(lc, &log_list) {
LOG_ERROR("%s", lc->uuid); LOG_ERROR("%s", lc->uuid);
LOG_ERROR(" recoverer : %" PRIu32, lc->recoverer); LOG_ERROR(" recoverer : %" PRIu32, lc->recoverer);
--- a/daemons/cmirrord/local.c Index: LVM2.2.02.139/daemons/cmirrord/local.c
+++ b/daemons/cmirrord/local.c ===================================================================
--- LVM2.2.02.139.orig/daemons/cmirrord/local.c
+++ LVM2.2.02.139/daemons/cmirrord/local.c
@@ -29,13 +29,13 @@ @@ -29,13 +29,13 @@
static int cn_fd = -1; /* Connector (netlink) socket fd */ static int cn_fd = -1; /* Connector (netlink) socket fd */
@ -433,9 +441,11 @@ Subject: Parallelize dispatching
memset(send_buf, 0, sizeof(send_buf)); memset(send_buf, 0, sizeof(send_buf));
--- a/lib/metadata/mirror.c Index: LVM2.2.02.139/lib/metadata/mirror.c
+++ b/lib/metadata/mirror.c ===================================================================
@@ -1946,10 +1946,6 @@ int add_mirror_log(struct cmd_context *c --- LVM2.2.02.139.orig/lib/metadata/mirror.c
+++ LVM2.2.02.139/lib/metadata/mirror.c
@@ -1973,10 +1973,6 @@ int add_mirror_log(struct cmd_context *c
unsigned old_log_count; unsigned old_log_count;
int r = 0; int r = 0;
@ -446,7 +456,7 @@ Subject: Parallelize dispatching
if (dm_list_size(&lv->segments) != 1) { if (dm_list_size(&lv->segments) != 1) {
log_error("Multiple-segment mirror is not supported"); log_error("Multiple-segment mirror is not supported");
@@ -2113,26 +2109,6 @@ int lv_add_mirrors(struct cmd_context *c @@ -2140,26 +2136,6 @@ int lv_add_mirrors(struct cmd_context *c
return 0; return 0;
} }
@ -473,9 +483,11 @@ Subject: Parallelize dispatching
/* For corelog mirror, activation code depends on /* For corelog mirror, activation code depends on
* the global mirror_in_sync status. As we are adding * the global mirror_in_sync status. As we are adding
--- a/lib/mirror/mirrored.c Index: LVM2.2.02.139/lib/mirror/mirrored.c
+++ b/lib/mirror/mirrored.c ===================================================================
@@ -361,12 +361,15 @@ static int _add_log(struct dm_pool *mem, --- LVM2.2.02.139.orig/lib/mirror/mirrored.c
+++ LVM2.2.02.139/lib/mirror/mirrored.c
@@ -293,12 +293,15 @@ static int _add_log(struct dm_pool *mem,
return 0; return 0;
} }
} else { } else {
@ -492,9 +504,11 @@ Subject: Parallelize dispatching
log_flags |= DM_CORELOG; log_flags |= DM_CORELOG;
} }
--- a/tools/lvconvert.c Index: LVM2.2.02.139/tools/lvconvert.c
+++ b/tools/lvconvert.c ===================================================================
@@ -1364,15 +1364,6 @@ static int _lvconvert_mirrors_parse_para --- LVM2.2.02.139.orig/tools/lvconvert.c
+++ LVM2.2.02.139/tools/lvconvert.c
@@ -1222,15 +1222,6 @@ static int _lvconvert_mirrors_parse_para
*new_log_count = arg_int_value(cmd, mirrorlog_ARG, *new_log_count = arg_int_value(cmd, mirrorlog_ARG,
arg_is_set(cmd, corelog_ARG) ? MIRROR_LOG_CORE : DEFAULT_MIRRORLOG); arg_is_set(cmd, corelog_ARG) ? MIRROR_LOG_CORE : DEFAULT_MIRRORLOG);
@ -507,6 +521,6 @@ Subject: Parallelize dispatching
- return 0; - return 0;
- } - }
- -
log_verbose("Setting logging type to %s", get_mirror_log_name(*new_log_count)); log_verbose("Setting logging type to %s", get_mirror_log_name(*new_log_count));
/* /*

View File

@ -2,12 +2,12 @@ cmirrord: Do not compile in Data and Time to avoid build retriggering in obs
Signed-off-by: Thomas Renninger <trenn@suse.de> Signed-off-by: Thomas Renninger <trenn@suse.de>
Index: LVM2.2.02.98/daemons/cmirrord/clogd.c Index: LVM2.2.02.139/daemons/cmirrord/clogd.c
=================================================================== ===================================================================
--- LVM2.2.02.98.orig/daemons/cmirrord/clogd.c --- LVM2.2.02.139.orig/daemons/cmirrord/clogd.c
+++ LVM2.2.02.98/daemons/cmirrord/clogd.c +++ LVM2.2.02.139/daemons/cmirrord/clogd.c
@@ -42,7 +42,6 @@ int main(int argc __attribute__((unused) @@ -78,7 +78,6 @@ int main(int argc, char *argv[])
kill(getppid(), SIGTERM); kill(getppid(), SIGTERM);
LOG_PRINT("Starting cmirrord:"); LOG_PRINT("Starting cmirrord:");
- LOG_PRINT(" Built: "__DATE__" "__TIME__"\n"); - LOG_PRINT(" Built: "__DATE__" "__TIME__"\n");

View File

@ -1,33 +1,42 @@
Index: LVM2.2.02.110/man/dmsetup.8.in Index: LVM2.2.02.139/man/dmsetup.8.in
=================================================================== ===================================================================
--- LVM2.2.02.110.orig/man/dmsetup.8.in --- LVM2.2.02.139.orig/man/dmsetup.8.in
+++ LVM2.2.02.110/man/dmsetup.8.in +++ LVM2.2.02.139/man/dmsetup.8.in
@@ -45,6 +45,9 @@ dmsetup \(em low level logical volume ma @@ -97,7 +97,15 @@ dmsetup \(em low level logical volume ma
.RI [ device_name ] ..
.RE .CMD_LOAD
.br .
+.B dmsetup export -.HP
+.I [device_name] +. HP
+.br +.B dmsetup
.B dmsetup load +.de CMD_EXPORT
.I device_name +. BR export
.RB [ \-\-table +. RI [device_name]
@@ -309,6 +312,10 @@ device_name in subsequent dmsetup comman +..
If successful a device will appear as +.CMD_EXPORT
/dev/mapper/<device-name>. +.
See below for information on the table format. +. HP
+.IP \fBexport .B dmsetup
+.I [device_name] .de CMD_LS
. ad l
@@ -564,6 +572,12 @@ Specify a one-line table directly on the
See below for more information on the table format.
.
.HP
+.BR \-\-export
+.IR export
+.br +.br
+Outputs information in key/value format to be imported by other programs. +Outputs information in key/value format to be imported by other programs.
+.
+.HP
.BR \-\-udevcookie
.IR cookie
.br .br
.TP Index: LVM2.2.02.139/tools/dmsetup.c
.B deps
Index: LVM2.2.02.110/tools/dmsetup.c
=================================================================== ===================================================================
--- LVM2.2.02.110.orig/tools/dmsetup.c --- LVM2.2.02.139.orig/tools/dmsetup.c
+++ LVM2.2.02.110/tools/dmsetup.c +++ LVM2.2.02.139/tools/dmsetup.c
@@ -1733,6 +1733,129 @@ static int _status(CMD_ARGS) @@ -2177,6 +2177,129 @@ out:
return r; return r;
} }
@ -157,11 +166,11 @@ Index: LVM2.2.02.110/tools/dmsetup.c
/* Show target names and their version numbers */ /* Show target names and their version numbers */
static int _targets(CMD_ARGS) static int _targets(CMD_ARGS)
{ {
@@ -3086,6 +3209,7 @@ static struct command _commands[] = { @@ -5138,6 +5261,7 @@ static struct command _dmsetup_commands[
{"info", "[<device>]", 0, -1, 1, _info}, {"deps", "[-o <options>] [<device>]", 0, -1, 1, 0, _deps},
{"deps", "[-o options] [<device>]", 0, -1, 1, _deps}, {"stats", "<command> [<options>] [<devices>]", 1, -1, 1, 1, _stats},
{"status", "[<device>] [--noflush] [--target <target_type>]", 0, -1, 1, _status}, {"status", "[<device>] [--noflush] [--target <target_type>]", 0, -1, 1, 0, _status},
+ {"export", "[<device>]", 0, -1, 1, _export}, + {"export", "[<device>]", 0, -1, 1, 0, _export},
{"table", "[<device>] [--target <target_type>] [--showkeys]", 0, -1, 1, _status}, {"table", "[<device>] [--target <target_type>] [--showkeys]", 0, -1, 1, 0, _status},
{"wait", "<device> [<event_nr>] [--noflush]", 0, 2, 0, _wait}, {"wait", "<device> [<event_nr>] [--noflush]", 0, 2, 0, 0, _wait},
{"mknodes", "[<device>]", 0, -1, 1, _mknodes}, {"mknodes", "[<device>]", 0, -1, 1, 0, _mknodes},

View File

@ -1,17 +1,17 @@
Index: LVM2.2.02.109/libdm/datastruct/hash.c Index: LVM2.2.02.139/libdm/datastruct/hash.c
=================================================================== ===================================================================
--- LVM2.2.02.109.orig/libdm/datastruct/hash.c --- LVM2.2.02.139.orig/libdm/datastruct/hash.c
+++ LVM2.2.02.109/libdm/datastruct/hash.c +++ LVM2.2.02.139/libdm/datastruct/hash.c
@@ -19,7 +19,7 @@ struct dm_hash_node { @@ -20,7 +20,7 @@ struct dm_hash_node {
struct dm_hash_node *next;
void *data; void *data;
unsigned data_len;
unsigned keylen; unsigned keylen;
- char key[0]; - char key[0];
+ unsigned char key[0]; + unsigned char key[0];
}; };
struct dm_hash_table { struct dm_hash_table {
@@ -136,7 +136,7 @@ void dm_hash_destroy(struct dm_hash_tabl @@ -137,7 +137,7 @@ void dm_hash_destroy(struct dm_hash_tabl
static struct dm_hash_node **_find(struct dm_hash_table *t, const void *key, static struct dm_hash_node **_find(struct dm_hash_table *t, const void *key,
uint32_t len) uint32_t len)
{ {
@ -20,7 +20,7 @@ Index: LVM2.2.02.109/libdm/datastruct/hash.c
struct dm_hash_node **c; struct dm_hash_node **c;
for (c = &t->slots[h]; *c; c = &((*c)->next)) { for (c = &t->slots[h]; *c; c = &((*c)->next)) {
@@ -235,7 +235,8 @@ void dm_hash_wipe(struct dm_hash_table * @@ -361,7 +361,8 @@ void dm_hash_wipe(struct dm_hash_table *
char *dm_hash_get_key(struct dm_hash_table *t __attribute__((unused)), char *dm_hash_get_key(struct dm_hash_table *t __attribute__((unused)),
struct dm_hash_node *n) struct dm_hash_node *n)
{ {
@ -30,11 +30,11 @@ Index: LVM2.2.02.109/libdm/datastruct/hash.c
} }
void *dm_hash_get_data(struct dm_hash_table *t __attribute__((unused)), void *dm_hash_get_data(struct dm_hash_table *t __attribute__((unused)),
Index: LVM2.2.02.109/libdm/ioctl/libdm-iface.c Index: LVM2.2.02.139/libdm/ioctl/libdm-iface.c
=================================================================== ===================================================================
--- LVM2.2.02.109.orig/libdm/ioctl/libdm-iface.c --- LVM2.2.02.139.orig/libdm/ioctl/libdm-iface.c
+++ LVM2.2.02.109/libdm/ioctl/libdm-iface.c +++ LVM2.2.02.139/libdm/ioctl/libdm-iface.c
@@ -1751,7 +1751,7 @@ static struct dm_ioctl *_do_dm_ioctl(str @@ -1834,7 +1834,7 @@ static struct dm_ioctl *_do_dm_ioctl(str
dmt->secure_data ? "W " : "", dmt->secure_data ? "W " : "",
dmt->query_inactive_table ? "I " : "", dmt->query_inactive_table ? "I " : "",
dmt->enable_checks ? "C" : "", dmt->enable_checks ? "C" : "",
@ -42,4 +42,4 @@ Index: LVM2.2.02.109/libdm/ioctl/libdm-iface.c
+ (unsigned long long int)dmt->sector, _sanitise_message(dmt->message), + (unsigned long long int)dmt->sector, _sanitise_message(dmt->message),
dmi->data_size, retry_repeat_count); dmi->data_size, retry_repeat_count);
#ifdef DM_IOCTLS #ifdef DM_IOCTLS
if (ioctl(_control_fd, command, dmi) < 0 && r = ioctl(_control_fd, command, dmi);

View File

@ -4,10 +4,12 @@
lib/display/display.c | 13 +++++++++---- lib/display/display.c | 13 +++++++++----
3 files changed, 13 insertions(+), 4 deletions(-) 3 files changed, 13 insertions(+), 4 deletions(-)
--- a/lib/config/config_settings.h Index: LVM2.2.02.139/lib/config/config_settings.h
+++ b/lib/config/config_settings.h ===================================================================
@@ -905,6 +905,9 @@ cfg_array(global_cache_check_options_CFG --- LVM2.2.02.139.orig/lib/config/config_settings.h
cfg_array(global_cache_repair_options_CFG, "cache_repair_options", global_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_STRING, "#S" DEFAULT_CACHE_REPAIR_OPTIONS, vsn(2, 2, 108), NULL, 0, NULL, +++ LVM2.2.02.139/lib/config/config_settings.h
@@ -947,6 +947,9 @@ cfg_array(global_cache_check_options_CFG
cfg_array(global_cache_repair_options_CFG, "cache_repair_options", global_CFG_SECTION, CFG_ALLOW_EMPTY | CFG_DEFAULT_COMMENTED, CFG_TYPE_STRING, DEFAULT_CACHE_REPAIR_OPTIONS_CONFIG, vsn(2, 2, 108), NULL, 0, NULL,
"List of options passed to the cache_repair command.\n") "List of options passed to the cache_repair command.\n")
+cfg(global_display_dm_name_for_lv_name_CFG, "display_dm_name_for_lv_name", global_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_BOOL, DEFAULT_DISPLAY_DM_NAME_FOR_LV_NAME, vsn(2, 2, 98), NULL, 0, NULL, +cfg(global_display_dm_name_for_lv_name_CFG, "display_dm_name_for_lv_name", global_CFG_SECTION, CFG_DEFAULT_COMMENTED, CFG_TYPE_BOOL, DEFAULT_DISPLAY_DM_NAME_FOR_LV_NAME, vsn(2, 2, 98), NULL, 0, NULL,
@ -15,9 +17,11 @@
+ +
cfg(global_system_id_source_CFG, "system_id_source", global_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_SYSTEM_ID_SOURCE, vsn(2, 2, 117), NULL, 0, NULL, cfg(global_system_id_source_CFG, "system_id_source", global_CFG_SECTION, 0, CFG_TYPE_STRING, DEFAULT_SYSTEM_ID_SOURCE, vsn(2, 2, 117), NULL, 0, NULL,
"The method LVM uses to set the local system ID.\n" "The method LVM uses to set the local system ID.\n"
"Volume Groups can also be given a system ID (by\n" "Volume Groups can also be given a system ID (by vgcreate, vgchange,\n"
--- a/lib/config/defaults.h Index: LVM2.2.02.139/lib/config/defaults.h
+++ b/lib/config/defaults.h ===================================================================
--- LVM2.2.02.139.orig/lib/config/defaults.h
+++ LVM2.2.02.139/lib/config/defaults.h
@@ -33,6 +33,7 @@ @@ -33,6 +33,7 @@
#define DEFAULT_OBTAIN_DEVICE_LIST_FROM_UDEV 1 #define DEFAULT_OBTAIN_DEVICE_LIST_FROM_UDEV 1
#define DEFAULT_EXTERNAL_DEVICE_INFO_SOURCE "none" #define DEFAULT_EXTERNAL_DEVICE_INFO_SOURCE "none"
@ -26,9 +30,11 @@
#define DEFAULT_MD_COMPONENT_DETECTION 1 #define DEFAULT_MD_COMPONENT_DETECTION 1
#define DEFAULT_FW_RAID_COMPONENT_DETECTION 0 #define DEFAULT_FW_RAID_COMPONENT_DETECTION 0
#define DEFAULT_MD_CHUNK_ALIGNMENT 1 #define DEFAULT_MD_CHUNK_ALIGNMENT 1
--- a/lib/display/display.c Index: LVM2.2.02.139/lib/display/display.c
+++ b/lib/display/display.c ===================================================================
@@ -462,10 +462,15 @@ int lvdisplay_full(struct cmd_context *c --- LVM2.2.02.139.orig/lib/display/display.c
+++ LVM2.2.02.139/lib/display/display.c
@@ -371,10 +371,15 @@ int lvdisplay_full(struct cmd_context *c
lv->vg->cmd->dev_dir, lv->vg->name, lv->name); lv->vg->cmd->dev_dir, lv->vg->name, lv->name);
else if (lv_is_visible(lv)) { else if (lv_is_visible(lv)) {
/* Thin pool does not have /dev/vg/name link */ /* Thin pool does not have /dev/vg/name link */

View File

@ -16,9 +16,11 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
lib/metadata/lv_manip.c | 34 +++++++++++++++++++++++++++++++--- lib/metadata/lv_manip.c | 34 +++++++++++++++++++++++++++++++---
1 file changed, 31 insertions(+), 3 deletions(-) 1 file changed, 31 insertions(+), 3 deletions(-)
--- a/lib/metadata/lv_manip.c Index: LVM2.2.02.139/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c ===================================================================
@@ -2455,6 +2455,25 @@ static uint32_t _calc_required_extents(s --- LVM2.2.02.139.orig/lib/metadata/lv_manip.c
+++ LVM2.2.02.139/lib/metadata/lv_manip.c
@@ -2518,6 +2518,25 @@ static uint32_t _calc_required_extents(s
return required; return required;
} }
@ -44,7 +46,7 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
static void _clear_areas(struct alloc_state *alloc_state) static void _clear_areas(struct alloc_state *alloc_state)
{ {
uint32_t s; uint32_t s;
@@ -2580,6 +2599,7 @@ static int _find_some_parallel_space(str @@ -2646,6 +2665,7 @@ static int _find_some_parallel_space(str
const struct alloc_parms *alloc_parms = alloc_state->alloc_parms; const struct alloc_parms *alloc_parms = alloc_state->alloc_parms;
unsigned ix = 0; unsigned ix = 0;
unsigned last_ix; unsigned last_ix;
@ -52,16 +54,16 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
struct pv_map *pvm; struct pv_map *pvm;
struct pv_area *pva; struct pv_area *pva;
unsigned preferred_count = 0; unsigned preferred_count = 0;
@@ -2700,9 +2720,17 @@ static int _find_some_parallel_space(str @@ -2766,9 +2786,17 @@ static int _find_some_parallel_space(str
continue; continue;
case USE_AREA: case USE_AREA:
- if(check_areas_separate_tags(ah, alloc_state, ix_offset, - if(check_areas_separate_tags(ah, alloc_state, alloc_state->num_positional_areas,
- ix + ix_offset, pva) >= 0) - ix + alloc_state->num_positional_areas, pva) >= 0)
- goto next_pv; - goto next_pv;
+ ret = check_areas_separate_tags(ah, + ret = check_areas_separate_tags(ah,
+ alloc_state, ix_offset, + alloc_state, alloc_state->num_positional_areas,
+ ix + ix_offset, pva); + ix + alloc_state->num_positional_areas, pva);
+ if (ret >= 0) { + if (ret >= 0) {
+ _replace_required_area(ah, + _replace_required_area(ah,
+ max_to_allocate, + max_to_allocate,

View File

@ -1,10 +1,10 @@
Index: LVM2.2.02.111/lib/filters/filter-type.c Index: LVM2.2.02.141/lib/filters/filter-type.c
=================================================================== ===================================================================
--- LVM2.2.02.111.orig/lib/filters/filter-type.c --- LVM2.2.02.141.orig/lib/filters/filter-type.c
+++ LVM2.2.02.111/lib/filters/filter-type.c +++ LVM2.2.02.141/lib/filters/filter-type.c
@@ -12,6 +12,11 @@ @@ -12,6 +12,11 @@
* along with this program; if not, write to the Free Software Foundation, * along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
+#include <sys/ioctl.h> +#include <sys/ioctl.h>
+#include <linux/fs.h> +#include <linux/fs.h>

View File

@ -1,25 +0,0 @@
DO NOT REMOVE THIS UNLESS YOU ACTUALLY UNDERSTAND WHAT IT DOES
in openSUSE, we do not strip binaries running make install - as this would
result in totally useless -debuginfo packages (while those are generated,
the binaries are striped, so the installed binaries are what we expect)
In this particular case, striping results in build failures of installation-images-openSUSE-extras,
as it creates a list of all required -debuginfo packages, based on the build_id.
Once stripped, the build_id can't be found in any valid -debuginfo, resulting in unresolvable
builds.
Index: LVM2.2.02.120/thin-provisioning-tools-0.5.3/Makefile.in
===================================================================
--- LVM2.2.02.120.orig/thin-provisioning-tools-0.5.3/Makefile.in
+++ LVM2.2.02.120/thin-provisioning-tools-0.5.3/Makefile.in
@@ -111,7 +111,7 @@ MANPATH:=$(DATADIR)/man
vpath %.cc $(TOP_DIR)
INSTALL_DIR = $(INSTALL) -m 755 -d
-INSTALL_PROGRAM = $(INSTALL) -m 755 -s
+INSTALL_PROGRAM = $(INSTALL) -m 755
INSTALL_DATA = $(INSTALL) -p -m 644
ifeq ("@TESTING@", "yes")

View File

@ -0,0 +1,33 @@
From 4b846bba24f8458130fa951f9248a7540084f641 Mon Sep 17 00:00:00 2001
From: Liuhua Wang <lwang@suse.com>
Date: Tue, 29 Dec 2015 15:15:27 +0800
Subject: [PATCH] lvm2-lvmetad.service add Also=lvm2-lvmetad.socket
In order to avoid lvm2-lvmetad.service being activated when package
updating due to `systemctl restart/try-restart .socket` results in
corresponding service being activeted, we removed lvm2-lvmetad.socket
from %preun and %postun(bsc#914415), which causes brokent lvm2-lvmetad
.socket symbolic link left when package being uninstalled.
Add 'Also=lvm2-lvmetad.socket' in '[Install]' section of lvm2-lvmetad.
service to remove lvm2-lvmetad.socket when disable lvm2-lvmetad.service.
References: bsc#960044
Signed-off-by: lwang@suse.com
---
scripts/lvm2_lvmetad_systemd_red_hat.service.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/scripts/lvm2_lvmetad_systemd_red_hat.service.in b/scripts/lvm2_lvmetad_systemd_red_hat.service.in
index 8f4c60d..1deca87 100644
--- a/scripts/lvm2_lvmetad_systemd_red_hat.service.in
+++ b/scripts/lvm2_lvmetad_systemd_red_hat.service.in
@@ -15,4 +15,5 @@ Restart=on-abort
PIDFile=@LVMETAD_PIDFILE@
[Install]
+Also=lvm2-lvmetad.socket
WantedBy=sysinit.target
--
1.8.4.5

View File

@ -1,3 +1,21 @@
-------------------------------------------------------------------
Thu Jan 28 03:47:31 UTC 2016 - lwang@suse.com
- Add 'Also=lvm2-lvmetad.socket' in '[Install]' section of lvm2-lvmetad.
service to remove lvm2-lvmetad.socket when disable lvm2-lvmetad.service.
(bsc#960044)
-------------------------------------------------------------------
Wed Jan 27 05:38:07 UTC 2016 - lwang@suse.com
- Split thin-provisioning-tools from lvm2 package for easier maintenance.
- Update to lvm2-2.02.141 (device-mapper-1.02.115)
- Remove patches:
lvm2-do-not-strip-pdata_tools.patch: thin-provisioning-tools patch
lvmetad.c-ignore-lvmetad-global-handle-on-disconnect.patch:
already in upstream
no_buildroot_shared.diff: LVM_SHARED_PATH dropped by upstream
------------------------------------------------------------------- -------------------------------------------------------------------
Mon Dec 14 14:52:00 CET 2015 - tiwai@suse.de Mon Dec 14 14:52:00 CET 2015 - tiwai@suse.de

View File

@ -1,7 +1,7 @@
# #
# spec file for package lvm2 # spec file for package lvm2
# #
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # Copyright (c) 2016 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -16,9 +16,8 @@
# #
%define lvm2_version 2.02.120 %define lvm2_version 2.02.141
%define device_mapper_version 1.02.97 %define device_mapper_version 1.02.115
%define thin_provisioning_version 0.5.3
%bcond_without clvm %bcond_without clvm
@ -37,15 +36,12 @@ Source8: clvmd.ocf
Source10: cmirrord.ocf Source10: cmirrord.ocf
Source14: baselibs.conf Source14: baselibs.conf
Source16: csm-converter.tar.gz Source16: csm-converter.tar.gz
Source50: thin-provisioning-tools-v%{thin_provisioning_version}.tar.gz
# Upstream patches first # Upstream patches first
Patch1: lvmetad.c-ignore-lvmetad-global-handle-on-disconnect.patch
# SUSE patches 1000- for LVM, 2000- for device mapper # SUSE patches 1000- for LVM, 2000- for device mapper
Patch1001: improve_probing.diff Patch1001: improve_probing.diff
Patch1002: no-inc-audit.diff Patch1002: no-inc-audit.diff
Patch1003: no_buildroot_shared.diff
Patch1004: sys_mount_instead_linux_fs.diff Patch1004: sys_mount_instead_linux_fs.diff
#suse #suse
@ -77,6 +73,7 @@ Patch1016: use-mirrortype-asdefault-whenclvmdrunning.patch
Patch1017: version-plugins-in-libdir Patch1017: version-plugins-in-libdir
Patch1018: dmeventd-fix-dso-name-wrong-compare.patch Patch1018: dmeventd-fix-dso-name-wrong-compare.patch
Patch1019: lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch
# device-mapper patches # device-mapper patches
#suse, bnc#707253(also merged patch for bnc#479104) #suse, bnc#707253(also merged patch for bnc#479104)
@ -88,8 +85,6 @@ Patch2003: device-mapper-link
Patch2004: udev_rules-update.diff Patch2004: udev_rules-update.diff
#suse, bnc#875233 #suse, bnc#875233
Patch2005: udev-Check-for-DM_NR_VALID_PATHS.patch Patch2005: udev-Check-for-DM_NR_VALID_PATHS.patch
# suse, boo#910327 - DO NOT STRIP pdata_tools - Before ever removing this patch, understand the issue
Patch2006: lvm2-do-not-strip-pdata_tools.patch
Patch2007: fsadm-add-support-for-btrfs.patch Patch2007: fsadm-add-support-for-btrfs.patch
Patch2008: Import-ID_FS_XXX-variables-bnc909358.patch Patch2008: Import-ID_FS_XXX-variables-bnc909358.patch
Patch2009: 10-dm.rules-Reset-state-variable-for-spurious-events.patch Patch2009: 10-dm.rules-Reset-state-variable-for-spurious-events.patch
@ -128,12 +123,10 @@ Volume Manager.
%prep %prep
%setup -q -n LVM2.%{version} -a 50 -a 16 %setup -q -n LVM2.%{version} -a 16
%patch1 -p1
%patch1001 -p1 %patch1001 -p1
%patch1002 -p1 %patch1002 -p1
%patch1003 -p1
%patch1004 -p1 %patch1004 -p1
%patch1005 -p1 %patch1005 -p1
%patch1006 -p1 %patch1006 -p1
@ -151,6 +144,7 @@ Volume Manager.
%endif %endif
%patch1017 -p1 %patch1017 -p1
%patch1018 -p1 %patch1018 -p1
%patch1019 -p1
%patch2000 -p1 %patch2000 -p1
%patch2001 -p1 %patch2001 -p1
@ -158,7 +152,6 @@ Volume Manager.
%patch2003 -p1 %patch2003 -p1
%patch2004 -p1 %patch2004 -p1
%patch2005 -p1 %patch2005 -p1
%patch2006 -p1
%patch2007 -p1 %patch2007 -p1
%patch2008 -p1 %patch2008 -p1
%patch2009 -p1 %patch2009 -p1
@ -220,12 +213,6 @@ make %{?_smp_mflags}
popd popd
%endif %endif
pushd thin-provisioning-tools-%{thin_provisioning_version}
autoreconf -fiv
%configure --sbindir=/sbin --prefix="%_prefix"
make %{?_smp_mflags}
popd
%install %install
%make_install %make_install
make install_system_dirs DESTDIR="%buildroot" make install_system_dirs DESTDIR="%buildroot"
@ -269,10 +256,6 @@ pushd "%buildroot/%_sbindir"
ln -sf ../../sbin/lvm lvm ln -sf ../../sbin/lvm lvm
popd popd
pushd thin-provisioning-tools-%{thin_provisioning_version}
%make_install
popd
%pre %pre
%service_add_pre blk-availability.service lvm2-monitor.service lvm2-lvmetad.socket lvm2-lvmetad.service %service_add_pre blk-availability.service lvm2-monitor.service lvm2-lvmetad.socket lvm2-lvmetad.service
@ -461,6 +444,7 @@ BuildRequires: suse-module-tools
BuildRequires: systemd-rpm-macros BuildRequires: systemd-rpm-macros
BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(libudev)
Requires: expat Requires: expat
Requires: thin-provisioning-tools >= 0.5.6
Requires(post): coreutils Requires(post): coreutils
Requires(postun): coreutils Requires(postun): coreutils
PreReq: %insserv_prereq %fillup_prereq PreReq: %insserv_prereq %fillup_prereq
@ -498,20 +482,15 @@ mapper.
/%_lib/libdevmapper-event.so.1.02 /%_lib/libdevmapper-event.so.1.02
/sbin/dmsetup /sbin/dmsetup
/sbin/dmeventd /sbin/dmeventd
%_sbindir/thin_* /sbin/dmstats
%_mandir/man8/dmstats.8.*
%_mandir/man8/dmsetup.8.gz %_mandir/man8/dmsetup.8.gz
%_mandir/man8/dmeventd.8.gz %_mandir/man8/dmeventd.8.gz
%_mandir/man8/thin_*.8*
%_udevrulesdir/10-dm.rules %_udevrulesdir/10-dm.rules
%_udevrulesdir/13-dm-disk.rules %_udevrulesdir/13-dm-disk.rules
%_udevrulesdir/95-dm-notify.rules %_udevrulesdir/95-dm-notify.rules
%_unitdir/dm-event.socket %_unitdir/dm-event.socket
%_unitdir/dm-event.service %_unitdir/dm-event.service
%_sbindir/cache_*
%_sbindir/era_*
%_sbindir/pdata_tools
%_mandir/man8/cache_*.8*
%_mandir/man8/era_*.8*
%package -n device-mapper-devel %package -n device-mapper-devel
Summary: Development package for the device mapper Summary: Development package for the device mapper

View File

@ -1,29 +0,0 @@
From f8bf6410954fcf82bf28852e0dba015c6b7f19dc Mon Sep 17 00:00:00 2001
From: Ondrej Kozina <okozina@redhat.com>
Date: Fri, 22 May 2015 14:48:28 +0200
Subject: [PATCH] lvmetad.c: ignore lvmetad global handle on disconnect
do not unset lvmetad global handle on disconnect. This is
hotfix for issue described in:
https://www.redhat.com/archives/linux-lvm/2015-May/msg00008.html
Reported-by: Christian Hesse <list@eworm.de>
---
lib/cache/lvmetad.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/lib/cache/lvmetad.c b/lib/cache/lvmetad.c
index 68162b6..73a382c 100644
--- a/lib/cache/lvmetad.c
+++ b/lib/cache/lvmetad.c
@@ -39,7 +39,6 @@ void lvmetad_disconnect(void)
if (_lvmetad_connected)
daemon_close(_lvmetad);
_lvmetad_connected = 0;
- _lvmetad_cmd = NULL;
}
void lvmetad_init(struct cmd_context *cmd)
--
1.8.4.5

View File

@ -25,10 +25,12 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
man/lvcreate.8.in | 4 ++++ man/lvcreate.8.in | 4 ++++
5 files changed, 60 insertions(+) 5 files changed, 60 insertions(+)
--- a/conf/example.conf.in Index: LVM2.2.02.139/conf/example.conf.in
+++ b/conf/example.conf.in ===================================================================
--- LVM2.2.02.139.orig/conf/example.conf.in
+++ LVM2.2.02.139/conf/example.conf.in
@@ -359,6 +359,23 @@ allocation { @@ -359,6 +359,23 @@ allocation {
# option is used directly. # or erased unless the --wipesignatures option is used directly.
wipe_signatures_when_zeroing_new_lvs = 1 wipe_signatures_when_zeroing_new_lvs = 1
+ # Set to 1 to guarantee that mirror leg will always be placed on + # Set to 1 to guarantee that mirror leg will always be placed on
@ -51,9 +53,11 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
# Configuration option allocation/mirror_logs_require_separate_pvs. # Configuration option allocation/mirror_logs_require_separate_pvs.
# Mirror logs and images will always use different PVs. # Mirror logs and images will always use different PVs.
# The default setting changed in version 2.02.85. # The default setting changed in version 2.02.85.
--- a/lib/config/config_settings.h Index: LVM2.2.02.139/lib/config/config_settings.h
+++ b/lib/config/config_settings.h ===================================================================
@@ -457,6 +457,9 @@ cfg(allocation_mirror_logs_require_separ --- LVM2.2.02.139.orig/lib/config/config_settings.h
+++ LVM2.2.02.139/lib/config/config_settings.h
@@ -449,6 +449,9 @@ cfg(allocation_mirror_logs_require_separ
"Mirror logs and images will always use different PVs.\n" "Mirror logs and images will always use different PVs.\n"
"The default setting changed in version 2.02.85.\n") "The default setting changed in version 2.02.85.\n")
@ -63,9 +67,11 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
cfg(allocation_cache_pool_metadata_require_separate_pvs_CFG, "cache_pool_metadata_require_separate_pvs", allocation_CFG_SECTION, 0, CFG_TYPE_BOOL, DEFAULT_CACHE_POOL_METADATA_REQUIRE_SEPARATE_PVS, vsn(2, 2, 106), NULL, 0, NULL, cfg(allocation_cache_pool_metadata_require_separate_pvs_CFG, "cache_pool_metadata_require_separate_pvs", allocation_CFG_SECTION, 0, CFG_TYPE_BOOL, DEFAULT_CACHE_POOL_METADATA_REQUIRE_SEPARATE_PVS, vsn(2, 2, 106), NULL, 0, NULL,
"Cache pool metadata and data will always use different PVs.\n") "Cache pool metadata and data will always use different PVs.\n")
--- a/lib/config/defaults.h Index: LVM2.2.02.139/lib/config/defaults.h
+++ b/lib/config/defaults.h ===================================================================
@@ -132,6 +132,7 @@ --- LVM2.2.02.139.orig/lib/config/defaults.h
+++ LVM2.2.02.139/lib/config/defaults.h
@@ -144,6 +144,7 @@
#define DEFAULT_MAX_LV 0 #define DEFAULT_MAX_LV 0
#define DEFAULT_ALLOC_POLICY ALLOC_NORMAL #define DEFAULT_ALLOC_POLICY ALLOC_NORMAL
#define DEFAULT_MIRROR_LOGS_REQUIRE_SEPARATE_PVS 0 #define DEFAULT_MIRROR_LOGS_REQUIRE_SEPARATE_PVS 0
@ -73,9 +79,11 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
#define DEFAULT_MAXIMISE_CLING 1 #define DEFAULT_MAXIMISE_CLING 1
#define DEFAULT_CLUSTERED 0 #define DEFAULT_CLUSTERED 0
--- a/lib/metadata/lv_manip.c Index: LVM2.2.02.139/lib/metadata/lv_manip.c
+++ b/lib/metadata/lv_manip.c ===================================================================
@@ -1447,6 +1447,9 @@ struct alloc_handle { --- LVM2.2.02.139.orig/lib/metadata/lv_manip.c
+++ LVM2.2.02.139/lib/metadata/lv_manip.c
@@ -1550,6 +1550,9 @@ struct alloc_handle {
unsigned maximise_cling; unsigned maximise_cling;
unsigned mirror_logs_separate; /* Force mirror logs on separate PVs? */ unsigned mirror_logs_separate; /* Force mirror logs on separate PVs? */
@ -85,7 +93,7 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
/* /*
* RAID devices require a metadata area that accompanies each * RAID devices require a metadata area that accompanies each
@@ -2542,6 +2545,32 @@ static int _limit_to_one_area_per_tag(st @@ -2608,6 +2611,32 @@ static int _limit_to_one_area_per_tag(st
} }
/* /*
@ -118,18 +126,18 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
* Returns 1 regardless of whether any space was found, except on error. * Returns 1 regardless of whether any space was found, except on error.
*/ */
static int _find_some_parallel_space(struct alloc_handle *ah, static int _find_some_parallel_space(struct alloc_handle *ah,
@@ -2671,6 +2700,10 @@ static int _find_some_parallel_space(str @@ -2737,6 +2766,10 @@ static int _find_some_parallel_space(str
continue; continue;
case USE_AREA: case USE_AREA:
+ if(check_areas_separate_tags(ah, alloc_state, ix_offset, + if(check_areas_separate_tags(ah, alloc_state, alloc_state->num_positional_areas,
+ ix + ix_offset, pva) >= 0) + ix + alloc_state->num_positional_areas, pva) >= 0)
+ goto next_pv; + goto next_pv;
+ +
/* /*
* Except with ALLOC_ANYWHERE, replace first area with this * Except with ALLOC_ANYWHERE, replace first area with this
* one which is smaller but still big enough. * one which is smaller but still big enough.
@@ -3151,6 +3184,7 @@ static struct alloc_handle *_alloc_init( @@ -3220,6 +3253,7 @@ static struct alloc_handle *_alloc_init(
ah->parity_count = parity_count; ah->parity_count = parity_count;
ah->region_size = region_size; ah->region_size = region_size;
ah->alloc = alloc; ah->alloc = alloc;
@ -137,7 +145,7 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
/* /*
* For the purposes of allocation, area_count and parity_count are * For the purposes of allocation, area_count and parity_count are
@@ -3162,6 +3196,7 @@ static struct alloc_handle *_alloc_init( @@ -3231,6 +3265,7 @@ static struct alloc_handle *_alloc_init(
ah->area_multiple = _calc_area_multiple(segtype, area_count + parity_count, stripes); ah->area_multiple = _calc_area_multiple(segtype, area_count + parity_count, stripes);
//FIXME: s/mirror_logs_separate/metadata_separate/ so it can be used by others? //FIXME: s/mirror_logs_separate/metadata_separate/ so it can be used by others?
ah->mirror_logs_separate = find_config_tree_bool(cmd, allocation_mirror_logs_require_separate_pvs_CFG, NULL); ah->mirror_logs_separate = find_config_tree_bool(cmd, allocation_mirror_logs_require_separate_pvs_CFG, NULL);
@ -145,9 +153,11 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
if (mirrors || stripes) if (mirrors || stripes)
total_extents = new_extents; total_extents = new_extents;
--- a/man/lvcreate.8.in Index: LVM2.2.02.139/man/lvcreate.8.in
+++ b/man/lvcreate.8.in ===================================================================
@@ -333,6 +333,10 @@ Using \fIcore\fP means the mirror is reg --- LVM2.2.02.139.orig/man/lvcreate.8.in
+++ LVM2.2.02.139/man/lvcreate.8.in
@@ -404,6 +404,10 @@ Using \fBcore\fP means the mirror is reg
from the first device each time the logical volume is activated, from the first device each time the logical volume is activated,
like after every reboot. like after every reboot.
.br .br
@ -155,6 +165,6 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
+same tag, see details(mirror_legs_require_separate_pvs) in lvm.conf. +same tag, see details(mirror_legs_require_separate_pvs) in lvm.conf.
+ +
+.br +.br
Using \fImirrored\fP will create a persistent log that is itself mirrored. Using \fBmirrored\fP will create a persistent log that is itself mirrored.
.TP .
.BR \-\-monitor " {" \fIy | \fIn } .HP

View File

@ -1,7 +1,7 @@
Index: LVM2.2.02.111/lib/device/dev-io.c Index: LVM2.2.02.141/lib/device/dev-io.c
=================================================================== ===================================================================
--- LVM2.2.02.111.orig/lib/device/dev-io.c --- LVM2.2.02.141.orig/lib/device/dev-io.c
+++ LVM2.2.02.111/lib/device/dev-io.c +++ LVM2.2.02.141/lib/device/dev-io.c
@@ -30,6 +30,7 @@ @@ -30,6 +30,7 @@
# define u64 uint64_t /* Missing without __KERNEL__ */ # define u64 uint64_t /* Missing without __KERNEL__ */
# undef WNOHANG /* Avoid redefinition */ # undef WNOHANG /* Avoid redefinition */
@ -10,12 +10,12 @@ Index: LVM2.2.02.111/lib/device/dev-io.c
# include <linux/fs.h> /* For block ioctl definitions */ # include <linux/fs.h> /* For block ioctl definitions */
# define BLKSIZE_SHIFT SECTOR_SHIFT # define BLKSIZE_SHIFT SECTOR_SHIFT
# ifndef BLKGETSIZE64 /* fs.h out-of-date */ # ifndef BLKGETSIZE64 /* fs.h out-of-date */
Index: LVM2.2.02.111/lib/filters/filter-type.c Index: LVM2.2.02.141/lib/filters/filter-type.c
=================================================================== ===================================================================
--- LVM2.2.02.111.orig/lib/filters/filter-type.c --- LVM2.2.02.141.orig/lib/filters/filter-type.c
+++ LVM2.2.02.111/lib/filters/filter-type.c +++ LVM2.2.02.141/lib/filters/filter-type.c
@@ -13,6 +13,7 @@ @@ -13,6 +13,7 @@
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#include <sys/ioctl.h> #include <sys/ioctl.h>
+#define _LINUX_AUDIT_H_ +#define _LINUX_AUDIT_H_

View File

@ -1,13 +0,0 @@
Index: LVM2.2.02.111/tools/Makefile.in
===================================================================
--- LVM2.2.02.111.orig/tools/Makefile.in
+++ LVM2.2.02.111/tools/Makefile.in
@@ -110,7 +110,7 @@ LVMLIBS += -ldevmapper
EXPORTED_HEADER = $(srcdir)/lvm2cmd.h
EXPORTED_FN_PREFIX = lvm2
-DEFS += -DLVM_SHARED_PATH=\"$(exec_prefix)/sbin/lvm\"
+DEFS += -DLVM_SHARED_PATH=\"/sbin/lvm\"
CFLOW_LIST = lvmcmdlib.c lvm2cmd.c
CFLOW_LIST_TARGET = liblvm2cmd.cflow

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6d6856dbca2f0fcf23ece171a8e68a4a7054350a3810958da37615358695597e
size 191431

View File

@ -2,9 +2,11 @@
tools/lvcreate.c | 28 ++++++++++++++++++++++++++-- tools/lvcreate.c | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-) 1 file changed, 26 insertions(+), 2 deletions(-)
--- a/tools/lvcreate.c Index: LVM2.2.02.139/tools/lvcreate.c
+++ b/tools/lvcreate.c ===================================================================
@@ -834,6 +834,28 @@ static int _read_activation_params(struc --- LVM2.2.02.139.orig/tools/lvcreate.c
+++ LVM2.2.02.139/tools/lvcreate.c
@@ -639,6 +639,28 @@ static int _read_activation_params(struc
return 1; return 1;
} }
@ -33,12 +35,12 @@
static int _lvcreate_params(struct cmd_context *cmd, static int _lvcreate_params(struct cmd_context *cmd,
int argc, char **argv, int argc, char **argv,
struct lvcreate_params *lp, struct lvcreate_params *lp,
@@ -860,6 +882,8 @@ static int _lvcreate_params(struct lvcre @@ -689,6 +711,8 @@ static int _lvcreate_params(struct cmd_c
mirror_default_cfg = (arg_uint_value(cmd, stripes_ARG, 1) > 1) mirror_default_cfg = (arg_uint_value(cmd, stripes_ARG, 1) > 1)
? global_raid10_segtype_default_CFG : global_mirror_segtype_default_CFG; ? global_raid10_segtype_default_CFG : global_mirror_segtype_default_CFG;
segtype_str = find_config_tree_str(cmd, mirror_default_cfg, NULL); segtype_str = find_config_tree_str(cmd, mirror_default_cfg, NULL);
+ if(clvmd_daemon_is_running()) + if(clvmd_daemon_is_running())
+ segtype_str = "mirror"; + segtype_str = "mirror";
} else } else
segtype_str = "striped"; segtype_str = SEG_TYPE_NAME_STRIPED;