tcp: add tcp_sock_set_nodelay
Add a helper to directly set the TCP_NODELAY sockopt from kernel space without going through a fake uaccess. Cleanup the callers to avoid pointless wrappers now that this is a simple function call. Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: Sagi Grimberg <sagi@grimberg.me> Acked-by: Jason Gunthorpe <jgg@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committad av
David S. Miller

förälder
db10538a4b
incheckning
12abc5ee78
@@ -89,15 +89,6 @@ static struct ctl_table rds_tcp_sysctl_table[] = {
|
||||
{ }
|
||||
};
|
||||
|
||||
/* doing it this way avoids calling tcp_sk() */
|
||||
void rds_tcp_nonagle(struct socket *sock)
|
||||
{
|
||||
int val = 1;
|
||||
|
||||
kernel_setsockopt(sock, SOL_TCP, TCP_NODELAY, (void *)&val,
|
||||
sizeof(val));
|
||||
}
|
||||
|
||||
u32 rds_tcp_write_seq(struct rds_tcp_connection *tc)
|
||||
{
|
||||
/* seq# of the last byte of data in tcp send buffer */
|
||||
@@ -502,7 +493,7 @@ void rds_tcp_tune(struct socket *sock)
|
||||
struct net *net = sock_net(sk);
|
||||
struct rds_tcp_net *rtn = net_generic(net, rds_tcp_netid);
|
||||
|
||||
rds_tcp_nonagle(sock);
|
||||
tcp_sock_set_nodelay(sock->sk);
|
||||
lock_sock(sk);
|
||||
if (rtn->sndbuf_size > 0) {
|
||||
sk->sk_sndbuf = rtn->sndbuf_size;
|
||||
|
@@ -50,7 +50,6 @@ struct rds_tcp_statistics {
|
||||
|
||||
/* tcp.c */
|
||||
void rds_tcp_tune(struct socket *sock);
|
||||
void rds_tcp_nonagle(struct socket *sock);
|
||||
void rds_tcp_set_callbacks(struct socket *sock, struct rds_conn_path *cp);
|
||||
void rds_tcp_reset_callbacks(struct socket *sock, struct rds_conn_path *cp);
|
||||
void rds_tcp_restore_callbacks(struct socket *sock,
|
||||
|
@@ -288,7 +288,7 @@ struct socket *rds_tcp_listen_init(struct net *net, bool isv6)
|
||||
}
|
||||
|
||||
sock->sk->sk_reuse = SK_CAN_REUSE;
|
||||
rds_tcp_nonagle(sock);
|
||||
tcp_sock_set_nodelay(sock->sk);
|
||||
|
||||
write_lock_bh(&sock->sk->sk_callback_lock);
|
||||
sock->sk->sk_user_data = sock->sk->sk_data_ready;
|
||||
|
Referens i nytt ärende
Block a user