master - lvconvert: add missing reshape_len initialization
by Heinz Mauelshagen
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=7a064303fe1a14e205a...
Commit: 7a064303fe1a14e205a50abc5a54e38467fcb455
Parent: 964114950ce3ce0539a47b966494868285679ef8
Author: Heinz Mauelshagen <heinzm(a)redhat.com>
AuthorDate: Tue Feb 28 23:29:03 2017 +0100
Committer: Heinz Mauelshagen <heinzm(a)redhat.com>
CommitterDate: Tue Feb 28 23:29:03 2017 +0100
lvconvert: add missing reshape_len initialization
An initialization was missing when converting striped to raid0(_meta)
causing unitialized reshape_len in the new component LVs first segment.
Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978
---
lib/metadata/raid_manip.c | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/lib/metadata/raid_manip.c b/lib/metadata/raid_manip.c
index b8447a0..6cc1c12 100644
--- a/lib/metadata/raid_manip.c
+++ b/lib/metadata/raid_manip.c
@@ -4166,6 +4166,10 @@ static struct lv_segment *_convert_striped_to_raid0(struct logical_volume *lv,
if (alloc_metadata_devs && !_raid0_add_or_remove_metadata_lvs(lv, 0, allocate_pvs, NULL))
return NULL;
+ /* Initialize reshape len properly after adding the image component list */
+ if (!_lv_set_reshape_len(lv, 0))
+ return_0;
+
if (update_and_reload && !lv_update_and_reload(lv))
return NULL;
6 years, 6 months
master - lvconvert: adjust mininum region size check
by Heinz Mauelshagen
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=964114950ce3ce0539a...
Commit: 964114950ce3ce0539a47b966494868285679ef8
Parent: 1828822bd8ad773d57d90841cb4036b49f3653b1
Author: Heinz Mauelshagen <heinzm(a)redhat.com>
AuthorDate: Tue Feb 28 23:09:30 2017 +0100
Committer: Heinz Mauelshagen <heinzm(a)redhat.com>
CommitterDate: Tue Feb 28 23:10:37 2017 +0100
lvconvert: adjust mininum region size check
The imposed minimum region size can cause rejection on
disk removing reshapes. Lower it to avoid that.
Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978
---
lib/metadata/raid_manip.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/lib/metadata/raid_manip.c b/lib/metadata/raid_manip.c
index 34e8856..b8447a0 100644
--- a/lib/metadata/raid_manip.c
+++ b/lib/metadata/raid_manip.c
@@ -106,7 +106,7 @@ static int _check_region_size_constraints(struct logical_volume *lv,
return 0;
}
- if (region_size * 8 > lv->size) {
+ if (region_size > lv->size) {
log_error("Regionsize too large for %s LV %s.",
segtype->name, display_lvname(lv));
return 0;
6 years, 6 months
master - help: print full usage for lvm help all
by David Teigland
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=1828822bd8ad773d57d...
Commit: 1828822bd8ad773d57d90841cb4036b49f3653b1
Parent: ce1e5b99915cf45530e25628f02537136045c938
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Tue Feb 28 15:57:30 2017 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Tue Feb 28 15:58:14 2017 -0600
help: print full usage for lvm help all
---
tools/lvmcmdline.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
index 9b20d9f..d440987 100644
--- a/tools/lvmcmdline.c
+++ b/tools/lvmcmdline.c
@@ -1732,7 +1732,7 @@ static void _usage_all(void)
for (i = 0; i < MAX_COMMAND_NAMES; i++) {
if (!command_names[i].name)
break;
- _usage(command_names[i].name, 0);
+ _usage(command_names[i].name, 1);
}
}
6 years, 6 months
master - lvconvert: adjust reshaping check to target version
by Heinz Mauelshagen
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=ce1e5b99915cf45530e...
Commit: ce1e5b99915cf45530e25628f02537136045c938
Parent: 80a6de616a19e1be2e4125878ee904e5a1eeedf9
Author: Heinz Mauelshagen <heinzm(a)redhat.com>
AuthorDate: Tue Feb 28 22:46:25 2017 +0100
Committer: Heinz Mauelshagen <heinzm(a)redhat.com>
CommitterDate: Tue Feb 28 22:46:25 2017 +0100
lvconvert: adjust reshaping check to target version
https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/c...
sets the dm-raid target version to 1.10.1.
Adjust the condition to set RAID_RESHAPE_FEATURE to it.
Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978
---
lib/metadata/segtype.h | 2 +-
lib/raid/raid.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/metadata/segtype.h b/lib/metadata/segtype.h
index bea7141..a7a3857 100644
--- a/lib/metadata/segtype.h
+++ b/lib/metadata/segtype.h
@@ -286,7 +286,7 @@ struct segment_type *init_unknown_segtype(struct cmd_context *cmd,
#define RAID_FEATURE_RAID0 (1U << 1) /* version 1.7 */
#define RAID_FEATURE_RESHAPING (1U << 2) /* version 1.8 */
#define RAID_FEATURE_RAID4 (1U << 3) /* ! version 1.8 or 1.9.0 */
-#define RAID_FEATURE_RESHAPE (1U << 4) /* version 1.10.2 */
+#define RAID_FEATURE_RESHAPE (1U << 4) /* version 1.10.1 */
#ifdef RAID_INTERNAL
int init_raid_segtypes(struct cmd_context *cmd, struct segtype_library *seglib);
diff --git a/lib/raid/raid.c b/lib/raid/raid.c
index 9ab2e6c..6815454 100644
--- a/lib/raid/raid.c
+++ b/lib/raid/raid.c
@@ -496,7 +496,7 @@ static int _raid_target_present(struct cmd_context *cmd,
SEG_TYPE_NAME_RAID4);
if (maj > 1 ||
- (maj == 1 && (min > 10 || (min == 10 && patchlevel >= 2))))
+ (maj == 1 && (min > 10 || (min == 10 && patchlevel >= 1))))
_raid_attrs |= RAID_FEATURE_RESHAPE;
}
6 years, 6 months
master - lvconvert: libdm RAID API compatibility versioning
by Heinz Mauelshagen
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=80a6de616a19e1be2e4...
Commit: 80a6de616a19e1be2e4125878ee904e5a1eeedf9
Parent: 21456dcf7fc062518202f133ad27594eda4278fb
Author: Heinz Mauelshagen <heinzm(a)redhat.com>
AuthorDate: Tue Feb 28 22:34:00 2017 +0100
Committer: Heinz Mauelshagen <heinzm(a)redhat.com>
CommitterDate: Tue Feb 28 22:34:00 2017 +0100
lvconvert: libdm RAID API compatibility versioning
Commit 27384c52cf6a lowered the maximum number of devices
back to 64 for compatibility.
Because more members have been added to the API in
'struct dm_tree_node_raid_params *', we have to version
the public libdm RAID API to not break any existing users.
Changes:
- keep the previous 'struct dm_tree_node_raid_params' and
dm_tree_node_add_raid_target_with_params()/dm_tree_node_add_raid_target()
in order to expose the already released public RAID API
- introduce 'struct dm_tree_node_raid_params_v2' and additional functions
dm_tree_node_add_raid_target_with_params_v2()/dm_tree_node_add_raid_target_v2()
to be used by the new lvm2 lib reshape extentions
With this new API, the bitfields for rebuild/writemostly legs in
'struct dm_tree_node_raid_params_v2' can be raised to 256 bits
again (253 legs maximum supported in MD kernel).
Mind that we can limit the maximum usable number via the
DEFAULT_RAID{1}_MAX_IMAGES definition in defaults.h.
Related: rhbz834579
Related: rhbz1191935
Related: rhbz1191978
---
lib/raid/raid.c | 4 +-
libdm/.exported_symbols.DM_1_02_138 | 2 +
libdm/libdevmapper.h | 63 +++++++++++++++++++++++++-----
libdm/libdm-deptree.c | 73 +++++++++++++++++++++++++++++++---
4 files changed, 123 insertions(+), 19 deletions(-)
diff --git a/lib/raid/raid.c b/lib/raid/raid.c
index 59db437..9ab2e6c 100644
--- a/lib/raid/raid.c
+++ b/lib/raid/raid.c
@@ -242,7 +242,7 @@ static int _raid_add_target_line(struct dev_manager *dm __attribute__((unused)),
uint64_t flags = 0;
uint64_t rebuilds[RAID_BITMAP_SIZE];
uint64_t writemostly[RAID_BITMAP_SIZE];
- struct dm_tree_node_raid_params params;
+ struct dm_tree_node_raid_params_v2 params;
memset(¶ms, 0, sizeof(params));
memset(&rebuilds, 0, sizeof(rebuilds));
@@ -333,7 +333,7 @@ static int _raid_add_target_line(struct dev_manager *dm __attribute__((unused)),
params.stripe_size = seg->stripe_size;
params.flags = flags;
- if (!dm_tree_node_add_raid_target_with_params(node, len, ¶ms))
+ if (!dm_tree_node_add_raid_target_with_params_v2(node, len, ¶ms))
return_0;
return add_areas_line(dm, seg, node, 0u, seg->area_count);
diff --git a/libdm/.exported_symbols.DM_1_02_138 b/libdm/.exported_symbols.DM_1_02_138
index 3ebc59d..43e4111 100644
--- a/libdm/.exported_symbols.DM_1_02_138
+++ b/libdm/.exported_symbols.DM_1_02_138
@@ -3,3 +3,5 @@ dm_bit_get_prev
dm_stats_update_regions_from_fd
dm_bitset_parse_list
dm_stats_bind_from_fd
+dm_tree_node_add_raid_target_v2
+dm_tree_node_add_raid_target_with_params_v2
diff --git a/libdm/libdevmapper.h b/libdm/libdevmapper.h
index 7136261..b515f6d 100644
--- a/libdm/libdevmapper.h
+++ b/libdm/libdevmapper.h
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
- * Copyright (C) 2004-2015 Red Hat, Inc. All rights reserved.
+ * Copyright (C) 2004-2017 Red Hat, Inc. All rights reserved.
* Copyright (C) 2006 Rackable Systems All rights reserved.
*
* This file is part of the device-mapper userspace tools.
@@ -1720,9 +1720,18 @@ int dm_tree_node_add_raid_target(struct dm_tree_node *node,
const char *raid_type,
uint32_t region_size,
uint32_t stripe_size,
- uint64_t *rebuilds,
+ uint64_t rebuilds,
uint64_t flags);
+/* Version 2 coping with 253 (MD kernel limitation) devices */
+int dm_tree_node_add_raid_target_v2(struct dm_tree_node *node,
+ uint64_t size,
+ const char *raid_type,
+ uint32_t region_size,
+ uint32_t stripe_size,
+ uint64_t *rebuilds,
+ uint64_t flags);
+
/*
* Defines below are based on kernel's dm-cache.c defines
* DM_CACHE_MIN_DATA_BLOCK_SIZE (32 * 1024 >> SECTOR_SHIFT)
@@ -1742,13 +1751,7 @@ int dm_tree_node_add_raid_target(struct dm_tree_node *node,
/*
* Define number of elements in rebuild and writemostly arrays
* 'of struct dm_tree_node_raid_params'.
- *
- * Set to one to keep the current libdm API!
- *
- * If we ever raise the maximum number of RAID devices past 64 thus
- * changing the API, we have to version it for backwards API compatibility.
*/
-#define RAID_BITMAP_SIZE 1
struct dm_tree_node_raid_params {
const char *raid_type;
@@ -1758,6 +1761,42 @@ struct dm_tree_node_raid_params {
uint32_t region_size;
uint32_t stripe_size;
+ /*
+ * 'rebuilds' and 'writemostly' are bitfields that signify
+ * which devices in the array are to be rebuilt or marked
+ * writemostly. The kernel supports up to 253 legs.
+ * We limit ourselves by choosing a lower value
+ * for DEFAULT_RAID{1}_MAX_IMAGES in defaults.h.
+ */
+ uint64_t rebuilds;
+ uint64_t writemostly;
+ uint32_t writebehind; /* I/Os (kernel default COUNTER_MAX / 2) */
+ uint32_t sync_daemon_sleep; /* ms (kernel default = 5sec) */
+ uint32_t max_recovery_rate; /* kB/sec/disk */
+ uint32_t min_recovery_rate; /* kB/sec/disk */
+ uint32_t stripe_cache; /* sectors */
+
+ uint64_t flags; /* [no]sync */
+ uint32_t reserved2;
+};
+
+/*
+ * Version 2 of above node raid params struct to keeep API compatibility.
+ *
+ * Extended for more than 64 legs (max 253 in the MD kernel runtime!),
+ * delta_disks for disk add/remove reshaping,
+ * data_offset for out-of-place reshaping
+ * and data_copies for odd number of raid10 legs.
+ */
+#define RAID_BITMAP_SIZE 4 /* 4 * 64 bit elements in rebuilds/writemostly arrays */
+struct dm_tree_node_raid_params_v2 {
+ const char *raid_type;
+
+ uint32_t stripes;
+ uint32_t mirrors;
+ uint32_t region_size;
+ uint32_t stripe_size;
+
int delta_disks; /* +/- number of disks to add/remove (reshaping) */
int data_offset; /* data offset to set (out-of-place reshaping) */
@@ -1771,20 +1810,24 @@ struct dm_tree_node_raid_params {
uint64_t rebuilds[RAID_BITMAP_SIZE];
uint64_t writemostly[RAID_BITMAP_SIZE];
uint32_t writebehind; /* I/Os (kernel default COUNTER_MAX / 2) */
+ uint32_t data_copies; /* RAID # of data copies */
uint32_t sync_daemon_sleep; /* ms (kernel default = 5sec) */
uint32_t max_recovery_rate; /* kB/sec/disk */
uint32_t min_recovery_rate; /* kB/sec/disk */
- uint32_t data_copies; /* RAID # of data copies */
uint32_t stripe_cache; /* sectors */
uint64_t flags; /* [no]sync */
- uint64_t reserved2;
};
int dm_tree_node_add_raid_target_with_params(struct dm_tree_node *node,
uint64_t size,
const struct dm_tree_node_raid_params *p);
+/* Version 2 API function taking dm_tree_node_raid_params_v2 for aforementioned extensions. */
+int dm_tree_node_add_raid_target_with_params_v2(struct dm_tree_node *node,
+ uint64_t size,
+ const struct dm_tree_node_raid_params_v2 *p);
+
/* Cache feature_flags */
#define DM_CACHE_FEATURE_WRITEBACK 0x00000001
#define DM_CACHE_FEATURE_WRITETHROUGH 0x00000002
diff --git a/libdm/libdm-deptree.c b/libdm/libdm-deptree.c
index a26cfcc..79117d2 100644
--- a/libdm/libdm-deptree.c
+++ b/libdm/libdm-deptree.c
@@ -3314,14 +3314,13 @@ int dm_tree_node_add_raid_target_with_params(struct dm_tree_node *node,
seg->region_size = p->region_size;
seg->stripe_size = p->stripe_size;
seg->area_count = 0;
- seg->delta_disks = p->delta_disks;
- seg->data_offset = p->data_offset;
- memcpy(seg->rebuilds, p->rebuilds, sizeof(seg->rebuilds));
- memcpy(seg->writemostly, p->writemostly, sizeof(seg->writemostly));
+ memset(seg->rebuilds, 0, sizeof(seg->rebuilds));
+ seg->rebuilds[0] = p->rebuilds;
+ memset(seg->writemostly, 0, sizeof(seg->writemostly));
+ seg->writemostly[0] = p->writemostly;
seg->writebehind = p->writebehind;
seg->min_recovery_rate = p->min_recovery_rate;
seg->max_recovery_rate = p->max_recovery_rate;
- seg->data_copies = p->data_copies;
seg->flags = p->flags;
return 1;
@@ -3332,19 +3331,79 @@ int dm_tree_node_add_raid_target(struct dm_tree_node *node,
const char *raid_type,
uint32_t region_size,
uint32_t stripe_size,
- uint64_t *rebuilds,
+ uint64_t rebuilds,
uint64_t flags)
{
struct dm_tree_node_raid_params params = {
.raid_type = raid_type,
.region_size = region_size,
.stripe_size = stripe_size,
+ .rebuilds = rebuilds,
+ .flags = flags
+ };
+
+ return dm_tree_node_add_raid_target_with_params(node, size, ¶ms);
+}
+
+/*
+ * Version 2 of dm_tree_node_add_raid_target() allowing for:
+ *
+ * - maximum 253 legs in a raid set (MD kernel limitation)
+ * - delta_disks for disk add/remove reshaping
+ * - data_offset for out-of-place reshaping
+ * - data_copies to cope witth odd numbers of raid10 disks
+ */
+int dm_tree_node_add_raid_target_with_params_v2(struct dm_tree_node *node,
+ uint64_t size,
+ const struct dm_tree_node_raid_params_v2 *p)
+{
+ unsigned i;
+ struct load_segment *seg = NULL;
+
+ for (i = 0; i < DM_ARRAY_SIZE(_dm_segtypes) && !seg; ++i)
+ if (!strcmp(p->raid_type, _dm_segtypes[i].target))
+ if (!(seg = _add_segment(node,
+ _dm_segtypes[i].type, size)))
+ return_0;
+ if (!seg) {
+ log_error("Unsupported raid type %s.", p->raid_type);
+ return 0;
+ }
+
+ seg->region_size = p->region_size;
+ seg->stripe_size = p->stripe_size;
+ seg->area_count = 0;
+ seg->delta_disks = p->delta_disks;
+ seg->data_offset = p->data_offset;
+ memcpy(seg->rebuilds, p->rebuilds, sizeof(seg->rebuilds));
+ memcpy(seg->writemostly, p->writemostly, sizeof(seg->writemostly));
+ seg->writebehind = p->writebehind;
+ seg->data_copies = p->data_copies;
+ seg->min_recovery_rate = p->min_recovery_rate;
+ seg->max_recovery_rate = p->max_recovery_rate;
+ seg->flags = p->flags;
+
+ return 1;
+}
+
+int dm_tree_node_add_raid_target_v2(struct dm_tree_node *node,
+ uint64_t size,
+ const char *raid_type,
+ uint32_t region_size,
+ uint32_t stripe_size,
+ uint64_t *rebuilds,
+ uint64_t flags)
+{
+ struct dm_tree_node_raid_params_v2 params = {
+ .raid_type = raid_type,
+ .region_size = region_size,
+ .stripe_size = stripe_size,
.flags = flags
};
memcpy(params.rebuilds, rebuilds, sizeof(params.rebuilds));
- return dm_tree_node_add_raid_target_with_params(node, size, ¶ms);
+ return dm_tree_node_add_raid_target_with_params_v2(node, size, ¶ms);
}
int dm_tree_node_add_cache_target(struct dm_tree_node *node,
6 years, 6 months
master - commands: include lvconvert cache options as group
by David Teigland
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=21456dcf7fc06251820...
Commit: 21456dcf7fc062518202f133ad27594eda4278fb
Parent: 89661981e829d2cb228e3db6f8127d14526ea025
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Tue Feb 28 13:47:46 2017 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Tue Feb 28 13:47:46 2017 -0600
commands: include lvconvert cache options as group
---
tools/command-lines.in | 15 +++++++--------
1 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/tools/command-lines.in b/tools/command-lines.in
index 26c2deb..1727bbb 100644
--- a/tools/command-lines.in
+++ b/tools/command-lines.in
@@ -310,6 +310,9 @@ OO_LVCONVERT_RAID: --mirrors SNumber, --stripes_long Number,
OO_LVCONVERT_POOL: --poolmetadata LV, --poolmetadatasize SizeMB,
--poolmetadataspare Bool, --readahead Readahead, --chunksize SizeKB
+OO_LVCONVERT_CACHE: --cachemode CacheMode, --cachepolicy String,
+--cachesettings String, --zero Bool
+
OO_LVCONVERT: --alloc Alloc, --background, --force, --noudevsync
---
@@ -434,16 +437,14 @@ RULE: all not lv_is_locked
---
lvconvert --type cache --cachepool LV LV_linear_striped_raid_thinpool
-OO: --cache, --cachemode CacheMode, --cachepolicy String,
---cachesettings String, --zero Bool, OO_LVCONVERT_POOL, OO_LVCONVERT
+OO: --cache, OO_LVCONVERT_CACHE, OO_LVCONVERT_POOL, OO_LVCONVERT
ID: lvconvert_to_cache_vol
DESC: Convert LV to type cache.
RULE: all and lv_is_visible
# alternate form of lvconvert --type cache
lvconvert --cache --cachepool LV LV_linear_striped_raid_thinpool
-OO: --type cache, --cachemode CacheMode, --cachepolicy String,
---cachesettings String, --zero Bool, OO_LVCONVERT_POOL, OO_LVCONVERT
+OO: --type cache, OO_LVCONVERT_CACHE, OO_LVCONVERT_POOL, OO_LVCONVERT
ID: lvconvert_to_cache_vol
DESC: Convert LV to type cache (variant, infers --type cache).
FLAGS: SECONDARY_SYNTAX
@@ -494,8 +495,7 @@ FLAGS: PREVIOUS_SYNTAX
---
lvconvert --type cache-pool LV_linear_striped_raid
-OO: OO_LVCONVERT_POOL, OO_LVCONVERT,
---cachemode CacheMode, --cachepolicy String, --cachesettings String
+OO: OO_LVCONVERT_CACHE, OO_LVCONVERT_POOL, OO_LVCONVERT
OP: PV ...
ID: lvconvert_to_cachepool
DESC: Convert LV to type cache-pool.
@@ -523,8 +523,7 @@ DESC: Convert LV to type cache-pool.
# of creating a pool or swapping metadata should be used.
lvconvert --cachepool LV_linear_striped_raid_cachepool
-OO: --type cache-pool, OO_LVCONVERT_POOL, OO_LVCONVERT,
---cachemode CacheMode, --cachepolicy String, --cachesettings String
+OO: --type cache-pool, OO_LVCONVERT_CACHE, OO_LVCONVERT_POOL, OO_LVCONVERT
OP: PV ...
ID: lvconvert_to_cachepool_or_swap_metadata
DESC: Convert LV to type cache-pool (variant, use --type cache-pool).
6 years, 6 months
master - man: fix syntax for PV ranges
by David Teigland
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=89661981e829d2cb228...
Commit: 89661981e829d2cb228e3db6f8127d14526ea025
Parent: 4a14617dc4413911b3af0cfea38cd5c2fe45afa8
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Tue Feb 28 12:22:12 2017 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Tue Feb 28 12:22:12 2017 -0600
man: fix syntax for PV ranges
---
tools/command.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/command.c b/tools/command.c
index 59818f9..a8c38ba 100644
--- a/tools/command.c
+++ b/tools/command.c
@@ -2733,8 +2733,8 @@ void print_man_all_positions_desc(struct command_name *cname)
printf("Physical Volume name, a device path under /dev.\n"
"For commands managing physical extents, a PV positional arg\n"
"generally accepts a suffix indicating a range of physical extents.\n"
- "Start and end range (inclusive): \\fIPV\\fP[:\\fIPE\\fP[-\\fIPE\\fP].\n"
- "Start and length range (counting from 0): \\fIPV\\fP[:\\fIPE\\fP[+\\fIPE\\fP].\n");
+ "Start and end range (inclusive): \\fIPV\\fP[\\fB:\\fP\\fIPE\\fP[\\fB-\\fP\\fIPE\\fP]].\n"
+ "Start and length range (counting from 0): \\fIPV\\fP[\\fB:\\fP\\fIPE\\fP[\\fB+\\fP\\fIPE\\fP]].\n");
}
if (has_tag_val) {
6 years, 6 months
master - commands: remove lvconvert raid rule
by David Teigland
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=4a14617dc4413911b3a...
Commit: 4a14617dc4413911b3af0cfea38cd5c2fe45afa8
Parent: f9d28f1aeccaa923dfe31fda982d2a5fd5ef0f2d
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Mon Feb 27 17:06:08 2017 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Mon Feb 27 17:06:08 2017 -0600
commands: remove lvconvert raid rule
A raid0 LV also needs to be converted to other
raid levels, so this rule should be removed entirely.
---
tools/command-lines.in | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/tools/command-lines.in b/tools/command-lines.in
index 3105966..26c2deb 100644
--- a/tools/command-lines.in
+++ b/tools/command-lines.in
@@ -347,7 +347,6 @@ OP: PV ...
ID: lvconvert_raid_types
DESC: Convert LV to raid or change raid layout.
RULE: all not lv_is_locked lv_is_pvmove
-RULE: LV_raid not LV_raid0
lvconvert --mirrors SNumber LV
OO: OO_LVCONVERT_RAID, OO_LVCONVERT, --mirrorlog MirrorLog
6 years, 6 months
master - man: mention regionsize default is in lvm.conf
by David Teigland
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=f9d28f1aeccaa923dfe...
Commit: f9d28f1aeccaa923dfe31fda982d2a5fd5ef0f2d
Parent: 998151e83e5f1673266ffad213a35b377c3a999b
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Mon Feb 27 17:05:20 2017 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Mon Feb 27 17:05:20 2017 -0600
man: mention regionsize default is in lvm.conf
---
tools/args.h | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/tools/args.h b/tools/args.h
index dd25007..f4eec0b 100644
--- a/tools/args.h
+++ b/tools/args.h
@@ -1230,7 +1230,9 @@ arg(resizefs_ARG, 'r', "resizefs", 0, 0, 0,
arg(reset_ARG, 'R', "reset", 0, 0, 0, NULL)
arg(regionsize_ARG, 'R', "regionsize", regionsize_VAL, 0, 0,
- "Size of each raid or mirror synchronization region.\n")
+ "Size of each raid or mirror synchronization region.\n"
+ "lvm.conf activation/raid_region_size can be used to\n"
+ "configure a default.\n")
arg(physicalextentsize_ARG, 's', "physicalextentsize", sizemb_VAL, 0, 0,
"#vgcreate\n"
6 years, 6 months
master - commands: fix lvconvert raid rule
by David Teigland
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=998151e83e5f1673266...
Commit: 998151e83e5f1673266ffad213a35b377c3a999b
Parent: 8d0df0c011f23095cf028c556db15b531ca91ea5
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Mon Feb 27 16:33:38 2017 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Mon Feb 27 16:33:38 2017 -0600
commands: fix lvconvert raid rule
Recent rule change was incorrect.
We want to allow 'lvconvert --type raid' on raid1 LVs.
---
tools/command-lines.in | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/tools/command-lines.in b/tools/command-lines.in
index f8e0db7..3105966 100644
--- a/tools/command-lines.in
+++ b/tools/command-lines.in
@@ -347,7 +347,7 @@ OP: PV ...
ID: lvconvert_raid_types
DESC: Convert LV to raid or change raid layout.
RULE: all not lv_is_locked lv_is_pvmove
-RULE: LV_raid not LV_raid0 LV_raid1
+RULE: LV_raid not LV_raid0
lvconvert --mirrors SNumber LV
OO: OO_LVCONVERT_RAID, OO_LVCONVERT, --mirrorlog MirrorLog
6 years, 6 months