Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1279004

[PATCH 15/21] drbd: introduce peer state union

From Fabian Frederick <fabf@skynet.be>
Newsgroups linux.kernel
Subject [PATCH 15/21] drbd: introduce peer state union
Date 2015-11-27 22:40 +0100
Message-ID <qzyUi-8cQ-29@gated-at.bofh.it> (permalink)
References <qzyKC-89k-3@gated-at.bofh.it> <qzyKC-89k-19@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Add peer structure and propagate in conn_khelper() instead
of hardcoded values.

Signed-off-by: Fabian Frederick <fabf@skynet.be>
---
 drivers/block/drbd/drbd_nl.c | 13 +++++++------
 include/linux/drbd.h         |  8 ++++++++
 2 files changed, 15 insertions(+), 6 deletions(-)

diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
index ef136a9..7a5f148 100644
--- a/drivers/block/drbd/drbd_nl.c
+++ b/drivers/block/drbd/drbd_nl.c
@@ -387,7 +387,8 @@ int drbd_khelper(struct drbd_device *device, char *cmd)
 	return ret;
 }
 
-static int conn_khelper(struct drbd_connection *connection, char *cmd)
+static enum drbd_peer_state conn_khelper(struct drbd_connection *connection,
+					 char *cmd)
 {
 	char *envp[] = { "HOME=/",
 			"TERM=linux",
@@ -485,17 +486,17 @@ bool conn_try_outdate_peer(struct drbd_connection *connection)
 	r = conn_khelper(connection, "fence-peer");
 
 	switch ((r>>8) & 0xff) {
-	case 3: /* peer is inconsistent */
+	case P_INCONSISTENT: /* peer is inconsistent */
 		ex_to_string = "peer is inconsistent or worse";
 		mask.pdsk = D_MASK;
 		val.pdsk = D_INCONSISTENT;
 		break;
-	case 4: /* peer got outdated, or was already outdated */
+	case P_OUTDATED: /* peer got outdated, or was already outdated */
 		ex_to_string = "peer was fenced";
 		mask.pdsk = D_MASK;
 		val.pdsk = D_OUTDATED;
 		break;
-	case 5: /* peer was down */
+	case P_DOWN: /* peer was down */
 		if (conn_highest_disk(connection) == D_UP_TO_DATE) {
 			/* we will(have) create(d) a new UUID anyways... */
 			ex_to_string = "peer is unreachable, assumed to be dead";
@@ -505,7 +506,7 @@ bool conn_try_outdate_peer(struct drbd_connection *connection)
 			ex_to_string = "peer unreachable, doing nothing since disk != UpToDate";
 		}
 		break;
-	case 6: /* Peer is primary, voluntarily outdate myself.
+	case P_PRIMARY: /* Peer is primary, voluntarily outdate myself.
 		 * This is useful when an unconnected R_SECONDARY is asked to
 		 * become R_PRIMARY, but finds the other peer being active. */
 		ex_to_string = "peer is active";
@@ -513,7 +514,7 @@ bool conn_try_outdate_peer(struct drbd_connection *connection)
 		mask.disk = D_MASK;
 		val.disk = D_OUTDATED;
 		break;
-	case 7:
+	case P_FENCING:
 		if (fp != FP_STONITH)
 			drbd_err(connection, "fence-peer() = 7 && fencing != Stonith !!!\n");
 		ex_to_string = "peer was stonithed";
diff --git a/include/linux/drbd.h b/include/linux/drbd.h
index d6b3c99..1f20a62 100644
--- a/include/linux/drbd.h
+++ b/include/linux/drbd.h
@@ -370,6 +370,14 @@ enum drbd_notification_type {
 	NOTIFY_FLAGS = NOTIFY_CONTINUES,
 };
 
+enum drbd_peer_state {
+	P_INCONSISTENT = 3,
+	P_OUTDATED = 4,
+	P_DOWN = 5,
+	P_PRIMARY = 6,
+	P_FENCING = 7
+};
+
 #define UUID_JUST_CREATED ((__u64)4)
 
 enum write_ordering_e {
-- 
2.1.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH 00/21] drbd: clean-up patchset Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:30 +0100
  [PATCH 02/21] drbd: simplify drbd_md_set_sector_offsets() Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:30 +0100
  [PATCH 01/21] drbd: debugfs: constify drbd_version_fops Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:30 +0100
  [PATCH 06/21] drbd: use const char * const for drbd strings Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:30 +0100
  [PATCH 11/21] drbd: use | for bitmask combination Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:30 +0100
  [PATCH 10/21] drbd: fix typo Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:30 +0100
    [PATCH 17/21] drbd: use bool for growing Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:40 +0100
    [PATCH 13/21] drbd: fix drbd_bm_init() comments Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:40 +0100
    [PATCH 18/21] drbd: remove redundant declarations Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:40 +0100
    [PATCH 14/21] drbd: clean-up receive_SyncParam() Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:40 +0100
    [PATCH 15/21] drbd: introduce peer state union Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:40 +0100
    [PATCH 12/21] drbd: use true/false for bool Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:40 +0100
    [PATCH 19/21] drbd: remove bm_vk_free() Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:40 +0100
    [PATCH 16/21] drbd: fix maybe_pull_ahead() locking comments Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:40 +0100
  [PATCH 09/21] drbd: use bool for peer is_ states Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:30 +0100
  [PATCH 03/21] drbd: use seq_put instead of seq_print where possible Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:30 +0100
  [PATCH 05/21] drbd: rework is_valid_state() Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:30 +0100
  [PATCH 07/21] drbd: kerneldoc warning fix in w_e_end_data_req() Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:30 +0100
  [PATCH 21/21] drbd: replace if/BUG by BUG_ON Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:40 +0100
  [PATCH 20/21] drbd: remove unused definitions Fabian Frederick <fabf@skynet.be> - 2015-11-27 22:40 +0100

csiph-web