[lvm-devel] master - report: display 'unknown' value for lv_active_remotely field if the LV is also active locally
Peter Rajnoha
prajnoha at fedoraproject.org
Fri Jul 11 09:58:21 UTC 2014
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=fd5912762b4815deb7a58fc4c5971801888e0ed3
Commit: fd5912762b4815deb7a58fc4c5971801888e0ed3
Parent: c9ae21798e1fa94e56c0f07ece1527377cbf1623
Author: Peter Rajnoha <prajnoha at redhat.com>
AuthorDate: Fri Jul 11 11:56:50 2014 +0200
Committer: Peter Rajnoha <prajnoha at redhat.com>
CommitterDate: Fri Jul 11 11:56:50 2014 +0200
report: display 'unknown' value for lv_active_remotely field if the LV is also active locally
Currently, we can't determine whether the LV is active remotely
or not in that case.
---
lib/report/report.c | 23 ++++++++++++++++++++++-
1 files changed, 22 insertions(+), 1 deletions(-)
diff --git a/lib/report/report.c b/lib/report/report.c
index e9f379a..91dfac0 100644
--- a/lib/report/report.c
+++ b/lib/report/report.c
@@ -1478,7 +1478,28 @@ static int _lvactiveremotely_disp(struct dm_report *rh, struct dm_pool *mem,
if (vg_is_clustered(lv->vg)) {
lv = lv_lock_holder(lv);
- active_remotely = lv_is_active_but_not_locally(lv);
+ /* FIXME: It seems we have no way to get this info correctly
+ * with current interface - we'd need to check number
+ * of responses from the cluster:
+ * - if number of nodes that responded == 1
+ * - and LV is active on local node
+ * ..then we may say that LV is *not* active remotely.
+ *
+ * Otherwise ((responses > 1 && LV active locally) ||
+ * (responses == 1 && LV not active locally)), it's
+ * active remotely.
+ *
+ * We have this info, but hidden underneath the
+ * locking interface (locking_type.query_resource fn).
+ *
+ * For now, let's use 'unknown' for remote status if
+ * the LV is found active locally until we find a way to
+ * smuggle the proper information out of the interface.
+ */
+ if (lv_is_active_locally(lv))
+ return _binary_undef_disp(rh, mem, field, private);
+ else
+ active_remotely = lv_is_active_but_not_locally(lv);
} else
active_remotely = 0;
More information about the lvm-devel
mailing list