mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
alloc: Move _log_parallel_areas.
This commit is contained in:
parent
7837fbc1c1
commit
68adf2c199
@ -1,6 +1,6 @@
|
|||||||
Version 2.02.165 -
|
Version 2.02.165 -
|
||||||
===================================
|
===================================
|
||||||
Disallow segtype and mirror conversions of raid10 volumes.
|
Disallow mirror conversions of raid10 volumes.
|
||||||
Fix dmeventd unmonitoring when segment type (and dso) changes.
|
Fix dmeventd unmonitoring when segment type (and dso) changes.
|
||||||
Don't allow lvconvert --repair on raid0 devices or attempt to monitor them.
|
Don't allow lvconvert --repair on raid0 devices or attempt to monitor them.
|
||||||
No longer adjust incorrect number of raid stripes supplied to lvcreate.
|
No longer adjust incorrect number of raid stripes supplied to lvcreate.
|
||||||
|
@ -1674,49 +1674,6 @@ static void _init_alloc_parms(struct alloc_handle *ah,
|
|||||||
alloc_parms->flags |= A_CAN_SPLIT;
|
alloc_parms->flags |= A_CAN_SPLIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _log_parallel_areas(struct dm_pool *mem, struct dm_list *parallel_areas)
|
|
||||||
{
|
|
||||||
struct seg_pvs *spvs;
|
|
||||||
struct pv_list *pvl;
|
|
||||||
char *pvnames;
|
|
||||||
|
|
||||||
if (!parallel_areas)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
dm_list_iterate_items(spvs, parallel_areas) {
|
|
||||||
if (!dm_pool_begin_object(mem, 256)) {
|
|
||||||
log_error("dm_pool_begin_object failed");
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
dm_list_iterate_items(pvl, &spvs->pvs) {
|
|
||||||
if (!dm_pool_grow_object(mem, pv_dev_name(pvl->pv), strlen(pv_dev_name(pvl->pv)))) {
|
|
||||||
log_error("dm_pool_grow_object failed");
|
|
||||||
dm_pool_abandon_object(mem);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (!dm_pool_grow_object(mem, " ", 1)) {
|
|
||||||
log_error("dm_pool_grow_object failed");
|
|
||||||
dm_pool_abandon_object(mem);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!dm_pool_grow_object(mem, "\0", 1)) {
|
|
||||||
log_error("dm_pool_grow_object failed");
|
|
||||||
dm_pool_abandon_object(mem);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
pvnames = dm_pool_end_object(mem);
|
|
||||||
log_debug_alloc("Parallel PVs at LE %" PRIu32 " length %" PRIu32 ": %s",
|
|
||||||
spvs->le, spvs->len, pvnames);
|
|
||||||
dm_pool_free(mem, pvnames);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Handles also stacking */
|
/* Handles also stacking */
|
||||||
static int _setup_lv_size(struct logical_volume *lv, uint32_t extents)
|
static int _setup_lv_size(struct logical_volume *lv, uint32_t extents)
|
||||||
{
|
{
|
||||||
@ -2198,6 +2155,49 @@ static int _has_matching_pv_tag(struct pv_match *pvmatch, struct pv_segment *pvs
|
|||||||
return _pvs_have_matching_tag(pvmatch->cling_tag_list_cn, pvseg->pv, pva->map->pv);
|
return _pvs_have_matching_tag(pvmatch->cling_tag_list_cn, pvseg->pv, pva->map->pv);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int _log_parallel_areas(struct dm_pool *mem, struct dm_list *parallel_areas)
|
||||||
|
{
|
||||||
|
struct seg_pvs *spvs;
|
||||||
|
struct pv_list *pvl;
|
||||||
|
char *pvnames;
|
||||||
|
|
||||||
|
if (!parallel_areas)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
dm_list_iterate_items(spvs, parallel_areas) {
|
||||||
|
if (!dm_pool_begin_object(mem, 256)) {
|
||||||
|
log_error("dm_pool_begin_object failed");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dm_list_iterate_items(pvl, &spvs->pvs) {
|
||||||
|
if (!dm_pool_grow_object(mem, pv_dev_name(pvl->pv), strlen(pv_dev_name(pvl->pv)))) {
|
||||||
|
log_error("dm_pool_grow_object failed");
|
||||||
|
dm_pool_abandon_object(mem);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
if (!dm_pool_grow_object(mem, " ", 1)) {
|
||||||
|
log_error("dm_pool_grow_object failed");
|
||||||
|
dm_pool_abandon_object(mem);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!dm_pool_grow_object(mem, "\0", 1)) {
|
||||||
|
log_error("dm_pool_grow_object failed");
|
||||||
|
dm_pool_abandon_object(mem);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
pvnames = dm_pool_end_object(mem);
|
||||||
|
log_debug_alloc("Parallel PVs at LE %" PRIu32 " length %" PRIu32 ": %s",
|
||||||
|
spvs->le, spvs->len, pvnames);
|
||||||
|
dm_pool_free(mem, pvnames);
|
||||||
|
}
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Is PV area contiguous to PV segment?
|
* Is PV area contiguous to PV segment?
|
||||||
*/
|
*/
|
||||||
|
Loading…
Reference in New Issue
Block a user