1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-10-28 11:55:55 +03:00

Cleanup unsuccessfully created thin LV

If something fails during creation of thin LV remove such LV
and deactivate in case it's been already tried to activate
(i.e. thin kernel driver fails for some reason.)
This commit is contained in:
Zdenek Kabelac 2011-10-30 22:02:18 +00:00
parent 96279ac1c0
commit f0df05e1dd

View File

@ -4150,7 +4150,7 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg, struct l
!deactivate_lv(cmd, pool_lv)) {
log_error("Failed to deactivate unused pool %s.",
pool_lv->name);
return NULL;
goto revert_new_lv;
}
/*
@ -4159,12 +4159,16 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg, struct l
*/
if (!(first_seg(lv)->device_id =
get_free_pool_device_id(first_seg(pool_lv))))
return_NULL;
get_free_pool_device_id(first_seg(pool_lv)))) {
stack;
goto revert_new_lv;
}
if (!attach_pool_message(first_seg(pool_lv),
DM_THIN_MESSAGE_CREATE_THIN, lv, 0, 0))
return_NULL;
DM_THIN_MESSAGE_CREATE_THIN, lv, 0, 0)) {
stack;
goto revert_new_lv;
}
}
if (lp->log_count &&
@ -4194,7 +4198,7 @@ static struct logical_volume *_lv_create_an_lv(struct volume_group *vg, struct l
if (!activate_lv_excl(cmd, lv)) {
log_error("Aborting. Failed to activate thin %s.",
lv->name);
goto revert_new_lv;
goto deactivate_and_revert_new_lv;
}
} else if (lp->snapshot) {
if (!activate_lv_excl(cmd, lv)) {