1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

thin: report PERCENT_INVALID for failed pool

When thin-pool is in failed/error state, we can't
read percentage so report invalid value.
This commit is contained in:
Zdenek Kabelac 2016-02-18 13:18:18 +01:00
parent 0fb3669d49
commit 0358ca3aad
2 changed files with 7 additions and 2 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.143 -
=====================================
For failing thin-pool and thin volume correctly report percentage as INVALID.
Report -1, not 'unkown' for lv_{snapshot_invalid,merge_failed} with --binary.
Add configure --enable-dbus-service for an LVM D-Bus service.
Replace configure --enable-python_bindings with python2 and python3 versions.

View File

@ -404,8 +404,10 @@ static int _thin_pool_target_percent(void **target_state __attribute__((unused))
if (!dm_get_status_thin_pool(mem, params, &s))
return_0;
if (s->fail || s->error)
*percent = DM_PERCENT_INVALID;
/* With 'seg' report metadata percent, otherwice data percent */
if (seg) {
else if (seg) {
*percent = dm_make_percent(s->used_metadata_blocks,
s->total_metadata_blocks);
*total_numerator += s->used_metadata_blocks;
@ -622,7 +624,9 @@ static int _thin_target_percent(void **target_state __attribute__((unused)),
if (!dm_get_status_thin(mem, params, &s))
return_0;
if (seg) {
if (s->fail)
*percent = DM_PERCENT_INVALID;
else if (seg) {
/* Pool allocates whole chunk so round-up to nearest one */
csize = first_seg(seg->pool_lv)->chunk_size;
csize = ((seg->lv->size + csize - 1) / csize) * csize;