mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
toollib: fix segfault when handling selection with historical LVs
When processing historical LVs inside process_each_lv_in_vg for selection, we need to use dummy "_historical_lv" for select_match_lv. This is because a historical LV is not an actual LV, but only a tiny representation with subset of original properties that we recorded (name, uuid...). To use the same processing functions we use for full-fledged non-historical LVs, we need to use the prefilled "_historical_lv" structure which has all the other missing properties hard-coded.
This commit is contained in:
parent
ff6022d400
commit
7ec0726ce3
@ -1,5 +1,6 @@
|
||||
Version 2.03.16 -
|
||||
====================================
|
||||
Fix segfault when handling selection with historical LVs.
|
||||
Add support --vdosettings with lvcreate, lvconvert, lvchange.
|
||||
Fix lossing of delete message on thin-pool extension.
|
||||
|
||||
|
@ -3447,13 +3447,14 @@ int process_each_lv_in_vg(struct cmd_context *cmd, struct volume_group *vg,
|
||||
process_lv = 1;
|
||||
}
|
||||
|
||||
process_lv = process_lv && select_match_lv(cmd, handle, vg, lvl->lv) && _select_matches(handle);
|
||||
_historical_lv.this_glv = glvl->glv;
|
||||
_historical_lv.name = glvl->glv->historical->name;
|
||||
|
||||
process_lv = process_lv && select_match_lv(cmd, handle, vg, &_historical_lv) && _select_matches(handle);
|
||||
|
||||
if (!process_lv)
|
||||
continue;
|
||||
|
||||
_historical_lv.this_glv = glvl->glv;
|
||||
_historical_lv.name = glvl->glv->historical->name;
|
||||
log_very_verbose("Processing historical LV %s in VG %s.", glvl->glv->historical->name, vg->name);
|
||||
|
||||
ret = process_single_lv(cmd, &_historical_lv, handle);
|
||||
|
Loading…
Reference in New Issue
Block a user