mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
Resume volumes in reverse order to preserve memlock pairing.
If renaming snapshot with virtual origin, the origin is renamed too. But the code must resume LVs in reverse order to properly pair memlock (in cluster locking). (The resume of snapshot resumes origin too and later resume is ignored otherwise.)
This commit is contained in:
parent
eb75125539
commit
60494fe74b
@ -1,5 +1,6 @@
|
||||
Version 2.02.57 -
|
||||
====================================
|
||||
Resume renamed volumes in reverse order to preserve memlock pairing.
|
||||
Drop metadata cache after device was autorepaired and removed from VG.
|
||||
Remove missing flag in metadata if PV reappeared and is empty.
|
||||
Destroy allocated mempool in _vg_read_orphans() error path.
|
||||
|
@ -1767,7 +1767,7 @@ int lv_rename(struct cmd_context *cmd, struct logical_volume *lv,
|
||||
struct volume_group *vg = lv->vg;
|
||||
struct lv_names lv_names;
|
||||
DM_LIST_INIT(lvs_changed);
|
||||
struct lv_list lvl, lvl2;
|
||||
struct lv_list lvl, lvl2, *lvlp;
|
||||
int r = 0;
|
||||
|
||||
/* rename is not allowed on sub LVs */
|
||||
@ -1822,7 +1822,13 @@ int lv_rename(struct cmd_context *cmd, struct logical_volume *lv,
|
||||
if (!(r = vg_commit(vg)))
|
||||
stack;
|
||||
|
||||
resume_lvs(cmd, &lvs_changed);
|
||||
/*
|
||||
* FIXME: resume LVs in reverse order to prevent memory
|
||||
* lock imbalance when resuming virtual snapshot origin
|
||||
* (resume of snapshot resumes origin too)
|
||||
*/
|
||||
dm_list_iterate_back_items(lvlp, &lvs_changed)
|
||||
resume_lv(cmd, lvlp->lv);
|
||||
out:
|
||||
backup(vg);
|
||||
return r;
|
||||
|
Loading…
Reference in New Issue
Block a user