File drbd-change-to-L_VERIFY_S-after-peer-is-L_VERIFY_T.patch of Package drbd.24681

From cc6228800d630a19f2bf37af41bab566011286c0 Mon Sep 17 00:00:00 2001
From: Joel Colledge <joel.colledge@linbit.com>
Date: Wed, 9 Jun 2021 11:03:53 +0200
Subject: [PATCH] drbd: change to L_VERIFY_S after peer is L_VERIFY_T

Otherwise the L_VERIFY_S node might start sending requests before the
peer is ready to receive them. In particular, this messes up the verify
accounting because the L_VERIFY_T node resets its counters when the
state change occurs. The problem can be seen when starting verify from
sector 0 in the form of a log message on the peer like:
Online Verify start sector: 48
---
 drbd/drbd_state.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drbd/drbd_state.c b/drbd/drbd_state.c
index fddeba58..aa9dc8c3 100644
--- a/drbd/drbd_state.c
+++ b/drbd/drbd_state.c
@@ -5467,7 +5467,7 @@ enum drbd_state_rv change_repl_state(struct drbd_peer_device *peer_device,
 		.peer_device = peer_device
 	};
 
-	if (new_repl_state == L_WF_BITMAP_S)
+	if (new_repl_state == L_WF_BITMAP_S || new_repl_state == L_VERIFY_S)
 		repl_context.context.change_local_state_last = true;
 
 	return change_cluster_wide_state(do_change_repl_state, &repl_context.context);
-- 
2.16.4

openSUSE Build Service is sponsored by