diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2015-06-24 15:12:43 +0200 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2015-06-24 15:18:49 +0200 |
commit | e217873ed6ef7d77974fa10bfee4609160d7091d (patch) | |
tree | e963c9c2434440443a13646294bf784c56d61c10 | |
parent | cf189a572ae6fa6f7e00047925ebc965e57c6a8b (diff) | |
download | lvm2-e217873ed6ef7d77974fa10bfee4609160d7091d.tar.gz |
snapshot: add synchronization point
Synchronize with udev logic before reusing device as snapshot.
This patch tries to fix the problem with udev, where we manage
to 'active' LV for clearing, then we deactivate such device and
active again as member of 'origin&snapshot' tree all in 1 step.
There needs to be a sync point where udev has time to remove all links,
otherwise we race with scans and we may end-up with mysterious 'free'
links in the system pointing to wrong dm names.
This patch tries to fix failing topology cluster tests..
-rw-r--r-- | WHATS_NEW | 1 | ||||
-rw-r--r-- | lib/metadata/lv_manip.c | 3 |
2 files changed, 4 insertions, 0 deletions
@@ -1,5 +1,6 @@ Version 2.02.123 - ================================= + Add device synchronization point before activating a new snapshot. Add --withspaces to lvmconfig to add spaces in output for better readability. Version 2.02.122 - 20th June 2015 diff --git a/lib/metadata/lv_manip.c b/lib/metadata/lv_manip.c index 07f119a44..de9674339 100644 --- a/lib/metadata/lv_manip.c +++ b/lib/metadata/lv_manip.c @@ -7446,6 +7446,9 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg, goto deactivate_and_revert_new_lv; /* Let's retry on error path */ } + /* Get in sync with deactivation, before reusing LV as snapshot */ + sync_local_dev_names(lv->vg->cmd); + /* Create zero origin volume for spare snapshot */ if (lp->virtual_extents && !(origin_lv = _create_virtual_origin(cmd, vg, lv->name, |