1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-02 01:18:26 +03:00

mirror: extend adjusted_mirror_region_size API

We use adjusted_mirror_region_size() in two different contexts.

Either on command line -
 here we do want to inform user about reduction of size.

Or in pvmove activation context -
 here we should only use 'verbose' info.
This commit is contained in:
Zdenek Kabelac 2014-09-22 15:54:33 +02:00
parent fa6482344c
commit 736f40134b
6 changed files with 16 additions and 9 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.112 -
=====================================
Don't print message in adjusted_mirror_region_size() in activation.
Improve lv_update_and_reload() to find out proper lock holding LV.
Improve search of LV in lv_ondisk().
Do not scan sysfs in lv_check_not_in_use() when device is closed.

View File

@ -6849,7 +6849,7 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg,
lp->region_size = adjusted_mirror_region_size(vg->extent_size,
lp->extents,
lp->region_size);
lp->region_size, 0);
}
if (!(lv = lv_create_empty(new_lv_name ? : "lvol%d", NULL,

View File

@ -1000,7 +1000,7 @@ int is_temporary_mirror_layer(const struct logical_volume *lv);
struct logical_volume * find_temporary_mirror(const struct logical_volume *lv);
uint32_t lv_mirror_count(const struct logical_volume *lv);
uint32_t adjusted_mirror_region_size(uint32_t extent_size, uint32_t extents,
uint32_t region_size);
uint32_t region_size, int internal);
int remove_mirrors_from_segments(struct logical_volume *lv,
uint32_t new_mirrors, uint64_t status_mask);
int add_mirrors_to_segments(struct cmd_context *cmd, struct logical_volume *lv,

View File

@ -156,9 +156,11 @@ struct lv_segment *find_mirror_seg(struct lv_segment *seg)
/*
* Reduce the region size if necessary to ensure
* the volume size is a multiple of the region size.
*
* For internal use only log only in verbose mode
*/
uint32_t adjusted_mirror_region_size(uint32_t extent_size, uint32_t extents,
uint32_t region_size)
uint32_t region_size, int internal)
{
uint64_t region_max;
@ -166,8 +168,12 @@ uint32_t adjusted_mirror_region_size(uint32_t extent_size, uint32_t extents,
if (region_max < UINT32_MAX && region_size > region_max) {
region_size = (uint32_t) region_max;
log_print_unless_silent("Using reduced mirror region size of %" PRIu32
" sectors", region_size);
if (!internal)
log_print_unless_silent("Using reduced mirror region size of %"
PRIu32 " sectors.", region_size);
else
log_verbose("Using reduced mirror region size of %"
PRIu32 " sectors.", region_size);
}
return region_size;
@ -1697,7 +1703,7 @@ static int _add_mirrors_that_preserve_segments(struct logical_volume *lv,
adjusted_region_size = adjusted_mirror_region_size(lv->vg->extent_size,
lv->le_count,
region_size);
region_size, 1);
if (!(ah = allocate_extents(lv->vg, NULL, segtype, 1, mirrors, 0, 0,
lv->le_count, allocatable_pvs, alloc, 0,

View File

@ -440,7 +440,7 @@ static int _mirrored_add_target_line(struct dev_manager *dm, struct dm_pool *mem
} else
region_size = adjusted_mirror_region_size(seg->lv->vg->extent_size,
seg->area_len,
mirr_state->default_region_size);
mirr_state->default_region_size, 1);
if (!dm_tree_node_add_mirror_target(node, len))
return_0;

View File

@ -1155,7 +1155,7 @@ static int _lv_update_log_type(struct cmd_context *cmd,
if (old_log_count < log_count) {
region_size = adjusted_mirror_region_size(lv->vg->extent_size,
lv->le_count,
region_size);
region_size, 0);
if (!add_mirror_log(cmd, original_lv, log_count,
region_size, operable_pvs, alloc))
@ -1386,7 +1386,7 @@ static int _lvconvert_mirrors_aux(struct cmd_context *cmd,
region_size = adjusted_mirror_region_size(lv->vg->extent_size,
lv->le_count,
lp->region_size);
lp->region_size, 0);
if (!operable_pvs)
operable_pvs = lp->pvh;