]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
rds: Use rds_conn_path cp_wq when applicable
authorHåkon Bugge <haakon.bugge@oracle.com>
Tue, 2 Apr 2019 13:56:14 +0000 (15:56 +0200)
committerBrian Maly <brian.maly@oracle.com>
Tue, 21 May 2019 22:01:25 +0000 (18:01 -0400)
RDS has a two global work queues, one for loop-back connections and
another one for remote connections. The struct rds_conn_path has a
member cp_wq which is set to one of them. Use cp_wq consistently
instead of the global ones.

Orabug: 29391909

Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com>
Tested-by: Rosa Lopez <rosa.lopez@oracle.com>
Reviewed-by: Hans Westgaard Ry <hans.westgaard.ry@oracle.com>
Signed-off-by: Brian Maly <brian.maly@oracle.com>
net/rds/send.c
net/rds/tcp_recv.c
net/rds/tcp_send.c

index 98a0612fa11ca266d6c34f11d3192e40b7bfc955..eb5d3563908f23b36594f9d5c7a37fbc18364511 100644 (file)
@@ -1732,7 +1732,7 @@ rds_send_probe(struct rds_conn_path *cp, __be16 sport,
        rds_stats_inc(s_send_pong);
 
        if (!test_bit(RDS_LL_SEND_FULL, &cp->cp_flags))
-               queue_delayed_work(rds_wq, &cp->cp_send_w, 0);
+               queue_delayed_work(cp->cp_wq, &cp->cp_send_w, 0);
 
        rds_message_put(rm);
        return 0;
index 9eef9c7f5d4bb74a7e2836feacb51c3703a98815..3daba826b4d5bdb341e02f5d9bae29f15575cfcb 100644 (file)
@@ -322,7 +322,7 @@ void rds_tcp_data_ready(struct sock *sk)
        rds_tcp_stats_inc(s_tcp_data_ready_calls);
 
        if (rds_tcp_read_sock(cp, GFP_ATOMIC) == -ENOMEM)
-               queue_delayed_work(rds_wq, &cp->cp_recv_w, 0);
+               queue_delayed_work(cp->cp_wq, &cp->cp_recv_w, 0);
 out:
        read_unlock(&sk->sk_callback_lock);
        ready(sk);
index 8dd3b8ccbe6f9dd176d11d361fcbe3caf976fd66..119acfee3a8fba565baed6788f4efeb7b9ac9ea6 100644 (file)
@@ -208,7 +208,7 @@ void rds_tcp_write_space(struct sock *sk)
        rds_send_path_drop_acked(cp, rds_tcp_snd_una(tc), rds_tcp_is_acked);
 
         if ((atomic_read(&sk->sk_wmem_alloc) << 1) <= sk->sk_sndbuf)
-               queue_delayed_work(rds_wq, &cp->cp_send_w, 0);
+               queue_delayed_work(cp->cp_wq, &cp->cp_send_w, 0);
 
 out:
        read_unlock(&sk->sk_callback_lock);