From 0916e0e308716387f16462f66b53c9128587fd0b Mon Sep 17 00:00:00 2001 From: Andreas Gruenbacher Date: Mon, 21 Mar 2011 14:10:15 +0100 Subject: [PATCH] drbd: Always use the same protocol version for the same peer There is no need to send protocol 80 headers to peers that understand protocol 95 headers. Make sure that we don't send protocol 95 headers until we have agreed upon a protocol version with our peer, though. Signed-off-by: Philipp Reisner Signed-off-by: Lars Ellenberg --- drivers/block/drbd/drbd_main.c | 2 +- drivers/block/drbd/drbd_receiver.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c index f633c0b..a1deab6 100644 --- a/drivers/block/drbd/drbd_main.c +++ b/drivers/block/drbd/drbd_main.c @@ -706,7 +706,7 @@ static void prepare_header95(struct p_header95 *h, enum drbd_packet cmd, int siz static void _prepare_header(struct drbd_tconn *tconn, int vnr, struct p_header *h, enum drbd_packet cmd, int size) { - if (tconn->agreed_pro_version >= 100 || size > DRBD_MAX_SIZE_H80_PACKET) + if (tconn->agreed_pro_version >= 95) prepare_header95(&h->h95, cmd, size); else prepare_header80(&h->h80, cmd, size); diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index 6a3e628..27d4a45 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c @@ -819,9 +819,9 @@ static int drbd_connect(struct drbd_tconn *tconn) return -2; clear_bit(DISCARD_CONCURRENT, &tconn->flags); - tconn->agreed_pro_version = 99; - /* agreed_pro_version must be smaller than 100 so we send the old - header (h80) in the first packet and in the handshake packet. */ + + /* Assume that the peer only understands protocol 80 until we know better. */ + tconn->agreed_pro_version = 80; sock = NULL; msock = NULL; -- 2.7.4