mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
storage: Skips backingStore of virtual snapshot lv
lvs outputs "[$lvname_vorigin]" for the virtual snapshot lv (created with "--virtualsize"), and the original device pointed by "$lvname_vorigin" is just for lvm internal use, one should never use it. Per lvm's nameing rules, "[" is not valid as part of the vg/lv name. (man 8 lvm). <quote> VALID NAMES The following characters are valid for VG and LV names: a-z A-Z 0-9 + _ . - VG and LV names cannot begin with a hyphen. There are also various reserved names that are used internally by lvm that can not be used as LV or VG names. A VG cannot be called anything that exists in /dev/ at the time of creation, nor can it be called '.' or '..'. A LV cannot be called '.' '..' 'snapshot' or 'pvmove'. The LV name may also not con‐ tain the strings '_mlog' or '_mimage' </quote> So we can skip the set the lv's backingStore by checking if the name begins with a "[".
This commit is contained in:
parent
83ac18937e
commit
d26b73ca2b
@ -121,7 +121,14 @@ virStorageBackendLogicalMakeVol(virStoragePoolObjPtr pool,
|
||||
}
|
||||
}
|
||||
|
||||
if (groups[1] && !STREQ(groups[1], "")) {
|
||||
/* Skips the backingStore of lv created with "--virtualsize",
|
||||
* its original device "/dev/$vgname/$lvname_vorigin" is
|
||||
* just for lvm internal use, one should never use it.
|
||||
*
|
||||
* (lvs outputs "[$lvname_vorigin] for field "origin" if the
|
||||
* lv is created with "--virtualsize").
|
||||
*/
|
||||
if (groups[1] && !STREQ(groups[1], "") && (groups[1][0] != '[')) {
|
||||
if (virAsprintf(&vol->backingStore.path, "%s/%s",
|
||||
pool->def->target.path, groups[1]) < 0) {
|
||||
virReportOOMError();
|
||||
|
Loading…
x
Reference in New Issue
Block a user