diff options
author | Zdenek Kabelac <zkabelac@redhat.com> | 2018-07-02 21:58:18 +0200 |
---|---|---|
committer | Zdenek Kabelac <zkabelac@redhat.com> | 2018-07-09 15:28:35 +0200 |
commit | aa63dfbe39860f04d8965e2afc4959cd20988411 (patch) | |
tree | 3f72f39bf2a3058921c51084cdbf9b20b4176c4a | |
parent | aff69ecf396a858d684cd3e54baea131e229f5a2 (diff) | |
download | lvm2-aa63dfbe39860f04d8965e2afc4959cd20988411.tar.gz |
vdo: support functions to map enums to string names
Translate VDO enums to printable strings.
-rw-r--r-- | lib/metadata/metadata-exported.h | 3 | ||||
-rw-r--r-- | lib/metadata/vdo_manip.c | 50 |
2 files changed, 53 insertions, 0 deletions
diff --git a/lib/metadata/metadata-exported.h b/lib/metadata/metadata-exported.h index f5b540a10..b22113914 100644 --- a/lib/metadata/metadata-exported.h +++ b/lib/metadata/metadata-exported.h @@ -1251,6 +1251,9 @@ int wipe_cache_pool(struct logical_volume *cache_pool_lv); /* ++ metadata/vdo_manip.c */ +const char *get_vdo_compression_state_name(enum dm_vdo_compression_state state); +const char *get_vdo_index_state_name(enum dm_vdo_index_state state); +const char *get_vdo_operating_mode_name(enum dm_vdo_operating_mode mode); uint64_t get_vdo_pool_virtual_size(const struct lv_segment *vdo_pool_seg); struct logical_volume *convert_vdo_pool_lv(struct logical_volume *data_lv, const struct dm_vdo_target_params *vtp, diff --git a/lib/metadata/vdo_manip.c b/lib/metadata/vdo_manip.c index 451c8bdba..8aee3dc00 100644 --- a/lib/metadata/vdo_manip.c +++ b/lib/metadata/vdo_manip.c @@ -25,6 +25,56 @@ #include "lib/misc/lvm-signal.h" #include "lib/misc/lvm-exec.h" +const char *get_vdo_compression_state_name(enum dm_vdo_compression_state state) +{ + switch (state) { + case DM_VDO_COMPRESSION_ONLINE: + return "online"; + default: + log_debug(INTERNAL_ERROR "Unrecognized compression state: %u.", state); + /* Fall through */ + case DM_VDO_COMPRESSION_OFFLINE: + return "offline"; + } +} + +const char *get_vdo_index_state_name(enum dm_vdo_index_state state) +{ + switch (state) { + case DM_VDO_INDEX_ERROR: + return "error"; + case DM_VDO_INDEX_CLOSED: + return "closed"; + case DM_VDO_INDEX_OPENING: + return "opening"; + case DM_VDO_INDEX_CLOSING: + return "closing"; + case DM_VDO_INDEX_OFFLINE: + return "offline"; + case DM_VDO_INDEX_ONLINE: + return "online"; + default: + log_debug(INTERNAL_ERROR "Unrecognized index state: %u.", state); + /* Fall through */ + case DM_VDO_INDEX_UNKNOWN: + return "unknown"; + } +} + +const char *get_vdo_operating_mode_name(enum dm_vdo_operating_mode mode) +{ + switch (mode) { + case DM_VDO_MODE_RECOVERING: + return "recovering"; + case DM_VDO_MODE_READ_ONLY: + return "read-only"; + default: + log_debug(INTERNAL_ERROR "Unrecognized operating mode: %u.", mode); + /* Fall through */ + case DM_VDO_MODE_NORMAL: + return "normal"; + } +} /* * Size of VDO virtual LV is adding header_size in front and back of device |