From: Andy Grover <andy.grover@oracle.com>
Date: Mon, 29 Mar 2010 23:20:18 +0000 (-0700)
Subject: RDS: Call rds_send_xmit() directly from sendmsg()
X-Git-Tag: firefly_0821_release~7613^2~3670^2~499^2~62
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=a7d3a281483684f77e350b045af7f80a149fc4c7;p=firefly-linux-kernel-4.4.55.git

RDS: Call rds_send_xmit() directly from sendmsg()

rds_sendmsg() is calling the send worker function to
send the just-queued datagrams, presumably because it wants
the behavior where anything not sent will re-call the send
worker. We now ensure all queued datagrams are sent by retrying
from the send completion handler, so this isn't needed any more.

Signed-off-by: Andy Grover <andy.grover@oracle.com>
---

diff --git a/net/rds/send.c b/net/rds/send.c
index 624a3dc7f060..15b715a85fd5 100644
--- a/net/rds/send.c
+++ b/net/rds/send.c
@@ -1073,7 +1073,7 @@ int rds_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
 	rds_stats_inc(s_send_queued);
 
 	if (!test_bit(RDS_LL_SEND_FULL, &conn->c_flags))
-		rds_send_worker(&conn->c_send_w.work);
+		rds_send_xmit(conn);
 
 	rds_message_put(rm);
 	return payload_len;