diff options
Diffstat (limited to 'net/x25/af_x25.c')
-rw-r--r-- | net/x25/af_x25.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/net/x25/af_x25.c b/net/x25/af_x25.c index 6ba67c523c16..9fc5b023d111 100644 --- a/net/x25/af_x25.c +++ b/net/x25/af_x25.c | |||
@@ -191,7 +191,7 @@ static int x25_device_event(struct notifier_block *this, unsigned long event, | |||
191 | struct net_device *dev = ptr; | 191 | struct net_device *dev = ptr; |
192 | struct x25_neigh *nb; | 192 | struct x25_neigh *nb; |
193 | 193 | ||
194 | if (dev_net(dev) != &init_net) | 194 | if (!net_eq(dev_net(dev), &init_net)) |
195 | return NOTIFY_DONE; | 195 | return NOTIFY_DONE; |
196 | 196 | ||
197 | if (dev->type == ARPHRD_X25 | 197 | if (dev->type == ARPHRD_X25 |
@@ -555,13 +555,11 @@ static struct sock *x25_make_new(struct sock *osk) | |||
555 | x25 = x25_sk(sk); | 555 | x25 = x25_sk(sk); |
556 | 556 | ||
557 | sk->sk_type = osk->sk_type; | 557 | sk->sk_type = osk->sk_type; |
558 | sk->sk_socket = osk->sk_socket; | ||
559 | sk->sk_priority = osk->sk_priority; | 558 | sk->sk_priority = osk->sk_priority; |
560 | sk->sk_protocol = osk->sk_protocol; | 559 | sk->sk_protocol = osk->sk_protocol; |
561 | sk->sk_rcvbuf = osk->sk_rcvbuf; | 560 | sk->sk_rcvbuf = osk->sk_rcvbuf; |
562 | sk->sk_sndbuf = osk->sk_sndbuf; | 561 | sk->sk_sndbuf = osk->sk_sndbuf; |
563 | sk->sk_state = TCP_ESTABLISHED; | 562 | sk->sk_state = TCP_ESTABLISHED; |
564 | sk->sk_sleep = osk->sk_sleep; | ||
565 | sk->sk_backlog_rcv = osk->sk_backlog_rcv; | 563 | sk->sk_backlog_rcv = osk->sk_backlog_rcv; |
566 | sock_copy_flags(sk, osk); | 564 | sock_copy_flags(sk, osk); |
567 | 565 | ||
@@ -614,8 +612,7 @@ static int x25_release(struct socket *sock) | |||
614 | break; | 612 | break; |
615 | } | 613 | } |
616 | 614 | ||
617 | sock->sk = NULL; | 615 | sock_orphan(sk); |
618 | sk->sk_socket = NULL; /* Not used, but we should do this */ | ||
619 | out: | 616 | out: |
620 | return 0; | 617 | return 0; |
621 | } | 618 | } |
@@ -808,14 +805,12 @@ static int x25_accept(struct socket *sock, struct socket *newsock, int flags) | |||
808 | if (!skb->sk) | 805 | if (!skb->sk) |
809 | goto out2; | 806 | goto out2; |
810 | newsk = skb->sk; | 807 | newsk = skb->sk; |
811 | newsk->sk_socket = newsock; | 808 | sock_graft(newsk, newsock); |
812 | newsk->sk_sleep = &newsock->wait; | ||
813 | 809 | ||
814 | /* Now attach up the new socket */ | 810 | /* Now attach up the new socket */ |
815 | skb->sk = NULL; | 811 | skb->sk = NULL; |
816 | kfree_skb(skb); | 812 | kfree_skb(skb); |
817 | sk->sk_ack_backlog--; | 813 | sk->sk_ack_backlog--; |
818 | newsock->sk = newsk; | ||
819 | newsock->state = SS_CONNECTED; | 814 | newsock->state = SS_CONNECTED; |
820 | rc = 0; | 815 | rc = 0; |
821 | out2: | 816 | out2: |