summaryrefslogtreecommitdiffstats
path: root/lib/activate
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2011-12-21 13:09:33 +0000
committerZdenek Kabelac <zkabelac@redhat.com>2011-12-21 13:09:33 +0000
commitc0fcaacb8dcc996e19690e316526aa644ec061f3 (patch)
treed6eb6fe388ac4e24ae589f19cdfc25fc9860cb8c /lib/activate
parent2bc1d7598ea02b8ed8f9f15dd5b65a0e19867d49 (diff)
downloadlvm2-c0fcaacb8dcc996e19690e316526aa644ec061f3.tar.gz
lvm2-c0fcaacb8dcc996e19690e316526aa644ec061f3.tar.xz
lvm2-c0fcaacb8dcc996e19690e316526aa644ec061f3.zip
Thin add dev_manager_thin_pool_percent
dev manager function to read percent info from thin pool.
Diffstat (limited to 'lib/activate')
-rw-r--r--lib/activate/dev_manager.c24
-rw-r--r--lib/activate/dev_manager.h3
2 files changed, 27 insertions, 0 deletions
diff --git a/lib/activate/dev_manager.c b/lib/activate/dev_manager.c
index 23441a11..088684c2 100644
--- a/lib/activate/dev_manager.c
+++ b/lib/activate/dev_manager.c
@@ -872,6 +872,30 @@ static int _belong_to_vg(const char *vgname, const char *name)
#endif
+int dev_manager_thin_pool_percent(struct dev_manager *dm,
+ const struct logical_volume *lv,
+ percent_t *percent)
+{
+ char *name;
+ const char *dlid;
+
+ /*
+ * Build a name for the top layer.
+ */
+ if (!(name = dm_build_dm_name(dm->mem, lv->vg->name, lv->name, thin_layer)))
+ return_0;
+
+ if (!(dlid = build_dm_uuid(dm->mem, lv->lvid.s, thin_layer)))
+ return_0;
+
+ log_debug("Getting device status percentage for %s", name);
+ if (!(_percent(dm, name, dlid, "thin-pool", 0, NULL, percent,
+ NULL, 1)))
+ return_0;
+
+ return 1;
+}
+
/*************************/
/* NEW CODE STARTS HERE */
/*************************/
diff --git a/lib/activate/dev_manager.h b/lib/activate/dev_manager.h
index 9d414b20..55d31879 100644
--- a/lib/activate/dev_manager.h
+++ b/lib/activate/dev_manager.h
@@ -52,6 +52,9 @@ int dev_manager_snapshot_percent(struct dev_manager *dm,
int dev_manager_mirror_percent(struct dev_manager *dm,
const struct logical_volume *lv, int wait,
percent_t *percent, uint32_t *event_nr);
+int dev_manager_thin_pool_percent(struct dev_manager *dm,
+ const struct logical_volume *lv,
+ percent_t *percent);
int dev_manager_suspend(struct dev_manager *dm, struct logical_volume *lv,
struct lv_activate_opts *laopts, int lockfs, int flush_required);
int dev_manager_activate(struct dev_manager *dm, struct logical_volume *lv,