diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/rds/tcp.c | 7 | ||||
-rw-r--r-- | net/rds/tcp.h | 1 | ||||
-rw-r--r-- | net/rds/tcp_listen.c | 2 |
3 files changed, 10 insertions, 0 deletions
diff --git a/net/rds/tcp.c b/net/rds/tcp.c index d24f6c142d03..b411bb764f07 100644 --- a/net/rds/tcp.c +++ b/net/rds/tcp.c | |||
@@ -551,6 +551,13 @@ static void rds_tcp_kill_sock(struct net *net) | |||
551 | } | 551 | } |
552 | } | 552 | } |
553 | 553 | ||
554 | void *rds_tcp_listen_sock_def_readable(struct net *net) | ||
555 | { | ||
556 | struct rds_tcp_net *rtn = net_generic(net, rds_tcp_netid); | ||
557 | |||
558 | return rtn->rds_tcp_listen_sock->sk->sk_user_data; | ||
559 | } | ||
560 | |||
554 | static int rds_tcp_dev_event(struct notifier_block *this, | 561 | static int rds_tcp_dev_event(struct notifier_block *this, |
555 | unsigned long event, void *ptr) | 562 | unsigned long event, void *ptr) |
556 | { | 563 | { |
diff --git a/net/rds/tcp.h b/net/rds/tcp.h index 1c3160faa963..9a1cc8906576 100644 --- a/net/rds/tcp.h +++ b/net/rds/tcp.h | |||
@@ -70,6 +70,7 @@ void rds_tcp_listen_stop(struct socket *); | |||
70 | void rds_tcp_listen_data_ready(struct sock *sk); | 70 | void rds_tcp_listen_data_ready(struct sock *sk); |
71 | int rds_tcp_accept_one(struct socket *sock); | 71 | int rds_tcp_accept_one(struct socket *sock); |
72 | int rds_tcp_keepalive(struct socket *sock); | 72 | int rds_tcp_keepalive(struct socket *sock); |
73 | void *rds_tcp_listen_sock_def_readable(struct net *net); | ||
73 | 74 | ||
74 | /* tcp_recv.c */ | 75 | /* tcp_recv.c */ |
75 | int rds_tcp_recv_init(void); | 76 | int rds_tcp_recv_init(void); |
diff --git a/net/rds/tcp_listen.c b/net/rds/tcp_listen.c index ca975a217a49..73040e319e4b 100644 --- a/net/rds/tcp_listen.c +++ b/net/rds/tcp_listen.c | |||
@@ -183,6 +183,8 @@ void rds_tcp_listen_data_ready(struct sock *sk) | |||
183 | */ | 183 | */ |
184 | if (sk->sk_state == TCP_LISTEN) | 184 | if (sk->sk_state == TCP_LISTEN) |
185 | rds_tcp_accept_work(sk); | 185 | rds_tcp_accept_work(sk); |
186 | else | ||
187 | ready = rds_tcp_listen_sock_def_readable(sock_net(sk)); | ||
186 | 188 | ||
187 | out: | 189 | out: |
188 | read_unlock_bh(&sk->sk_callback_lock); | 190 | read_unlock_bh(&sk->sk_callback_lock); |