mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
thin: reload external origin with last thin
External origin could be activated as stand-alone device. When the last thin LV is removed, external origin is no longer the external origin and it's layer property was dropped. Ensure dm table is correct by reloading external origin (when it's active).
This commit is contained in:
parent
c71fefad8d
commit
7db46c4a39
@ -1,5 +1,6 @@
|
||||
Version 2.02.169 -
|
||||
=====================================
|
||||
Fix dm table when the last user of active external origin is removed.
|
||||
Improve reported lvs status for active external origin volume.
|
||||
Fix table load for splitted RAID LV and require explicit activation.
|
||||
Always active splitted RAID LV exclusively locally.
|
||||
|
@ -1264,6 +1264,7 @@ static int _lv_reduce(struct logical_volume *lv, uint32_t extents, int delete)
|
||||
uint32_t count = extents;
|
||||
uint32_t reduction;
|
||||
struct logical_volume *pool_lv;
|
||||
struct logical_volume *external_lv = NULL;
|
||||
|
||||
if (lv_is_merging_origin(lv)) {
|
||||
log_debug_metadata("Dropping snapshot merge of %s to removed origin %s.",
|
||||
@ -1275,6 +1276,9 @@ static int _lv_reduce(struct logical_volume *lv, uint32_t extents, int delete)
|
||||
if (!count)
|
||||
break;
|
||||
|
||||
if (seg->external_lv)
|
||||
external_lv = seg->external_lv;
|
||||
|
||||
if (seg->len <= count) {
|
||||
if (seg->merge_lv) {
|
||||
log_debug_metadata("Dropping snapshot merge of removed %s to origin %s.",
|
||||
@ -1341,6 +1345,12 @@ static int _lv_reduce(struct logical_volume *lv, uint32_t extents, int delete)
|
||||
!lv->vg->fid->fmt->ops->lv_setup(lv->vg->fid, lv))
|
||||
return_0;
|
||||
|
||||
/* Removal of last user enforces refresh */
|
||||
if (external_lv && !lv_is_external_origin(external_lv) &&
|
||||
lv_is_active(external_lv) &&
|
||||
!lv_update_and_reload(external_lv))
|
||||
return_0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user