From c16ca6907029c32f5d61b3ba43e33d20e973eb06 Mon Sep 17 00:00:00 2001 From: Alasdair Kergon Date: Tue, 17 Aug 2010 01:51:12 +0000 Subject: [PATCH] Fix dev_manager_transient to access -real device not snapshot-origin. (brassow) Another reminder why cloning functions impedes maintenance. --- WHATS_NEW | 1 + lib/activate/dev_manager.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/WHATS_NEW b/WHATS_NEW index d622e8d48..6ac2f2205 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.73 - ================================ + Fix dev_manager_transient to access -real device not snapshot-origin. Monitor origin -real device below snapshot instead of overlay device. Don't really change monitoring status when in test mode. Fix some exit statuses when starting/stopping monitoring fails. diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c index e30a62e91..f091f743b 100644 --- a/lib/activate/dev_manager.c +++ b/lib/activate/dev_manager.c @@ -548,6 +548,7 @@ static int _percent(struct dev_manager *dm, const char *name, const char *dlid, return 0; } +/* FIXME Merge with the percent function */ int dev_manager_transient(struct dev_manager *dm, struct logical_volume *lv) { int r = 0; @@ -558,10 +559,11 @@ int dev_manager_transient(struct dev_manager *dm, struct logical_volume *lv) char *type = NULL; char *params = NULL; char *dlid = NULL; + char *suffix = lv_is_origin(lv) ? "real" : NULL; const struct dm_list *segh = &lv->segments; struct lv_segment *seg = NULL; - if (!(dlid = build_dm_uuid(dm->mem, lv->lvid.s, NULL))) + if (!(dlid = build_dm_uuid(dm->mem, lv->lvid.s, suffix))) return_0; if (!(dmt = _setup_task(0, dlid, NULL, DM_DEVICE_STATUS, 0, 0))) -- 2.43.5