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


Groups > linux.kernel > #1278992

[PATCH 05/21] drbd: rework is_valid_state()

From Fabian Frederick <fabf@skynet.be>
Newsgroups linux.kernel
Subject [PATCH 05/21] drbd: rework is_valid_state()
Date 2015-11-27 22:30 +0100
Message-ID <qzyKE-89k-39@gated-at.bofh.it> (permalink)
References <qzyKC-89k-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Remove empty condition to avoid semantic warnings

Signed-off-by: Fabian Frederick <fabf@skynet.be>
---
 drivers/block/drbd/drbd_state.c | 86 ++++++++++++++++++-----------------------
 1 file changed, 38 insertions(+), 48 deletions(-)

diff --git a/drivers/block/drbd/drbd_state.c b/drivers/block/drbd/drbd_state.c
index 5a7ef78..a7631a3 100644
--- a/drivers/block/drbd/drbd_state.c
+++ b/drivers/block/drbd/drbd_state.c
@@ -813,54 +813,44 @@ is_valid_state(struct drbd_device *device, union drbd_state ns)
 		}
 	}
 
-	if (rv <= 0)
-		/* already found a reason to abort */;
-	else if (ns.role == R_SECONDARY && device->open_cnt)
-		rv = SS_DEVICE_IN_USE;
-
-	else if (ns.role == R_PRIMARY && ns.conn < C_CONNECTED && ns.disk < D_UP_TO_DATE)
-		rv = SS_NO_UP_TO_DATE_DISK;
-
-	else if (fp >= FP_RESOURCE &&
-		 ns.role == R_PRIMARY && ns.conn < C_CONNECTED && ns.pdsk >= D_UNKNOWN)
-		rv = SS_PRIMARY_NOP;
-
-	else if (ns.role == R_PRIMARY && ns.disk <= D_INCONSISTENT && ns.pdsk <= D_INCONSISTENT)
-		rv = SS_NO_UP_TO_DATE_DISK;
-
-	else if (ns.conn > C_CONNECTED && ns.disk < D_INCONSISTENT)
-		rv = SS_NO_LOCAL_DISK;
-
-	else if (ns.conn > C_CONNECTED && ns.pdsk < D_INCONSISTENT)
-		rv = SS_NO_REMOTE_DISK;
-
-	else if (ns.conn > C_CONNECTED && ns.disk < D_UP_TO_DATE && ns.pdsk < D_UP_TO_DATE)
-		rv = SS_NO_UP_TO_DATE_DISK;
-
-	else if ((ns.conn == C_CONNECTED ||
-		  ns.conn == C_WF_BITMAP_S ||
-		  ns.conn == C_SYNC_SOURCE ||
-		  ns.conn == C_PAUSED_SYNC_S) &&
-		  ns.disk == D_OUTDATED)
-		rv = SS_CONNECTED_OUTDATES;
-
-	else if ((ns.conn == C_VERIFY_S || ns.conn == C_VERIFY_T) &&
-		 (nc->verify_alg[0] == 0))
-		rv = SS_NO_VERIFY_ALG;
-
-	else if ((ns.conn == C_VERIFY_S || ns.conn == C_VERIFY_T) &&
-		  first_peer_device(device)->connection->agreed_pro_version < 88)
-		rv = SS_NOT_SUPPORTED;
-
-	else if (ns.role == R_PRIMARY && ns.disk < D_UP_TO_DATE && ns.pdsk < D_UP_TO_DATE)
-		rv = SS_NO_UP_TO_DATE_DISK;
-
-	else if ((ns.conn == C_STARTING_SYNC_S || ns.conn == C_STARTING_SYNC_T) &&
-                 ns.pdsk == D_UNKNOWN)
-		rv = SS_NEED_CONNECTION;
-
-	else if (ns.conn >= C_CONNECTED && ns.pdsk == D_UNKNOWN)
-		rv = SS_CONNECTED_OUTDATES;
+	if (rv > 0) {
+		if (ns.role == R_SECONDARY && device->open_cnt)
+			rv = SS_DEVICE_IN_USE;
+		else if (ns.role == R_PRIMARY && ns.conn < C_CONNECTED &&
+			 ns.disk < D_UP_TO_DATE)
+			rv = SS_NO_UP_TO_DATE_DISK;
+		else if (fp >= FP_RESOURCE && ns.role == R_PRIMARY &&
+			 ns.conn < C_CONNECTED && ns.pdsk >= D_UNKNOWN)
+			rv = SS_PRIMARY_NOP;
+		else if (ns.role == R_PRIMARY && ns.disk <= D_INCONSISTENT &&
+			 ns.pdsk <= D_INCONSISTENT)
+			rv = SS_NO_UP_TO_DATE_DISK;
+		else if (ns.conn > C_CONNECTED && ns.disk < D_INCONSISTENT)
+			rv = SS_NO_LOCAL_DISK;
+		else if (ns.conn > C_CONNECTED && ns.pdsk < D_INCONSISTENT)
+			rv = SS_NO_REMOTE_DISK;
+		else if (ns.conn > C_CONNECTED && ns.disk < D_UP_TO_DATE &&
+			 ns.pdsk < D_UP_TO_DATE)
+			rv = SS_NO_UP_TO_DATE_DISK;
+		else if ((ns.conn == C_CONNECTED || ns.conn == C_WF_BITMAP_S ||
+			  ns.conn == C_SYNC_SOURCE ||
+			  ns.conn == C_PAUSED_SYNC_S) && ns.disk == D_OUTDATED)
+			rv = SS_CONNECTED_OUTDATES;
+		else if ((ns.conn == C_VERIFY_S || ns.conn == C_VERIFY_T) &&
+			 (nc->verify_alg[0] == 0))
+			rv = SS_NO_VERIFY_ALG;
+		else if ((ns.conn == C_VERIFY_S || ns.conn == C_VERIFY_T) &&
+			  first_peer_device(device)->connection->agreed_pro_version < 88)
+			rv = SS_NOT_SUPPORTED;
+		else if (ns.role == R_PRIMARY && ns.disk < D_UP_TO_DATE &&
+			 ns.pdsk < D_UP_TO_DATE)
+			rv = SS_NO_UP_TO_DATE_DISK;
+		else if ((ns.conn == C_STARTING_SYNC_S ||
+			  ns.conn == C_STARTING_SYNC_T) && ns.pdsk == D_UNKNOWN)
+			rv = SS_NEED_CONNECTION;
+		else if (ns.conn >= C_CONNECTED && ns.pdsk == D_UNKNOWN)
+			rv = SS_CONNECTED_OUTDATES;
+	}
 
 	rcu_read_unlock();
 
-- 
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