summaryrefslogtreecommitdiffstats
path: root/net/rds/send.c
diff options
context:
space:
mode:
authorAndy Grover <andy.grover@oracle.com>2010-04-01 03:56:25 +0200
committerAndy Grover <andy.grover@oracle.com>2010-09-09 03:12:23 +0200
commitacfcd4d4ec4ed8cb504f96d4fabb7a94029b362b (patch)
treeaf63be50f94cdcb0338095142b1890b75f7ff2e8 /net/rds/send.c
parentRDS: Do wait_event_interruptible instead of wait_event (diff)
downloadlinux-acfcd4d4ec4ed8cb504f96d4fabb7a94029b362b.tar.xz
linux-acfcd4d4ec4ed8cb504f96d4fabb7a94029b362b.zip
RDS: Get pong working again
Call send_xmit() directly from pong() Set pongs as op_active Signed-off-by: Andy Grover <andy.grover@oracle.com>
Diffstat (limited to 'net/rds/send.c')
-rw-r--r--net/rds/send.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/rds/send.c b/net/rds/send.c
index 656c5c1b32bc..de5693cdcefb 100644
--- a/net/rds/send.c
+++ b/net/rds/send.c
@@ -1108,6 +1108,7 @@ rds_send_pong(struct rds_connection *conn, __be16 dport)
}
rm->m_daddr = conn->c_faddr;
+ rm->data.op_active = 1;
/* If the connection is down, trigger a connect. We may
* have scheduled a delayed reconnect however - in this case
@@ -1135,7 +1136,9 @@ rds_send_pong(struct rds_connection *conn, __be16 dport)
rds_stats_inc(s_send_queued);
rds_stats_inc(s_send_pong);
- queue_delayed_work(rds_wq, &conn->c_send_w, 0);
+ if (!test_bit(RDS_LL_SEND_FULL, &conn->c_flags))
+ rds_send_xmit(conn);
+
rds_message_put(rm);
return 0;