1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-03-10 16:58:47 +03:00

thin: add sub volumes as whole volumes

Do not use origin_only when add log_lv and metadata as a subvolume.
The stacked volume needs to access whole volume in this case.
This commit is contained in:
Zdenek Kabelac 2013-07-15 13:39:53 +02:00
parent e1e986f16d
commit 0443c42e3b
2 changed files with 3 additions and 5 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.99 - Version 2.02.99 -
=================================== ===================================
Add whole log_lv and metadata_lv sub volumes when creating partial tree.
Properly use snapshot layer for origin which is also thin volume. Properly use snapshot layer for origin which is also thin volume.
Avoid generating metadata backup when calling update_pool_lv(). Avoid generating metadata backup when calling update_pool_lv().
Send thin messages also for active thin pool and inactive thin volume. Send thin messages also for active thin pool and inactive thin volume.

View File

@ -1728,22 +1728,19 @@ static int _add_lv_to_dtree(struct dev_manager *dm, struct dm_tree *dtree,
!_add_lv_to_dtree(dm, dtree, seg->external_lv, 1)) /* stack */ !_add_lv_to_dtree(dm, dtree, seg->external_lv, 1)) /* stack */
return_0; return_0;
if (seg->log_lv && if (seg->log_lv &&
!_add_lv_to_dtree(dm, dtree, seg->log_lv, origin_only)) !_add_lv_to_dtree(dm, dtree, seg->log_lv, 0))
return_0; return_0;
if (seg->metadata_lv && if (seg->metadata_lv &&
!_add_lv_to_dtree(dm, dtree, seg->metadata_lv, origin_only)) !_add_lv_to_dtree(dm, dtree, seg->metadata_lv, 0))
return_0; return_0;
if (seg->pool_lv && if (seg->pool_lv &&
!_add_lv_to_dtree(dm, dtree, seg->pool_lv, 1)) /* stack */ !_add_lv_to_dtree(dm, dtree, seg->pool_lv, 1)) /* stack */
return_0; return_0;
for (s = 0; s < seg->area_count; s++) { for (s = 0; s < seg->area_count; s++) {
/* FIXME: raid requires to use '0' instead of preserving
* origin_only value for stacking */
if (seg_type(seg, s) == AREA_LV && seg_lv(seg, s) && if (seg_type(seg, s) == AREA_LV && seg_lv(seg, s) &&
!_add_lv_to_dtree(dm, dtree, seg_lv(seg, s), 0)) !_add_lv_to_dtree(dm, dtree, seg_lv(seg, s), 0))
return_0; return_0;
/* FIXME: raid tests fails with origin_only */
if (seg_is_raid(seg) && if (seg_is_raid(seg) &&
!_add_lv_to_dtree(dm, dtree, seg_metalv(seg, s), 0)) !_add_lv_to_dtree(dm, dtree, seg_metalv(seg, s), 0))
return_0; return_0;