diff options
author | Peter Rajnoha <prajnoha@redhat.com> | 2016-02-11 15:00:43 +0100 |
---|---|---|
committer | Peter Rajnoha <prajnoha@redhat.com> | 2016-02-12 16:03:09 +0100 |
commit | 37c959e06cf1e2788ac193614ff53af932ec9e9b (patch) | |
tree | 024b4b8780af89bbd5b99ce94d60ffe212711fb3 | |
parent | 0a115f3963390123ad3478c81216ffc69db36e71 (diff) | |
download | lvm2-37c959e06cf1e2788ac193614ff53af932ec9e9b.tar.gz |
report: always display 0 for pv_free field if we don't have any mda and PV is marked as used at the same time
-rw-r--r-- | lib/report/report.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/report/report.c b/lib/report/report.c index 3f2bd0cd2..c964bd82e 100644 --- a/lib/report/report.c +++ b/lib/report/report.c @@ -2363,6 +2363,7 @@ static int _pvused_disp(struct dm_report *rh, struct dm_pool *mem, { const struct physical_volume *pv = (const struct physical_volume *) data; + uint64_t used = pv_used(pv); return _size64_disp(rh, mem, field, &used, private); @@ -2374,8 +2375,21 @@ static int _pvfree_disp(struct dm_report *rh, struct dm_pool *mem, { const struct physical_volume *pv = (const struct physical_volume *) data; + struct lvmcache_info *info; + uint32_t ext_flags; uint64_t freespace = pv_free(pv); + if (is_orphan(pv)) { + if (!(info = lvmcache_info_from_pvid((const char *) &pv->id, 0))) { + log_error("Failed to find cached info for PV %s.", pv_dev_name(pv)); + return 0; + } + + ext_flags = lvmcache_ext_flags(info); + if (ext_flags & PV_EXT_USED) + freespace = 0; + } + return _size64_disp(rh, mem, field, &freespace, private); } |