mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
RAID: '--test' should not cause a valid create command to fail
It is necessary when creating a RAID LV to clear the new metadata areas. Failure to do so could result in a prepopulated bitmap that would cause the new array to skip syncing portions of the array. It is a requirement that the metadata LVs be activated and cleared in the process of creating. However in test mode, this requirement should be lifted - no new LVs should be created or written to.
This commit is contained in:
parent
c3eb3a7687
commit
b49b98d50c
@ -1,5 +1,6 @@
|
|||||||
Version 2.02.98 -
|
Version 2.02.98 -
|
||||||
=================================
|
=================================
|
||||||
|
Fix RAID LV creation with '--test' so valid commands do not fail.
|
||||||
Add lvm_lv_rename() to lvm2api.
|
Add lvm_lv_rename() to lvm2api.
|
||||||
Fix setvbuf code by closing and reopening stream before changing buffer.
|
Fix setvbuf code by closing and reopening stream before changing buffer.
|
||||||
Disable private buffering when using liblvm.
|
Disable private buffering when using liblvm.
|
||||||
|
@ -2623,6 +2623,12 @@ static int _lv_extend_layered_lv(struct alloc_handle *ah,
|
|||||||
|
|
||||||
for (s = 0; s < seg->area_count; s++) {
|
for (s = 0; s < seg->area_count; s++) {
|
||||||
meta_lv = seg_metalv(seg, s);
|
meta_lv = seg_metalv(seg, s);
|
||||||
|
|
||||||
|
if (test_mode()) {
|
||||||
|
lv_set_hidden(meta_lv);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (!activate_lv(meta_lv->vg->cmd, meta_lv)) {
|
if (!activate_lv(meta_lv->vg->cmd, meta_lv)) {
|
||||||
log_error("Failed to activate %s/%s for clearing",
|
log_error("Failed to activate %s/%s for clearing",
|
||||||
meta_lv->vg->name, meta_lv->name);
|
meta_lv->vg->name, meta_lv->name);
|
||||||
|
@ -304,6 +304,9 @@ static int _clear_lv(struct logical_volume *lv)
|
|||||||
{
|
{
|
||||||
int was_active = lv_is_active(lv);
|
int was_active = lv_is_active(lv);
|
||||||
|
|
||||||
|
if (test_mode())
|
||||||
|
return 1;
|
||||||
|
|
||||||
if (!was_active && !activate_lv(lv->vg->cmd, lv)) {
|
if (!was_active && !activate_lv(lv->vg->cmd, lv)) {
|
||||||
log_error("Failed to activate %s for clearing",
|
log_error("Failed to activate %s for clearing",
|
||||||
lv->name);
|
lv->name);
|
||||||
|
Loading…
Reference in New Issue
Block a user