mirror of
git://sourceware.org/git/lvm2.git
synced 2025-03-11 20:58:50 +03:00
Fix internal metadata corruption in lvchange --resync.
This commit is contained in:
parent
ec2bd20886
commit
311961fdb8
@ -1,5 +1,6 @@
|
|||||||
Version 2.02.32 -
|
Version 2.02.32 -
|
||||||
===================================
|
===================================
|
||||||
|
Fix internal metadata corruption in lvchange --resync. (2.02.30)
|
||||||
Fix new parameter validation in vgsplit and test mode. (2.02.30)
|
Fix new parameter validation in vgsplit and test mode. (2.02.30)
|
||||||
Remove redundant cnxman-socket.h file from clvmd directory.
|
Remove redundant cnxman-socket.h file from clvmd directory.
|
||||||
Fix pvs, vgs, lvs error exit status on some error paths.
|
Fix pvs, vgs, lvs error exit status on some error paths.
|
||||||
|
@ -274,6 +274,7 @@ static int lvchange_resync(struct cmd_context *cmd,
|
|||||||
first_seg(lv)->log_lv = NULL;
|
first_seg(lv)->log_lv = NULL;
|
||||||
log_lv->status &= ~MIRROR_LOG;
|
log_lv->status &= ~MIRROR_LOG;
|
||||||
log_lv->status |= VISIBLE_LV;
|
log_lv->status |= VISIBLE_LV;
|
||||||
|
remove_seg_from_segs_using_this_lv(log_lv, first_seg(lv));
|
||||||
|
|
||||||
if (!vg_write(lv->vg)) {
|
if (!vg_write(lv->vg)) {
|
||||||
log_error("Failed to write intermediate VG metadata.");
|
log_error("Failed to write intermediate VG metadata.");
|
||||||
@ -281,6 +282,7 @@ static int lvchange_resync(struct cmd_context *cmd,
|
|||||||
first_seg(lv)->log_lv = log_lv;
|
first_seg(lv)->log_lv = log_lv;
|
||||||
log_lv->status |= MIRROR_LOG;
|
log_lv->status |= MIRROR_LOG;
|
||||||
log_lv->status &= ~VISIBLE_LV;
|
log_lv->status &= ~VISIBLE_LV;
|
||||||
|
add_seg_to_segs_using_this_lv(log_lv, first_seg(lv));
|
||||||
if (!activate_lv(cmd, lv))
|
if (!activate_lv(cmd, lv))
|
||||||
stack;
|
stack;
|
||||||
}
|
}
|
||||||
@ -295,6 +297,7 @@ static int lvchange_resync(struct cmd_context *cmd,
|
|||||||
first_seg(lv)->log_lv = log_lv;
|
first_seg(lv)->log_lv = log_lv;
|
||||||
log_lv->status |= MIRROR_LOG;
|
log_lv->status |= MIRROR_LOG;
|
||||||
log_lv->status &= ~VISIBLE_LV;
|
log_lv->status &= ~VISIBLE_LV;
|
||||||
|
add_seg_to_segs_using_this_lv(log_lv, first_seg(lv));
|
||||||
if (!activate_lv(cmd, lv))
|
if (!activate_lv(cmd, lv))
|
||||||
stack;
|
stack;
|
||||||
}
|
}
|
||||||
@ -326,6 +329,7 @@ static int lvchange_resync(struct cmd_context *cmd,
|
|||||||
first_seg(lv)->log_lv = log_lv;
|
first_seg(lv)->log_lv = log_lv;
|
||||||
log_lv->status |= MIRROR_LOG;
|
log_lv->status |= MIRROR_LOG;
|
||||||
log_lv->status &= ~VISIBLE_LV;
|
log_lv->status &= ~VISIBLE_LV;
|
||||||
|
add_seg_to_segs_using_this_lv(log_lv, first_seg(lv));
|
||||||
}
|
}
|
||||||
|
|
||||||
log_very_verbose("Updating logical volume \"%s\" on disk(s)", lv->name);
|
log_very_verbose("Updating logical volume \"%s\" on disk(s)", lv->name);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user