diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2011-12-21 13:09:33 +0000 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2011-12-21 13:09:33 +0000 |
commit | c0fcaacb8dcc996e19690e316526aa644ec061f3 (patch) | |
tree | d6eb6fe388ac4e24ae589f19cdfc25fc9860cb8c /lib/activate | |
parent | 2bc1d7598ea02b8ed8f9f15dd5b65a0e19867d49 (diff) | |
download | lvm2-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.c | 24 | ||||
-rw-r--r-- | lib/activate/dev_manager.h | 3 |
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, |