|
@@ -566,13 +566,11 @@ static struct sock *rose_make_new(struct sock *osk)
|
|
#endif
|
|
#endif
|
|
|
|
|
|
sk->sk_type = osk->sk_type;
|
|
sk->sk_type = osk->sk_type;
|
|
- sk->sk_socket = osk->sk_socket;
|
|
|
|
sk->sk_priority = osk->sk_priority;
|
|
sk->sk_priority = osk->sk_priority;
|
|
sk->sk_protocol = osk->sk_protocol;
|
|
sk->sk_protocol = osk->sk_protocol;
|
|
sk->sk_rcvbuf = osk->sk_rcvbuf;
|
|
sk->sk_rcvbuf = osk->sk_rcvbuf;
|
|
sk->sk_sndbuf = osk->sk_sndbuf;
|
|
sk->sk_sndbuf = osk->sk_sndbuf;
|
|
sk->sk_state = TCP_ESTABLISHED;
|
|
sk->sk_state = TCP_ESTABLISHED;
|
|
- sk->sk_sleep = osk->sk_sleep;
|
|
|
|
sock_copy_flags(sk, osk);
|
|
sock_copy_flags(sk, osk);
|
|
|
|
|
|
init_timer(&rose->timer);
|
|
init_timer(&rose->timer);
|
|
@@ -924,14 +922,12 @@ static int rose_accept(struct socket *sock, struct socket *newsock, int flags)
|
|
goto out_release;
|
|
goto out_release;
|
|
|
|
|
|
newsk = skb->sk;
|
|
newsk = skb->sk;
|
|
- newsk->sk_socket = newsock;
|
|
|
|
- newsk->sk_sleep = &newsock->wait;
|
|
|
|
|
|
+ sock_graft(newsk, newsock);
|
|
|
|
|
|
/* Now attach up the new socket */
|
|
/* Now attach up the new socket */
|
|
skb->sk = NULL;
|
|
skb->sk = NULL;
|
|
kfree_skb(skb);
|
|
kfree_skb(skb);
|
|
sk->sk_ack_backlog--;
|
|
sk->sk_ack_backlog--;
|
|
- newsock->sk = newsk;
|
|
|
|
|
|
|
|
out_release:
|
|
out_release:
|
|
release_sock(sk);
|
|
release_sock(sk);
|