summaryrefslogtreecommitdiffstats
path: root/net/rds
diff options
context:
space:
mode:
authorAndy Grover <andy.grover@oracle.com>2010-03-30 01:20:18 +0200
committerAndy Grover <andy.grover@oracle.com>2010-09-09 03:12:15 +0200
commita7d3a281483684f77e350b045af7f80a149fc4c7 (patch)
treed15beb494e7d7cf0691adec8ffebe098608c6620 /net/rds
parentRDS: rds_send_xmit() locking/irq fixes (diff)
downloadlinux-a7d3a281483684f77e350b045af7f80a149fc4c7.tar.xz
linux-a7d3a281483684f77e350b045af7f80a149fc4c7.zip
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>
Diffstat (limited to 'net/rds')
-rw-r--r--net/rds/send.c2
1 files changed, 1 insertions, 1 deletions
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;