diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2015-11-30 21:24:31 +0100 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2015-12-01 13:01:28 +0100 |
commit | 6336ef98d41b8c5b1435de08855aa66c8fd527c2 (patch) | |
tree | b8850614130eceb1b1231df6c3dec7dbb64dbbbd | |
parent | c717ea5fc0b5096a1655313017611b4305e883d3 (diff) | |
download | lvm2-6336ef98d41b8c5b1435de08855aa66c8fd527c2.tar.gz |
lib: pass mem pool to check_transient_status
check_transient_status() may need to allocate some memory,
so pass in already existing mem pool.
-rw-r--r-- | WHATS_NEW | 1 | ||||
-rw-r--r-- | lib/activate/dev_manager.c | 2 | ||||
-rw-r--r-- | lib/metadata/segtype.h | 3 | ||||
-rw-r--r-- | lib/mirror/mirrored.c | 2 |
4 files changed, 5 insertions, 3 deletions
@@ -1,5 +1,6 @@ Version 2.02.137 - ===================================== + Add mem pool arg for check_transient_status() target function. Avoid misleading error with -m is omitted with lvconvert to raid types. Version 2.02.136 - 28th November 2015 diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c index 4b378452d..4eff5cb74 100644 --- a/lib/activate/dev_manager.c +++ b/lib/activate/dev_manager.c @@ -1114,7 +1114,7 @@ int dev_manager_transient(struct dev_manager *dm, const struct logical_volume *l } if (seg->segtype->ops->check_transient_status && - !seg->segtype->ops->check_transient_status(seg, params)) + !seg->segtype->ops->check_transient_status(dm->mem, seg, params)) goto_out; } while (next); diff --git a/lib/metadata/segtype.h b/lib/metadata/segtype.h index 72c64f9b7..41adf924a 100644 --- a/lib/metadata/segtype.h +++ b/lib/metadata/segtype.h @@ -192,7 +192,8 @@ struct segtype_handler { struct dm_tree_node *node, uint64_t len, uint32_t *pvmove_mirror_count); int (*target_status_compatible) (const char *type); - int (*check_transient_status) (struct lv_segment *seg, char *params); + int (*check_transient_status) (struct dm_pool *mem, + struct lv_segment *seg, char *params); int (*target_percent) (void **target_state, dm_percent_t *percent, struct dm_pool * mem, diff --git a/lib/mirror/mirrored.c b/lib/mirror/mirrored.c index 6e189b2fb..b810c706b 100644 --- a/lib/mirror/mirrored.c +++ b/lib/mirror/mirrored.c @@ -213,7 +213,7 @@ static int _mirrored_target_percent(void **target_state, return 1; } -static int _mirrored_transient_status(struct lv_segment *seg, char *params) +static int _mirrored_transient_status(struct dm_pool *mem, struct lv_segment *seg, char *params) { unsigned i, j; struct logical_volume *lv = seg->lv; |