From: Sage Weil <sage@newdream.net>
Date: Mon, 14 Dec 2009 22:56:56 +0000 (-0800)
Subject: ceph: detect lossy state of connection
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=92ac41d0a4ab26fb68d3f841332e5d1f15d79123;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.git

ceph: detect lossy state of connection

The server indicates whether a connection is lossy; set our LOSSYTX bit
appropriately.  Do not set lossy bit on outgoing connections.

Signed-off-by: Sage Weil <sage@newdream.net>
---

diff --git a/fs/ceph/messenger.c b/fs/ceph/messenger.c
index 98519bd33f04..986d8fb9c574 100644
--- a/fs/ceph/messenger.c
+++ b/fs/ceph/messenger.c
@@ -625,8 +625,6 @@ static void prepare_write_connect(struct ceph_messenger *msgr,
 	con->out_connect.global_seq = cpu_to_le32(global_seq);
 	con->out_connect.protocol_version = cpu_to_le32(proto);
 	con->out_connect.flags = 0;
-	if (test_bit(LOSSYTX, &con->state))
-		con->out_connect.flags = CEPH_MSG_CONNECT_LOSSY;
 
 	if (!after_banner) {
 		con->out_kvec_left = 0;
@@ -1168,6 +1166,10 @@ static int process_connect(struct ceph_connection *con)
 		     con->connect_seq);
 		WARN_ON(con->connect_seq !=
 			le32_to_cpu(con->in_reply.connect_seq));
+
+		if (con->in_reply.flags & CEPH_MSG_CONNECT_LOSSY)
+			set_bit(LOSSYTX, &con->state);
+
 		prepare_read_tag(con);
 		break;