From: Fabian Frederick <fabf@skynet.be>
To: linux-kernel@vger.kernel.org
Cc: Philipp Reisner <philipp.reisner@linbit.com>,
Fabian Frederick <fabf@skynet.be>,
Lars Ellenberg <lars.ellenberg@linbit.com>,
drbd-dev@lists.linbit.com
Subject: [PATCH 15/21] drbd: introduce peer state union
Date: Fri, 27 Nov 2015 22:29:30 +0100 [thread overview]
Message-ID: <1448659775-13596-6-git-send-email-fabf@skynet.be> (raw)
In-Reply-To: <1448659775-13596-1-git-send-email-fabf@skynet.be>
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
next prev parent reply other threads:[~2015-11-27 21:32 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-27 21:26 [PATCH 00/21] drbd: clean-up patchset Fabian Frederick
2015-11-27 21:26 ` [PATCH 01/21] drbd: debugfs: constify drbd_version_fops Fabian Frederick
2015-11-27 21:26 ` [PATCH 02/21] drbd: simplify drbd_md_set_sector_offsets() Fabian Frederick
2015-11-27 21:26 ` [PATCH 03/21] drbd: use seq_put instead of seq_print where possible Fabian Frederick
2015-11-27 21:26 ` [PATCH 04/21] drbd: include linux/uaccess.h instead of asm/uaccess.h Fabian Frederick
2015-11-27 21:26 ` [PATCH 05/21] drbd: rework is_valid_state() Fabian Frederick
2015-11-27 21:26 ` [PATCH 06/21] drbd: use const char * const for drbd strings Fabian Frederick
2015-11-27 21:26 ` [PATCH 07/21] drbd: kerneldoc warning fix in w_e_end_data_req() Fabian Frederick
2015-11-27 21:26 ` [PATCH 08/21] drbd: use unsigned for one bit fields Fabian Frederick
2015-11-27 21:26 ` [PATCH 09/21] drbd: use bool for peer is_ states Fabian Frederick
2015-11-27 21:29 ` [PATCH 10/21] drbd: fix typo Fabian Frederick
2015-11-27 21:29 ` [PATCH 11/21] drbd: use | for bitmask combination Fabian Frederick
2015-11-27 21:29 ` [PATCH 12/21] drbd: use true/false for bool Fabian Frederick
2015-11-27 21:29 ` [PATCH 13/21] drbd: fix drbd_bm_init() comments Fabian Frederick
2015-11-27 21:29 ` [PATCH 14/21] drbd: clean-up receive_SyncParam() Fabian Frederick
2015-11-27 21:29 ` Fabian Frederick [this message]
2015-11-27 21:29 ` [PATCH 16/21] drbd: fix maybe_pull_ahead() locking comments Fabian Frederick
2015-11-27 21:29 ` [PATCH 17/21] drbd: use bool for growing Fabian Frederick
2015-11-27 21:29 ` [PATCH 18/21] drbd: remove redundant declarations Fabian Frederick
2015-11-27 21:29 ` [PATCH 19/21] drbd: remove bm_vk_free() Fabian Frederick
2015-11-27 21:30 ` [PATCH 20/21] drbd: remove unused definitions Fabian Frederick
2015-11-27 21:30 ` [PATCH 21/21] drbd: replace if/BUG by BUG_ON Fabian Frederick
2015-12-01 8:55 ` [Drbd-dev] [PATCH 00/21] drbd: clean-up patchset Philipp Reisner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1448659775-13596-6-git-send-email-fabf@skynet.be \
--to=fabf@skynet.be \
--cc=drbd-dev@lists.linbit.com \
--cc=lars.ellenberg@linbit.com \
--cc=linux-kernel@vger.kernel.org \
--cc=philipp.reisner@linbit.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®