diff options
author | Peter Rajnoha <prajnoha@redhat.com> | 2015-08-17 11:40:17 +0200 |
---|---|---|
committer | Peter Rajnoha <prajnoha@redhat.com> | 2016-02-03 17:40:31 +0100 |
commit | faef76521e8b8f7819e13714677d9bb662e6da90 (patch) | |
tree | 358987baafda75dea8eefb3d02ac20da6ec8f6ef | |
parent | fc1ab4b831cf064cc3a564eb95cf39193993d7a0 (diff) | |
download | lvm2-faef76521e8b8f7819e13714677d9bb662e6da90.tar.gz |
report: add lv_removed field to identify removed LVs
The lv_removed reporting field is a simple binary field that reports
whether an LV is removed ("removed" value or value of "1" displayed)
or not (blank string "" or value of "0" displayed).
-rw-r--r-- | lib/report/columns.h | 1 | ||||
-rw-r--r-- | lib/report/properties.c | 2 | ||||
-rw-r--r-- | lib/report/report.c | 10 |
3 files changed, 12 insertions, 1 deletions
diff --git a/lib/report/columns.h b/lib/report/columns.h index d1162461f..78146deb5 100644 --- a/lib/report/columns.h +++ b/lib/report/columns.h @@ -97,6 +97,7 @@ FIELD(LVS, lv, TIM, "CTime", lvid, 26, lvtime, lv_time, "Creation time of the LV FIELD(LVS, lv, TIM, "RTime", lvid, 26, lvtimeremoved, lv_time_removed, "Removal time of the LV, if known", 0) FIELD(LVS, lv, STR, "Host", lvid, 10, lvhost, lv_host, "Creation host of the LV, if known.", 0) FIELD(LVS, lv, STR_LIST, "Modules", lvid, 7, modules, lv_modules, "Kernel device-mapper modules required for this LV.", 0) +FIELD(LVS, lv, BIN, "Removed", lvid, 8, lvremoved, lv_removed, "Set if the LV is removed.", 0) FIELD(LVSINFO, lv, SNUM, "KMaj", lvid, 4, lvkmaj, lv_kernel_major, "Currently assigned major number or -1 if LV is not active.", 0) FIELD(LVSINFO, lv, SNUM, "KMin", lvid, 4, lvkmin, lv_kernel_minor, "Currently assigned minor number or -1 if LV is not active.", 0) diff --git a/lib/report/properties.c b/lib/report/properties.c index d53cf2979..863acc61f 100644 --- a/lib/report/properties.c +++ b/lib/report/properties.c @@ -247,6 +247,8 @@ GET_PV_NUM_PROPERTY_FN(pv_ba_size, SECTOR_SIZE * pv->ba_size) #define _lv_health_status_get prop_not_implemented_get #define _lv_skip_activation_set prop_not_implemented_set #define _lv_skip_activation_get prop_not_implemented_get +#define _lv_removed_set prop_not_implemented_set +#define _lv_removed_get prop_not_implemented_get #define _cache_total_blocks_set prop_not_implemented_set #define _cache_total_blocks_get prop_not_implemented_get diff --git a/lib/report/report.c b/lib/report/report.c index 42135dc34..2b0045f1d 100644 --- a/lib/report/report.c +++ b/lib/report/report.c @@ -1738,7 +1738,7 @@ static int _lvnameremoved_disp(struct dm_report *rh, struct dm_pool *mem, if (!lv_is_dead(lv)) return _string_disp(rh, mem, field, &blank_name, private); - return _string_disp(rh, mem, field, &lv->this_glv->dead->dname, private); + return _lvname_disp(rh, mem, field, &lv->this_glv->dead->dname, private); } static int _lvfullname_disp(struct dm_report *rh, struct dm_pool *mem, @@ -3336,6 +3336,14 @@ static int _lvskipactivation_disp(struct dm_report *rh, struct dm_pool *mem, return _binary_disp(rh, mem, field, skip_activation, "skip activation", private); } +static int _lvremoved_disp(struct dm_report *rh, struct dm_pool *mem, + struct dm_report_field *field, + const void *data, void *private) +{ + const struct logical_volume *lv = (const struct logical_volume *) data; + return _binary_disp(rh, mem, field, lv_is_dead(lv), "removed", private); +} + /* * Macro to generate '_cache_<cache_status_field_name>_disp' reporting function. * The 'cache_status_field_name' is field name from struct dm_cache_status. |