]> sourceware.org Git - lvm2.git/commitdiff
cleanup: relocate size assign
authorZdenek Kabelac <zkabelac@redhat.com>
Mon, 18 Jan 2016 22:22:48 +0000 (23:22 +0100)
committerZdenek Kabelac <zkabelac@redhat.com>
Wed, 20 Jan 2016 12:44:47 +0000 (13:44 +0100)
Directly set thin-pool size when thin data LV size changes.

lib/metadata/lv_manip.c

index b283756dbbdae79d940f8e988165f2489f19fe23..4507f8e6741d64436c0fa70a7e0c4d58446f47d0 100644 (file)
@@ -1730,7 +1730,7 @@ static int _setup_alloced_segment(struct logical_volume *lv, uint64_t status,
                                  uint32_t region_size)
 {
        uint32_t s, extents, area_multiple;
-       struct lv_segment *seg;
+       struct lv_segment *seg, *thin_pool_seg;
 
        area_multiple = _calc_area_multiple(segtype, area_count, 0);
        extents = aa[0].len * area_multiple;
@@ -1753,6 +1753,15 @@ static int _setup_alloced_segment(struct logical_volume *lv, uint64_t status,
        lv->le_count += extents;
        lv->size += (uint64_t) extents * lv->vg->extent_size;
 
+       if (lv_is_thin_pool_data(lv)) {
+               /* Update thin pool segment from the layered LV */
+               thin_pool_seg = get_only_segment_using_this_lv(lv);
+               thin_pool_seg->lv->le_count =
+                       thin_pool_seg->len =
+                       thin_pool_seg->area_len = lv->le_count;
+               thin_pool_seg->lv->size = lv->size;
+       }
+
        return 1;
 }
 
@@ -5239,11 +5248,6 @@ static struct logical_volume *_lvresize_volume(struct cmd_context *cmd,
                                        display_size(cmd, (uint64_t) lv->le_count * vg->extent_size), lv->le_count);
 
        if (lock_lv) {
-               /* Update thin pool segment from the layered LV */
-               seg->area_len = lv->le_count;
-               seg->len = lv->le_count;
-               lock_lv->le_count = lv->le_count;
-               lock_lv->size = lv->size;
        /* If thin metadata, must suspend thin pool */
        } else if (lv_is_thin_pool_metadata(lv)) {
                if (!(lock_lv = find_pool_lv(lv)))
This page took 0.049368 seconds and 5 git commands to generate.