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>
Tento commit je obsažen v:

odevzdal
David S. Miller

rodič
db10538a4b
revize
12abc5ee78
@@ -1011,7 +1011,6 @@ static void tcp_connect_to_sock(struct connection *con)
|
||||
struct sockaddr_storage saddr, src_addr;
|
||||
int addr_len;
|
||||
struct socket *sock = NULL;
|
||||
int one = 1;
|
||||
int result;
|
||||
|
||||
if (con->nodeid == 0) {
|
||||
@@ -1060,8 +1059,7 @@ static void tcp_connect_to_sock(struct connection *con)
|
||||
log_print("connecting to %d", con->nodeid);
|
||||
|
||||
/* Turn off Nagle's algorithm */
|
||||
kernel_setsockopt(sock, SOL_TCP, TCP_NODELAY, (char *)&one,
|
||||
sizeof(one));
|
||||
tcp_sock_set_nodelay(sock->sk);
|
||||
|
||||
result = sock->ops->connect(sock, (struct sockaddr *)&saddr, addr_len,
|
||||
O_NONBLOCK);
|
||||
@@ -1103,7 +1101,6 @@ static struct socket *tcp_create_listen_sock(struct connection *con,
|
||||
{
|
||||
struct socket *sock = NULL;
|
||||
int result = 0;
|
||||
int one = 1;
|
||||
int addr_len;
|
||||
|
||||
if (dlm_local_addr[0]->ss_family == AF_INET)
|
||||
@@ -1120,8 +1117,7 @@ static struct socket *tcp_create_listen_sock(struct connection *con,
|
||||
}
|
||||
|
||||
/* Turn off Nagle's algorithm */
|
||||
kernel_setsockopt(sock, SOL_TCP, TCP_NODELAY, (char *)&one,
|
||||
sizeof(one));
|
||||
tcp_sock_set_nodelay(sock->sk);
|
||||
|
||||
sock_set_reuseaddr(sock->sk);
|
||||
|
||||
|
Odkázat v novém úkolu
Zablokovat Uživatele