mirror of
git://sourceware.org/git/lvm2.git
synced 2025-03-28 02:50:41 +03:00
Thin fix tpool layer
Since we support snapshots of thin volumes, we could have more layers, so we have to check whether tpool layer is going to be inserted. As the _add_segment_to_dtree() is the only place that adds tpool segment, we may just check pointer (no strcmp for layer). Switch to use seg_is_ function instead of lv_is_.
This commit is contained in:
parent
fb7817fe7c
commit
8ec016236a
@ -1455,6 +1455,7 @@ static int _add_segment_to_dtree(struct dev_manager *dm,
|
||||
struct lv_segment *seg_present;
|
||||
const char *target_name;
|
||||
struct lv_activate_opts lva;
|
||||
static const char tpool_layer[] = "tpool";
|
||||
|
||||
/* Ensure required device-mapper targets are loaded */
|
||||
seg_present = find_cow(seg->lv) ? : seg;
|
||||
@ -1499,15 +1500,14 @@ static int _add_segment_to_dtree(struct dev_manager *dm,
|
||||
} else if (lv_is_cow(seg->lv) && !layer) {
|
||||
if (!_add_new_lv_to_dtree(dm, dtree, seg->lv, laopts, "cow"))
|
||||
return_0;
|
||||
} else if (!layer && (lv_is_thin_pool(seg->lv) ||
|
||||
lv_is_thin_volume(seg->lv))) {
|
||||
} else if ((layer != tpool_layer) && seg_is_thin(seg)) {
|
||||
lva = *laopts;
|
||||
lva.real_pool = 1;
|
||||
if (!_add_new_lv_to_dtree(dm, dtree, lv_is_thin_pool(seg->lv) ?
|
||||
seg->lv : seg->pool_lv, &lva, "tpool"))
|
||||
if (!_add_new_lv_to_dtree(dm, dtree, seg_is_thin_pool(seg) ?
|
||||
seg->lv : seg->pool_lv, &lva, tpool_layer))
|
||||
return_0;
|
||||
} else {
|
||||
if (lv_is_thin_pool(seg->lv) &&
|
||||
if (seg_is_thin_pool(seg) &&
|
||||
!_add_new_lv_to_dtree(dm, dtree, seg->pool_metadata_lv, laopts, NULL))
|
||||
return_0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user