hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/net/rds/tcp.c
....@@ -62,8 +62,7 @@
6262 static struct kmem_cache *rds_tcp_conn_slab;
6363
6464 static int rds_tcp_skbuf_handler(struct ctl_table *ctl, int write,
65
- void __user *buffer, size_t *lenp,
66
- loff_t *fpos);
65
+ void *buffer, size_t *lenp, loff_t *fpos);
6766
6867 static int rds_tcp_min_sndbuf = SOCK_MIN_SNDBUF;
6968 static int rds_tcp_min_rcvbuf = SOCK_MIN_RCVBUF;
....@@ -89,15 +88,6 @@
8988 },
9089 { }
9190 };
92
-
93
-/* doing it this way avoids calling tcp_sk() */
94
-void rds_tcp_nonagle(struct socket *sock)
95
-{
96
- int val = 1;
97
-
98
- kernel_setsockopt(sock, SOL_TCP, TCP_NODELAY, (void *)&val,
99
- sizeof(val));
100
-}
10191
10292 u32 rds_tcp_write_seq(struct rds_tcp_connection *tc)
10393 {
....@@ -176,10 +166,10 @@
176166 */
177167 atomic_set(&cp->cp_state, RDS_CONN_RESETTING);
178168 wait_event(cp->cp_waitq, !test_bit(RDS_IN_XMIT, &cp->cp_flags));
179
- lock_sock(osock->sk);
180169 /* reset receive side state for rds_tcp_data_recv() for osock */
181170 cancel_delayed_work_sync(&cp->cp_send_w);
182171 cancel_delayed_work_sync(&cp->cp_recv_w);
172
+ lock_sock(osock->sk);
183173 if (tc->t_tinc) {
184174 rds_inc_put(&tc->t_tinc->ti_inc);
185175 tc->t_tinc = NULL;
....@@ -267,6 +257,7 @@
267257 tsinfo.last_sent_nxt = tc->t_last_sent_nxt;
268258 tsinfo.last_expected_una = tc->t_last_expected_una;
269259 tsinfo.last_seen_una = tc->t_last_seen_una;
260
+ tsinfo.tos = tc->t_cpath->cp_conn->c_tos;
270261
271262 rds_info_copy(iter, &tsinfo, sizeof(tsinfo));
272263 }
....@@ -452,6 +443,12 @@
452443
453444 static void rds_tcp_exit(void);
454445
446
+static u8 rds_tcp_get_tos_map(u8 tos)
447
+{
448
+ /* all user tos mapped to default 0 for TCP transport */
449
+ return 0;
450
+}
451
+
455452 struct rds_transport rds_tcp_transport = {
456453 .laddr_check = rds_tcp_laddr_check,
457454 .xmit_path_prepare = rds_tcp_xmit_path_prepare,
....@@ -466,6 +463,7 @@
466463 .inc_free = rds_tcp_inc_free,
467464 .stats_info_copy = rds_tcp_stats_info_copy,
468465 .exit = rds_tcp_exit,
466
+ .get_tos_map = rds_tcp_get_tos_map,
469467 .t_owner = THIS_MODULE,
470468 .t_name = "tcp",
471469 .t_type = RDS_TRANS_TCP,
....@@ -495,7 +493,7 @@
495493 struct net *net = sock_net(sk);
496494 struct rds_tcp_net *rtn = net_generic(net, rds_tcp_netid);
497495
498
- rds_tcp_nonagle(sock);
496
+ tcp_sock_set_nodelay(sock->sk);
499497 lock_sock(sk);
500498 if (rtn->sndbuf_size > 0) {
501499 sk->sk_sndbuf = rtn->sndbuf_size;
....@@ -543,7 +541,7 @@
543541 tbl = kmemdup(rds_tcp_sysctl_table,
544542 sizeof(rds_tcp_sysctl_table), GFP_KERNEL);
545543 if (!tbl) {
546
- pr_warn("could not set allocate syctl table\n");
544
+ pr_warn("could not set allocate sysctl table\n");
547545 return -ENOMEM;
548546 }
549547 rtn->ctl_table = tbl;
....@@ -623,7 +621,7 @@
623621 if (rtn->rds_tcp_sysctl)
624622 unregister_net_sysctl_table(rtn->rds_tcp_sysctl);
625623
626
- if (net != &init_net && rtn->ctl_table)
624
+ if (net != &init_net)
627625 kfree(rtn->ctl_table);
628626 }
629627
....@@ -668,8 +666,7 @@
668666 }
669667
670668 static int rds_tcp_skbuf_handler(struct ctl_table *ctl, int write,
671
- void __user *buffer, size_t *lenp,
672
- loff_t *fpos)
669
+ void *buffer, size_t *lenp, loff_t *fpos)
673670 {
674671 struct net *net = current->nsproxy->net_ns;
675672 int err;