[linux-lvm] libdm cannot swap names between two child volumes
Zdenek Kabelac
zkabelac at redhat.com
Fri Jun 5 08:04:33 UTC 2015
Dne 5.6.2015 v 05:32 M.H. Tsai napsal(a):
> 2015-06-04 20:14 GMT+08:00 Zdenek Kabelac <zkabelac at redhat.com>:
>> Please provide sequence of 'ioctl' where you think there is a bug.
>> (or disclose your code using libdm).
>
> Assume that there's a top-level LV "lv1",
> and two sub-LVs "lv1_child1" and "lv1_child2".
> The table of the top-level LV is "0 1234 my-target-type 253:1 253:2",
> as following:
>
> # dmsetup ls --tree
> vg1-lv1 (253:3)
> ├─ vg1-lv1_child1 (253:1)
> └─ vg1-lv2_child2 (253:2)
The problem with rename is -
you have device 'lv1' you rename it to 'lv2' - yet
those who opened device with the name 'lv1' still thinks
the 'lv1' device exits.
So for safety reason before you 'reuse' any existing name in-use,
there should be 'deactivating' such device first - so there is no 'race' in
name usage.
It's even possible we miss to track full history of active renamed device.
Since you get into strange scenarios when you start to count
with udev event handling and link generating here - it's getting nearly
impossible to synchronize this properly...
Zdenek
More information about the linux-lvm
mailing list