mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-12 05:48:39 +08:00
rds: avoid unenecessary cong_update in loop transport
commit f1693c63ab
upstream.
Loop transport which is self loopback, remote port congestion
update isn't relevant. Infact the xmit path already ignores it.
Receive path needs to do the same.
Reported-by: syzbot+4c20b3866171ce8441d2@syzkaller.appspotmail.com
Reviewed-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
1bbe05e27a
commit
a4b57440d9
@ -193,4 +193,5 @@ struct rds_transport rds_loop_transport = {
|
||||
.inc_copy_to_user = rds_message_inc_copy_to_user,
|
||||
.inc_free = rds_loop_inc_free,
|
||||
.t_name = "loopback",
|
||||
.t_type = RDS_TRANS_LOOP,
|
||||
};
|
||||
|
@ -454,6 +454,11 @@ struct rds_notifier {
|
||||
int n_status;
|
||||
};
|
||||
|
||||
/* Available as part of RDS core, so doesn't need to participate
|
||||
* in get_preferred transport etc
|
||||
*/
|
||||
#define RDS_TRANS_LOOP 3
|
||||
|
||||
/**
|
||||
* struct rds_transport - transport specific behavioural hooks
|
||||
*
|
||||
|
@ -103,6 +103,11 @@ static void rds_recv_rcvbuf_delta(struct rds_sock *rs, struct sock *sk,
|
||||
rds_stats_add(s_recv_bytes_added_to_socket, delta);
|
||||
else
|
||||
rds_stats_add(s_recv_bytes_removed_from_socket, -delta);
|
||||
|
||||
/* loop transport doesn't send/recv congestion updates */
|
||||
if (rs->rs_transport->t_type == RDS_TRANS_LOOP)
|
||||
return;
|
||||
|
||||
now_congested = rs->rs_rcv_bytes > rds_sk_rcvbuf(rs);
|
||||
|
||||
rdsdebug("rs %p (%pI4:%u) recv bytes %d buf %d "
|
||||
|
Loading…
Reference in New Issue
Block a user