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:
parent
f9d13336dd
commit
32c4fd31de
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8d6bd02f7d00315482538ece3e831cd81709c29d74ce71229c60192fb166081a
|
||||
size 1653183
|
@ -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
3
LVM2.2.02.141.tgz
Normal 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
7
LVM2.2.02.141.tgz.asc
Normal file
@ -0,0 +1,7 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
Version: GnuPG v2.0.14 (GNU/Linux)
|
||||
|
||||
iEYEABECAAYFAlaldhAACgkQIoGRwVZ+LBd+JgCfX58yWPrTHz0LwNzX5FHvvdNT
|
||||
7MsAoJET99QghzwYv9refV2KXs2G5Laj
|
||||
=BMDt
|
||||
-----END PGP SIGNATURE-----
|
@ -9,8 +9,10 @@ Subject: Parallelize dispatching
|
||||
tools/lvconvert.c | 9 ---
|
||||
7 files changed, 109 insertions(+), 81 deletions(-)
|
||||
|
||||
--- a/daemons/cmirrord/Makefile.in
|
||||
+++ b/daemons/cmirrord/Makefile.in
|
||||
Index: LVM2.2.02.139/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
|
||||
|
||||
include $(top_builddir)/make.tmpl
|
||||
@ -20,8 +22,10 @@ Subject: Parallelize dispatching
|
||||
LMLIBS += $(CPG_LIBS) $(SACKPT_LIBS)
|
||||
CFLAGS += $(CPG_CFLAGS) $(SACKPT_CFLAGS) $(EXTRA_EXEC_CFLAGS)
|
||||
LDFLAGS += $(EXTRA_EXEC_LDFLAGS)
|
||||
--- a/daemons/cmirrord/cluster.c
|
||||
+++ b/daemons/cmirrord/cluster.c
|
||||
Index: LVM2.2.02.139/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 @@
|
||||
#include <errno.h>
|
||||
#include <signal.h>
|
||||
@ -30,10 +34,10 @@ Subject: Parallelize dispatching
|
||||
#if CMIRROR_HAS_CHECKPOINT
|
||||
#include <openais/saAis.h>
|
||||
#include <openais/saCkpt.h>
|
||||
@@ -151,9 +152,11 @@ struct clog_cpg {
|
||||
@@ -152,9 +153,11 @@ struct clog_cpg {
|
||||
struct checkpoint_data *checkpoint_list;
|
||||
int idx;
|
||||
char debugging[DEBUGGING_HISTORY][128];
|
||||
char debugging[DEBUGGING_HISTORY][DEBUGGING_BUFLEN];
|
||||
+ pthread_t thread_pid;
|
||||
};
|
||||
|
||||
@ -42,7 +46,7 @@ Subject: Parallelize dispatching
|
||||
|
||||
/*
|
||||
* 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 clog_cpg *entry;
|
||||
|
||||
@ -57,7 +61,7 @@ Subject: Parallelize dispatching
|
||||
|
||||
if (!found) {
|
||||
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;
|
||||
}
|
||||
|
||||
@ -70,7 +74,7 @@ Subject: Parallelize dispatching
|
||||
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;
|
||||
|
||||
@ -85,7 +89,7 @@ Subject: Parallelize dispatching
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@ -132,7 +136,7 @@ Subject: Parallelize dispatching
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@ -176,7 +180,7 @@ Subject: Parallelize dispatching
|
||||
|
||||
/*
|
||||
* 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)
|
||||
{
|
||||
unsigned i;
|
||||
@ -185,7 +189,7 @@ Subject: Parallelize dispatching
|
||||
uint32_t lowest = match->lowest_id;
|
||||
struct clog_request *rq, *n;
|
||||
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? */
|
||||
if (my_cluster_id == left->nodeid) {
|
||||
LOG_DBG("Finalizing leave...");
|
||||
@ -198,7 +202,7 @@ Subject: Parallelize dispatching
|
||||
|
||||
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;
|
||||
int found = 0;
|
||||
|
||||
@ -212,7 +216,7 @@ Subject: Parallelize dispatching
|
||||
|
||||
if (!found) {
|
||||
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
|
||||
cpg_leave_callback(match, left_list,
|
||||
member_list, member_list_entries);
|
||||
@ -229,7 +233,7 @@ Subject: Parallelize dispatching
|
||||
}
|
||||
|
||||
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;
|
||||
struct clog_cpg *new = NULL;
|
||||
struct clog_cpg *tmp;
|
||||
@ -246,7 +250,7 @@ Subject: Parallelize dispatching
|
||||
|
||||
new = malloc(sizeof(*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;
|
||||
@ -266,7 +270,7 @@ Subject: Parallelize dispatching
|
||||
|
||||
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;
|
||||
|
||||
@ -278,8 +282,10 @@ Subject: Parallelize dispatching
|
||||
|
||||
return 0;
|
||||
}
|
||||
--- a/daemons/cmirrord/functions.c
|
||||
+++ b/daemons/cmirrord/functions.c
|
||||
Index: LVM2.2.02.139/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 @@
|
||||
#include <sys/stat.h>
|
||||
#include <time.h>
|
||||
@ -288,7 +294,7 @@ Subject: Parallelize dispatching
|
||||
|
||||
#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_pending_list);
|
||||
|
||||
@ -298,7 +304,7 @@ Subject: Parallelize dispatching
|
||||
static int log_test_bit(dm_bitset_t bs, int bit)
|
||||
{
|
||||
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;
|
||||
|
||||
@ -315,7 +321,7 @@ Subject: Parallelize dispatching
|
||||
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;
|
||||
|
||||
@ -331,7 +337,7 @@ Subject: Parallelize dispatching
|
||||
|
||||
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");
|
||||
}
|
||||
|
||||
@ -341,7 +347,7 @@ Subject: Parallelize dispatching
|
||||
|
||||
return 0;
|
||||
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));
|
||||
|
||||
@ -352,7 +358,7 @@ Subject: Parallelize dispatching
|
||||
if (lc->disk_fd != -1 && close(lc->disk_fd))
|
||||
LOG_ERROR("Failed to close disk log: %s",
|
||||
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;
|
||||
|
||||
/* move log to pending list */
|
||||
@ -366,7 +372,7 @@ Subject: Parallelize dispatching
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -820,9 +842,9 @@ no_disk:
|
||||
@@ -821,9 +843,9 @@ no_disk:
|
||||
if (commit_log && (lc->disk_fd >= 0)) {
|
||||
rq->error = write_log(lc);
|
||||
if (rq->error)
|
||||
@ -378,7 +384,7 @@ Subject: Parallelize dispatching
|
||||
lc->touched = 0;
|
||||
}
|
||||
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 */
|
||||
@ -392,7 +398,7 @@ Subject: Parallelize dispatching
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -1928,7 +1955,6 @@ void log_debug(void)
|
||||
@@ -1929,7 +1956,6 @@ void log_debug(void)
|
||||
|
||||
LOG_ERROR("");
|
||||
LOG_ERROR("LOG COMPONENT DEBUGGING::");
|
||||
@ -400,7 +406,7 @@ Subject: Parallelize dispatching
|
||||
LOG_ERROR("Pending log list:");
|
||||
dm_list_iterate_items(lc, &log_pending_list) {
|
||||
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);
|
||||
}
|
||||
|
||||
@ -408,8 +414,10 @@ Subject: Parallelize dispatching
|
||||
dm_list_iterate_items(lc, &log_list) {
|
||||
LOG_ERROR("%s", lc->uuid);
|
||||
LOG_ERROR(" recoverer : %" PRIu32, lc->recoverer);
|
||||
--- a/daemons/cmirrord/local.c
|
||||
+++ b/daemons/cmirrord/local.c
|
||||
Index: LVM2.2.02.139/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 @@
|
||||
|
||||
static int cn_fd = -1; /* Connector (netlink) socket fd */
|
||||
@ -433,9 +441,11 @@ Subject: Parallelize dispatching
|
||||
|
||||
memset(send_buf, 0, sizeof(send_buf));
|
||||
|
||||
--- a/lib/metadata/mirror.c
|
||||
+++ b/lib/metadata/mirror.c
|
||||
@@ -1946,10 +1946,6 @@ int add_mirror_log(struct cmd_context *c
|
||||
Index: LVM2.2.02.139/lib/metadata/mirror.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;
|
||||
int r = 0;
|
||||
|
||||
@ -446,7 +456,7 @@ Subject: Parallelize dispatching
|
||||
|
||||
if (dm_list_size(&lv->segments) != 1) {
|
||||
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;
|
||||
}
|
||||
|
||||
@ -473,9 +483,11 @@ Subject: Parallelize dispatching
|
||||
|
||||
/* For corelog mirror, activation code depends on
|
||||
* the global mirror_in_sync status. As we are adding
|
||||
--- a/lib/mirror/mirrored.c
|
||||
+++ b/lib/mirror/mirrored.c
|
||||
@@ -361,12 +361,15 @@ static int _add_log(struct dm_pool *mem,
|
||||
Index: LVM2.2.02.139/lib/mirror/mirrored.c
|
||||
===================================================================
|
||||
--- 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;
|
||||
}
|
||||
} else {
|
||||
@ -492,9 +504,11 @@ Subject: Parallelize dispatching
|
||||
log_flags |= DM_CORELOG;
|
||||
}
|
||||
|
||||
--- a/tools/lvconvert.c
|
||||
+++ b/tools/lvconvert.c
|
||||
@@ -1364,15 +1364,6 @@ static int _lvconvert_mirrors_parse_para
|
||||
Index: LVM2.2.02.139/tools/lvconvert.c
|
||||
===================================================================
|
||||
--- 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,
|
||||
arg_is_set(cmd, corelog_ARG) ? MIRROR_LOG_CORE : DEFAULT_MIRRORLOG);
|
||||
|
||||
|
@ -2,11 +2,11 @@ cmirrord: Do not compile in Data and Time to avoid build retriggering in obs
|
||||
|
||||
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.98/daemons/cmirrord/clogd.c
|
||||
@@ -42,7 +42,6 @@ int main(int argc __attribute__((unused)
|
||||
--- LVM2.2.02.139.orig/daemons/cmirrord/clogd.c
|
||||
+++ LVM2.2.02.139/daemons/cmirrord/clogd.c
|
||||
@@ -78,7 +78,6 @@ int main(int argc, char *argv[])
|
||||
kill(getppid(), SIGTERM);
|
||||
|
||||
LOG_PRINT("Starting cmirrord:");
|
||||
|
@ -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.110/man/dmsetup.8.in
|
||||
@@ -45,6 +45,9 @@ dmsetup \(em low level logical volume ma
|
||||
.RI [ device_name ]
|
||||
.RE
|
||||
.br
|
||||
+.B dmsetup export
|
||||
+.I [device_name]
|
||||
+.br
|
||||
.B dmsetup load
|
||||
.I device_name
|
||||
.RB [ \-\-table
|
||||
@@ -309,6 +312,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]
|
||||
--- LVM2.2.02.139.orig/man/dmsetup.8.in
|
||||
+++ LVM2.2.02.139/man/dmsetup.8.in
|
||||
@@ -97,7 +97,15 @@ dmsetup \(em low level logical volume ma
|
||||
..
|
||||
.CMD_LOAD
|
||||
.
|
||||
-.HP
|
||||
+. HP
|
||||
+.B dmsetup
|
||||
+.de CMD_EXPORT
|
||||
+. BR export
|
||||
+. RI [device_name]
|
||||
+..
|
||||
+.CMD_EXPORT
|
||||
+.
|
||||
+. HP
|
||||
.B dmsetup
|
||||
.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
|
||||
+Outputs information in key/value format to be imported by other programs.
|
||||
+.
|
||||
+.HP
|
||||
.BR \-\-udevcookie
|
||||
.IR cookie
|
||||
.br
|
||||
.TP
|
||||
.B deps
|
||||
Index: LVM2.2.02.110/tools/dmsetup.c
|
||||
Index: LVM2.2.02.139/tools/dmsetup.c
|
||||
===================================================================
|
||||
--- LVM2.2.02.110.orig/tools/dmsetup.c
|
||||
+++ LVM2.2.02.110/tools/dmsetup.c
|
||||
@@ -1733,6 +1733,129 @@ static int _status(CMD_ARGS)
|
||||
--- LVM2.2.02.139.orig/tools/dmsetup.c
|
||||
+++ LVM2.2.02.139/tools/dmsetup.c
|
||||
@@ -2177,6 +2177,129 @@ out:
|
||||
return r;
|
||||
}
|
||||
|
||||
@ -157,11 +166,11 @@ Index: LVM2.2.02.110/tools/dmsetup.c
|
||||
/* Show target names and their version numbers */
|
||||
static int _targets(CMD_ARGS)
|
||||
{
|
||||
@@ -3086,6 +3209,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},
|
||||
@@ -5138,6 +5261,7 @@ static struct command _dmsetup_commands[
|
||||
{"deps", "[-o <options>] [<device>]", 0, -1, 1, 0, _deps},
|
||||
{"stats", "<command> [<options>] [<devices>]", 1, -1, 1, 1, _stats},
|
||||
{"status", "[<device>] [--noflush] [--target <target_type>]", 0, -1, 1, 0, _status},
|
||||
+ {"export", "[<device>]", 0, -1, 1, 0, _export},
|
||||
{"table", "[<device>] [--target <target_type>] [--showkeys]", 0, -1, 1, 0, _status},
|
||||
{"wait", "<device> [<event_nr>] [--noflush]", 0, 2, 0, 0, _wait},
|
||||
{"mknodes", "[<device>]", 0, -1, 1, 0, _mknodes},
|
||||
|
@ -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.109/libdm/datastruct/hash.c
|
||||
@@ -19,7 +19,7 @@ struct dm_hash_node {
|
||||
struct dm_hash_node *next;
|
||||
--- LVM2.2.02.139.orig/libdm/datastruct/hash.c
|
||||
+++ LVM2.2.02.139/libdm/datastruct/hash.c
|
||||
@@ -20,7 +20,7 @@ struct dm_hash_node {
|
||||
void *data;
|
||||
unsigned data_len;
|
||||
unsigned keylen;
|
||||
- char key[0];
|
||||
+ unsigned char key[0];
|
||||
};
|
||||
|
||||
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,
|
||||
uint32_t len)
|
||||
{
|
||||
@ -20,7 +20,7 @@ Index: LVM2.2.02.109/libdm/datastruct/hash.c
|
||||
struct dm_hash_node **c;
|
||||
|
||||
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)),
|
||||
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)),
|
||||
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.109/libdm/ioctl/libdm-iface.c
|
||||
@@ -1751,7 +1751,7 @@ static struct dm_ioctl *_do_dm_ioctl(str
|
||||
--- LVM2.2.02.139.orig/libdm/ioctl/libdm-iface.c
|
||||
+++ LVM2.2.02.139/libdm/ioctl/libdm-iface.c
|
||||
@@ -1834,7 +1834,7 @@ static struct dm_ioctl *_do_dm_ioctl(str
|
||||
dmt->secure_data ? "W " : "",
|
||||
dmt->query_inactive_table ? "I " : "",
|
||||
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),
|
||||
dmi->data_size, retry_repeat_count);
|
||||
#ifdef DM_IOCTLS
|
||||
if (ioctl(_control_fd, command, dmi) < 0 &&
|
||||
r = ioctl(_control_fd, command, dmi);
|
||||
|
@ -4,10 +4,12 @@
|
||||
lib/display/display.c | 13 +++++++++----
|
||||
3 files changed, 13 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/lib/config/config_settings.h
|
||||
+++ b/lib/config/config_settings.h
|
||||
@@ -905,6 +905,9 @@ cfg_array(global_cache_check_options_CFG
|
||||
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,
|
||||
Index: LVM2.2.02.139/lib/config/config_settings.h
|
||||
===================================================================
|
||||
--- LVM2.2.02.139.orig/lib/config/config_settings.h
|
||||
+++ 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")
|
||||
|
||||
+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,
|
||||
"The method LVM uses to set the local system ID.\n"
|
||||
"Volume Groups can also be given a system ID (by\n"
|
||||
--- a/lib/config/defaults.h
|
||||
+++ b/lib/config/defaults.h
|
||||
"Volume Groups can also be given a system ID (by vgcreate, vgchange,\n"
|
||||
Index: LVM2.2.02.139/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 @@
|
||||
#define DEFAULT_OBTAIN_DEVICE_LIST_FROM_UDEV 1
|
||||
#define DEFAULT_EXTERNAL_DEVICE_INFO_SOURCE "none"
|
||||
@ -26,9 +30,11 @@
|
||||
#define DEFAULT_MD_COMPONENT_DETECTION 1
|
||||
#define DEFAULT_FW_RAID_COMPONENT_DETECTION 0
|
||||
#define DEFAULT_MD_CHUNK_ALIGNMENT 1
|
||||
--- a/lib/display/display.c
|
||||
+++ b/lib/display/display.c
|
||||
@@ -462,10 +462,15 @@ int lvdisplay_full(struct cmd_context *c
|
||||
Index: LVM2.2.02.139/lib/display/display.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);
|
||||
else if (lv_is_visible(lv)) {
|
||||
/* Thin pool does not have /dev/vg/name link */
|
||||
|
@ -16,9 +16,11 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
||||
lib/metadata/lv_manip.c | 34 +++++++++++++++++++++++++++++++---
|
||||
1 file changed, 31 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/lib/metadata/lv_manip.c
|
||||
+++ b/lib/metadata/lv_manip.c
|
||||
@@ -2455,6 +2455,25 @@ static uint32_t _calc_required_extents(s
|
||||
Index: LVM2.2.02.139/lib/metadata/lv_manip.c
|
||||
===================================================================
|
||||
--- 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;
|
||||
}
|
||||
|
||||
@ -44,7 +46,7 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
||||
static void _clear_areas(struct alloc_state *alloc_state)
|
||||
{
|
||||
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;
|
||||
unsigned ix = 0;
|
||||
unsigned last_ix;
|
||||
@ -52,16 +54,16 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
||||
struct pv_map *pvm;
|
||||
struct pv_area *pva;
|
||||
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;
|
||||
|
||||
case USE_AREA:
|
||||
- if(check_areas_separate_tags(ah, alloc_state, ix_offset,
|
||||
- ix + ix_offset, pva) >= 0)
|
||||
- if(check_areas_separate_tags(ah, alloc_state, alloc_state->num_positional_areas,
|
||||
- ix + alloc_state->num_positional_areas, pva) >= 0)
|
||||
- goto next_pv;
|
||||
+ ret = check_areas_separate_tags(ah,
|
||||
+ alloc_state, ix_offset,
|
||||
+ ix + ix_offset, pva);
|
||||
+ alloc_state, alloc_state->num_positional_areas,
|
||||
+ ix + alloc_state->num_positional_areas, pva);
|
||||
+ if (ret >= 0) {
|
||||
+ _replace_required_area(ah,
|
||||
+ max_to_allocate,
|
||||
|
@ -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.111/lib/filters/filter-type.c
|
||||
--- LVM2.2.02.141.orig/lib/filters/filter-type.c
|
||||
+++ LVM2.2.02.141/lib/filters/filter-type.c
|
||||
@@ -12,6 +12,11 @@
|
||||
* 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 <linux/fs.h>
|
||||
|
@ -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")
|
33
lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch
Normal file
33
lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch
Normal 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
|
||||
|
18
lvm2.changes
18
lvm2.changes
@ -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
|
||||
|
||||
|
39
lvm2.spec
39
lvm2.spec
@ -1,7 +1,7 @@
|
||||
#
|
||||
# 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
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
@ -16,9 +16,8 @@
|
||||
#
|
||||
|
||||
|
||||
%define lvm2_version 2.02.120
|
||||
%define device_mapper_version 1.02.97
|
||||
%define thin_provisioning_version 0.5.3
|
||||
%define lvm2_version 2.02.141
|
||||
%define device_mapper_version 1.02.115
|
||||
|
||||
%bcond_without clvm
|
||||
|
||||
@ -37,15 +36,12 @@ Source8: clvmd.ocf
|
||||
Source10: cmirrord.ocf
|
||||
Source14: baselibs.conf
|
||||
Source16: csm-converter.tar.gz
|
||||
Source50: thin-provisioning-tools-v%{thin_provisioning_version}.tar.gz
|
||||
|
||||
# Upstream patches first
|
||||
Patch1: lvmetad.c-ignore-lvmetad-global-handle-on-disconnect.patch
|
||||
|
||||
# SUSE patches 1000- for LVM, 2000- for device mapper
|
||||
Patch1001: improve_probing.diff
|
||||
Patch1002: no-inc-audit.diff
|
||||
Patch1003: no_buildroot_shared.diff
|
||||
Patch1004: sys_mount_instead_linux_fs.diff
|
||||
|
||||
#suse
|
||||
@ -77,6 +73,7 @@ Patch1016: use-mirrortype-asdefault-whenclvmdrunning.patch
|
||||
|
||||
Patch1017: version-plugins-in-libdir
|
||||
Patch1018: dmeventd-fix-dso-name-wrong-compare.patch
|
||||
Patch1019: lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch
|
||||
|
||||
# device-mapper patches
|
||||
#suse, bnc#707253(also merged patch for bnc#479104)
|
||||
@ -88,8 +85,6 @@ Patch2003: device-mapper-link
|
||||
Patch2004: udev_rules-update.diff
|
||||
#suse, bnc#875233
|
||||
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
|
||||
Patch2008: Import-ID_FS_XXX-variables-bnc909358.patch
|
||||
Patch2009: 10-dm.rules-Reset-state-variable-for-spurious-events.patch
|
||||
@ -128,12 +123,10 @@ Volume Manager.
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q -n LVM2.%{version} -a 50 -a 16
|
||||
%setup -q -n LVM2.%{version} -a 16
|
||||
|
||||
%patch1 -p1
|
||||
%patch1001 -p1
|
||||
%patch1002 -p1
|
||||
%patch1003 -p1
|
||||
%patch1004 -p1
|
||||
%patch1005 -p1
|
||||
%patch1006 -p1
|
||||
@ -151,6 +144,7 @@ Volume Manager.
|
||||
%endif
|
||||
%patch1017 -p1
|
||||
%patch1018 -p1
|
||||
%patch1019 -p1
|
||||
|
||||
%patch2000 -p1
|
||||
%patch2001 -p1
|
||||
@ -158,7 +152,6 @@ Volume Manager.
|
||||
%patch2003 -p1
|
||||
%patch2004 -p1
|
||||
%patch2005 -p1
|
||||
%patch2006 -p1
|
||||
%patch2007 -p1
|
||||
%patch2008 -p1
|
||||
%patch2009 -p1
|
||||
@ -220,12 +213,6 @@ make %{?_smp_mflags}
|
||||
popd
|
||||
%endif
|
||||
|
||||
pushd thin-provisioning-tools-%{thin_provisioning_version}
|
||||
autoreconf -fiv
|
||||
%configure --sbindir=/sbin --prefix="%_prefix"
|
||||
make %{?_smp_mflags}
|
||||
popd
|
||||
|
||||
%install
|
||||
%make_install
|
||||
make install_system_dirs DESTDIR="%buildroot"
|
||||
@ -269,10 +256,6 @@ pushd "%buildroot/%_sbindir"
|
||||
ln -sf ../../sbin/lvm lvm
|
||||
popd
|
||||
|
||||
pushd thin-provisioning-tools-%{thin_provisioning_version}
|
||||
%make_install
|
||||
popd
|
||||
|
||||
%pre
|
||||
%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: pkgconfig(libudev)
|
||||
Requires: expat
|
||||
Requires: thin-provisioning-tools >= 0.5.6
|
||||
Requires(post): coreutils
|
||||
Requires(postun): coreutils
|
||||
PreReq: %insserv_prereq %fillup_prereq
|
||||
@ -498,20 +482,15 @@ mapper.
|
||||
/%_lib/libdevmapper-event.so.1.02
|
||||
/sbin/dmsetup
|
||||
/sbin/dmeventd
|
||||
%_sbindir/thin_*
|
||||
/sbin/dmstats
|
||||
%_mandir/man8/dmstats.8.*
|
||||
%_mandir/man8/dmsetup.8.gz
|
||||
%_mandir/man8/dmeventd.8.gz
|
||||
%_mandir/man8/thin_*.8*
|
||||
%_udevrulesdir/10-dm.rules
|
||||
%_udevrulesdir/13-dm-disk.rules
|
||||
%_udevrulesdir/95-dm-notify.rules
|
||||
%_unitdir/dm-event.socket
|
||||
%_unitdir/dm-event.service
|
||||
%_sbindir/cache_*
|
||||
%_sbindir/era_*
|
||||
%_sbindir/pdata_tools
|
||||
%_mandir/man8/cache_*.8*
|
||||
%_mandir/man8/era_*.8*
|
||||
|
||||
%package -n device-mapper-devel
|
||||
Summary: Development package for the device mapper
|
||||
|
@ -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
|
||||
|
@ -25,10 +25,12 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
||||
man/lvcreate.8.in | 4 ++++
|
||||
5 files changed, 60 insertions(+)
|
||||
|
||||
--- a/conf/example.conf.in
|
||||
+++ b/conf/example.conf.in
|
||||
Index: LVM2.2.02.139/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 {
|
||||
# option is used directly.
|
||||
# or erased unless the --wipesignatures option is used directly.
|
||||
wipe_signatures_when_zeroing_new_lvs = 1
|
||||
|
||||
+ # 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.
|
||||
# Mirror logs and images will always use different PVs.
|
||||
# The default setting changed in version 2.02.85.
|
||||
--- a/lib/config/config_settings.h
|
||||
+++ b/lib/config/config_settings.h
|
||||
@@ -457,6 +457,9 @@ cfg(allocation_mirror_logs_require_separ
|
||||
Index: LVM2.2.02.139/lib/config/config_settings.h
|
||||
===================================================================
|
||||
--- 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"
|
||||
"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,
|
||||
"Cache pool metadata and data will always use different PVs.\n")
|
||||
|
||||
--- a/lib/config/defaults.h
|
||||
+++ b/lib/config/defaults.h
|
||||
@@ -132,6 +132,7 @@
|
||||
Index: LVM2.2.02.139/lib/config/defaults.h
|
||||
===================================================================
|
||||
--- 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_ALLOC_POLICY ALLOC_NORMAL
|
||||
#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_CLUSTERED 0
|
||||
|
||||
--- a/lib/metadata/lv_manip.c
|
||||
+++ b/lib/metadata/lv_manip.c
|
||||
@@ -1447,6 +1447,9 @@ struct alloc_handle {
|
||||
Index: LVM2.2.02.139/lib/metadata/lv_manip.c
|
||||
===================================================================
|
||||
--- 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 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
|
||||
@@ -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.
|
||||
*/
|
||||
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;
|
||||
|
||||
case USE_AREA:
|
||||
+ if(check_areas_separate_tags(ah, alloc_state, ix_offset,
|
||||
+ ix + ix_offset, pva) >= 0)
|
||||
+ if(check_areas_separate_tags(ah, alloc_state, alloc_state->num_positional_areas,
|
||||
+ ix + alloc_state->num_positional_areas, pva) >= 0)
|
||||
+ goto next_pv;
|
||||
+
|
||||
/*
|
||||
* Except with ALLOC_ANYWHERE, replace first area with this
|
||||
* 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->region_size = region_size;
|
||||
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
|
||||
@@ -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);
|
||||
//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);
|
||||
@ -145,9 +153,11 @@ Signed-off-by: Guangliang Zhao <gzhao@suse.com>
|
||||
|
||||
if (mirrors || stripes)
|
||||
total_extents = new_extents;
|
||||
--- a/man/lvcreate.8.in
|
||||
+++ b/man/lvcreate.8.in
|
||||
@@ -333,6 +333,10 @@ Using \fIcore\fP means the mirror is reg
|
||||
Index: LVM2.2.02.139/man/lvcreate.8.in
|
||||
===================================================================
|
||||
--- 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,
|
||||
like after every reboot.
|
||||
.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.
|
||||
+
|
||||
+.br
|
||||
Using \fImirrored\fP will create a persistent log that is itself mirrored.
|
||||
.TP
|
||||
.BR \-\-monitor " {" \fIy | \fIn }
|
||||
Using \fBmirrored\fP will create a persistent log that is itself mirrored.
|
||||
.
|
||||
.HP
|
||||
|
@ -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.111/lib/device/dev-io.c
|
||||
--- LVM2.2.02.141.orig/lib/device/dev-io.c
|
||||
+++ LVM2.2.02.141/lib/device/dev-io.c
|
||||
@@ -30,6 +30,7 @@
|
||||
# define u64 uint64_t /* Missing without __KERNEL__ */
|
||||
# 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 */
|
||||
# define BLKSIZE_SHIFT SECTOR_SHIFT
|
||||
# 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.111/lib/filters/filter-type.c
|
||||
--- LVM2.2.02.141.orig/lib/filters/filter-type.c
|
||||
+++ LVM2.2.02.141/lib/filters/filter-type.c
|
||||
@@ -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>
|
||||
+#define _LINUX_AUDIT_H_
|
||||
|
@ -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
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6d6856dbca2f0fcf23ece171a8e68a4a7054350a3810958da37615358695597e
|
||||
size 191431
|
@ -2,9 +2,11 @@
|
||||
tools/lvcreate.c | 28 ++++++++++++++++++++++++++--
|
||||
1 file changed, 26 insertions(+), 2 deletions(-)
|
||||
|
||||
--- a/tools/lvcreate.c
|
||||
+++ b/tools/lvcreate.c
|
||||
@@ -834,6 +834,28 @@ static int _read_activation_params(struc
|
||||
Index: LVM2.2.02.139/tools/lvcreate.c
|
||||
===================================================================
|
||||
--- 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;
|
||||
}
|
||||
|
||||
@ -33,12 +35,12 @@
|
||||
static int _lvcreate_params(struct cmd_context *cmd,
|
||||
int argc, char **argv,
|
||||
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)
|
||||
? global_raid10_segtype_default_CFG : global_mirror_segtype_default_CFG;
|
||||
segtype_str = find_config_tree_str(cmd, mirror_default_cfg, NULL);
|
||||
+ if(clvmd_daemon_is_running())
|
||||
+ segtype_str = "mirror";
|
||||
} else
|
||||
segtype_str = "striped";
|
||||
segtype_str = SEG_TYPE_NAME_STRIPED;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user