mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
lvconvert: suppress zeroing warning when converting to thin
When volume was lvconvert-ed to a thin-volume with external origin, then in case thin-pool was in non-zeroing mode it's been printing WARNING about not zeroing thin volume - but this is wanted and expected - so nothing to warn about. So in this particular use case WARNING needs to be suppressed. Adding parameter support for lvcreate_params. So now lvconvert creates 'normal thin LV' in read-only mode (so any read will 'return 0' for a moment) then deactivate regular thin LV and reacreate in 'final R/RW' mode thin LV with external origin and activate again.
This commit is contained in:
parent
f66ae6e80f
commit
5636bfd83d
@ -1,5 +1,6 @@
|
|||||||
Version 2.02.162 -
|
Version 2.02.162 -
|
||||||
=================================
|
=================================
|
||||||
|
Suppress not zeroing warn when converting to thin LV for non-zeroing tpool.
|
||||||
Fix automatic updates of PV extension headers to newest version.
|
Fix automatic updates of PV extension headers to newest version.
|
||||||
Improve lvconvert --trackchanges validation to require --splitmirrors 1.
|
Improve lvconvert --trackchanges validation to require --splitmirrors 1.
|
||||||
Add note about lastlog built-in command to lvm man page.
|
Add note about lastlog built-in command to lvm man page.
|
||||||
|
@ -7592,7 +7592,7 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg,
|
|||||||
goto deactivate_and_revert_new_lv;
|
goto deactivate_and_revert_new_lv;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_should_wipe_lv(lp, lv, 1)) {
|
if (_should_wipe_lv(lp, lv, !lp->suppress_zero_warn)) {
|
||||||
if (!wipe_lv(lv, (struct wipe_params)
|
if (!wipe_lv(lv, (struct wipe_params)
|
||||||
{
|
{
|
||||||
.do_zero = lp->zero,
|
.do_zero = lp->zero,
|
||||||
|
@ -922,6 +922,7 @@ struct lvcreate_params {
|
|||||||
#define THIN_CHUNK_SIZE_CALC_METHOD_GENERIC 0x01
|
#define THIN_CHUNK_SIZE_CALC_METHOD_GENERIC 0x01
|
||||||
#define THIN_CHUNK_SIZE_CALC_METHOD_PERFORMANCE 0x02
|
#define THIN_CHUNK_SIZE_CALC_METHOD_PERFORMANCE 0x02
|
||||||
int thin_chunk_size_calc_policy;
|
int thin_chunk_size_calc_policy;
|
||||||
|
unsigned suppress_zero_warn : 1;
|
||||||
unsigned needs_lockd_init : 1;
|
unsigned needs_lockd_init : 1;
|
||||||
|
|
||||||
const char *vg_name; /* only-used when VG is not yet opened (in /tools) */
|
const char *vg_name; /* only-used when VG is not yet opened (in /tools) */
|
||||||
|
@ -2679,6 +2679,7 @@ static int _lvconvert_thin(struct cmd_context *cmd,
|
|||||||
.lv_name = lp->origin_name,
|
.lv_name = lp->origin_name,
|
||||||
.major = -1,
|
.major = -1,
|
||||||
.minor = -1,
|
.minor = -1,
|
||||||
|
.suppress_zero_warn = 1, /* Suppress warning for this thin */
|
||||||
.permission = LVM_READ,
|
.permission = LVM_READ,
|
||||||
.pool_name = pool_lv->name,
|
.pool_name = pool_lv->name,
|
||||||
.pvh = &vg->pvs,
|
.pvh = &vg->pvs,
|
||||||
@ -2735,7 +2736,9 @@ static int _lvconvert_thin(struct cmd_context *cmd,
|
|||||||
if (!archive(vg))
|
if (!archive(vg))
|
||||||
return_0;
|
return_0;
|
||||||
|
|
||||||
/* New thin LV needs to be created (all messages sent to pool) */
|
/* New thin LV needs to be created (all messages sent to pool)
|
||||||
|
* In this case thin volume is created READ-ONLY and
|
||||||
|
* also warn about not zeroing is suppressed. */
|
||||||
if (!(torigin_lv = lv_create_single(vg, &lvc)))
|
if (!(torigin_lv = lv_create_single(vg, &lvc)))
|
||||||
return_0;
|
return_0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user