diff options
Diffstat (limited to 'net/decnet/af_decnet.c')
| -rw-r--r-- | net/decnet/af_decnet.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c index 2b494fac9468..d6b93d19790f 100644 --- a/net/decnet/af_decnet.c +++ b/net/decnet/af_decnet.c | |||
| @@ -446,7 +446,7 @@ static void dn_destruct(struct sock *sk) | |||
| 446 | skb_queue_purge(&scp->other_xmit_queue); | 446 | skb_queue_purge(&scp->other_xmit_queue); |
| 447 | skb_queue_purge(&scp->other_receive_queue); | 447 | skb_queue_purge(&scp->other_receive_queue); |
| 448 | 448 | ||
| 449 | dst_release(xchg(&sk->sk_dst_cache, NULL)); | 449 | dst_release(rcu_dereference_check(sk->sk_dst_cache, 1)); |
| 450 | } | 450 | } |
| 451 | 451 | ||
| 452 | static int dn_memory_pressure; | 452 | static int dn_memory_pressure; |
| @@ -832,7 +832,7 @@ static int dn_confirm_accept(struct sock *sk, long *timeo, gfp_t allocation) | |||
| 832 | scp->segsize_loc = dst_metric(__sk_dst_get(sk), RTAX_ADVMSS); | 832 | scp->segsize_loc = dst_metric(__sk_dst_get(sk), RTAX_ADVMSS); |
| 833 | dn_send_conn_conf(sk, allocation); | 833 | dn_send_conn_conf(sk, allocation); |
| 834 | 834 | ||
| 835 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 835 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 836 | for(;;) { | 836 | for(;;) { |
| 837 | release_sock(sk); | 837 | release_sock(sk); |
| 838 | if (scp->state == DN_CC) | 838 | if (scp->state == DN_CC) |
| @@ -850,9 +850,9 @@ static int dn_confirm_accept(struct sock *sk, long *timeo, gfp_t allocation) | |||
| 850 | err = -EAGAIN; | 850 | err = -EAGAIN; |
| 851 | if (!*timeo) | 851 | if (!*timeo) |
| 852 | break; | 852 | break; |
| 853 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 853 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 854 | } | 854 | } |
| 855 | finish_wait(sk->sk_sleep, &wait); | 855 | finish_wait(sk_sleep(sk), &wait); |
| 856 | if (err == 0) { | 856 | if (err == 0) { |
| 857 | sk->sk_socket->state = SS_CONNECTED; | 857 | sk->sk_socket->state = SS_CONNECTED; |
| 858 | } else if (scp->state != DN_CC) { | 858 | } else if (scp->state != DN_CC) { |
| @@ -873,7 +873,7 @@ static int dn_wait_run(struct sock *sk, long *timeo) | |||
| 873 | if (!*timeo) | 873 | if (!*timeo) |
| 874 | return -EALREADY; | 874 | return -EALREADY; |
| 875 | 875 | ||
| 876 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 876 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 877 | for(;;) { | 877 | for(;;) { |
| 878 | release_sock(sk); | 878 | release_sock(sk); |
| 879 | if (scp->state == DN_CI || scp->state == DN_CC) | 879 | if (scp->state == DN_CI || scp->state == DN_CC) |
| @@ -891,9 +891,9 @@ static int dn_wait_run(struct sock *sk, long *timeo) | |||
| 891 | err = -ETIMEDOUT; | 891 | err = -ETIMEDOUT; |
| 892 | if (!*timeo) | 892 | if (!*timeo) |
| 893 | break; | 893 | break; |
| 894 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 894 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 895 | } | 895 | } |
| 896 | finish_wait(sk->sk_sleep, &wait); | 896 | finish_wait(sk_sleep(sk), &wait); |
| 897 | out: | 897 | out: |
| 898 | if (err == 0) { | 898 | if (err == 0) { |
| 899 | sk->sk_socket->state = SS_CONNECTED; | 899 | sk->sk_socket->state = SS_CONNECTED; |
| @@ -1040,7 +1040,7 @@ static struct sk_buff *dn_wait_for_connect(struct sock *sk, long *timeo) | |||
| 1040 | struct sk_buff *skb = NULL; | 1040 | struct sk_buff *skb = NULL; |
| 1041 | int err = 0; | 1041 | int err = 0; |
| 1042 | 1042 | ||
| 1043 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 1043 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 1044 | for(;;) { | 1044 | for(;;) { |
| 1045 | release_sock(sk); | 1045 | release_sock(sk); |
| 1046 | skb = skb_dequeue(&sk->sk_receive_queue); | 1046 | skb = skb_dequeue(&sk->sk_receive_queue); |
| @@ -1060,9 +1060,9 @@ static struct sk_buff *dn_wait_for_connect(struct sock *sk, long *timeo) | |||
| 1060 | err = -EAGAIN; | 1060 | err = -EAGAIN; |
| 1061 | if (!*timeo) | 1061 | if (!*timeo) |
| 1062 | break; | 1062 | break; |
| 1063 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 1063 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 1064 | } | 1064 | } |
| 1065 | finish_wait(sk->sk_sleep, &wait); | 1065 | finish_wait(sk_sleep(sk), &wait); |
| 1066 | 1066 | ||
| 1067 | return skb == NULL ? ERR_PTR(err) : skb; | 1067 | return skb == NULL ? ERR_PTR(err) : skb; |
| 1068 | } | 1068 | } |
| @@ -1105,7 +1105,7 @@ static int dn_accept(struct socket *sock, struct socket *newsock, int flags) | |||
| 1105 | release_sock(sk); | 1105 | release_sock(sk); |
| 1106 | 1106 | ||
| 1107 | dst = skb_dst(skb); | 1107 | dst = skb_dst(skb); |
| 1108 | dst_release(xchg(&newsk->sk_dst_cache, dst)); | 1108 | sk_dst_set(newsk, dst); |
| 1109 | skb_dst_set(skb, NULL); | 1109 | skb_dst_set(skb, NULL); |
| 1110 | 1110 | ||
| 1111 | DN_SK(newsk)->state = DN_CR; | 1111 | DN_SK(newsk)->state = DN_CR; |
| @@ -1746,11 +1746,11 @@ static int dn_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
| 1746 | goto out; | 1746 | goto out; |
| 1747 | } | 1747 | } |
| 1748 | 1748 | ||
| 1749 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 1749 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 1750 | set_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags); | 1750 | set_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags); |
| 1751 | sk_wait_event(sk, &timeo, dn_data_ready(sk, queue, flags, target)); | 1751 | sk_wait_event(sk, &timeo, dn_data_ready(sk, queue, flags, target)); |
| 1752 | clear_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags); | 1752 | clear_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags); |
| 1753 | finish_wait(sk->sk_sleep, &wait); | 1753 | finish_wait(sk_sleep(sk), &wait); |
| 1754 | } | 1754 | } |
| 1755 | 1755 | ||
| 1756 | skb_queue_walk_safe(queue, skb, n) { | 1756 | skb_queue_walk_safe(queue, skb, n) { |
| @@ -1956,7 +1956,7 @@ static int dn_sendmsg(struct kiocb *iocb, struct socket *sock, | |||
| 1956 | } | 1956 | } |
| 1957 | 1957 | ||
| 1958 | if ((flags & MSG_TRYHARD) && sk->sk_dst_cache) | 1958 | if ((flags & MSG_TRYHARD) && sk->sk_dst_cache) |
| 1959 | dst_negative_advice(&sk->sk_dst_cache, sk); | 1959 | dst_negative_advice(sk); |
| 1960 | 1960 | ||
| 1961 | mss = scp->segsize_rem; | 1961 | mss = scp->segsize_rem; |
| 1962 | fctype = scp->services_rem & NSP_FC_MASK; | 1962 | fctype = scp->services_rem & NSP_FC_MASK; |
| @@ -2003,12 +2003,12 @@ static int dn_sendmsg(struct kiocb *iocb, struct socket *sock, | |||
| 2003 | goto out; | 2003 | goto out; |
| 2004 | } | 2004 | } |
| 2005 | 2005 | ||
| 2006 | prepare_to_wait(sk->sk_sleep, &wait, TASK_INTERRUPTIBLE); | 2006 | prepare_to_wait(sk_sleep(sk), &wait, TASK_INTERRUPTIBLE); |
| 2007 | set_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags); | 2007 | set_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags); |
| 2008 | sk_wait_event(sk, &timeo, | 2008 | sk_wait_event(sk, &timeo, |
| 2009 | !dn_queue_too_long(scp, queue, flags)); | 2009 | !dn_queue_too_long(scp, queue, flags)); |
| 2010 | clear_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags); | 2010 | clear_bit(SOCK_ASYNC_WAITDATA, &sk->sk_socket->flags); |
| 2011 | finish_wait(sk->sk_sleep, &wait); | 2011 | finish_wait(sk_sleep(sk), &wait); |
| 2012 | continue; | 2012 | continue; |
| 2013 | } | 2013 | } |
| 2014 | 2014 | ||
