aboutsummaryrefslogtreecommitdiffstats
path: root/net/rose/af_rose.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/rose/af_rose.c')
-rw-r--r--net/rose/af_rose.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c
index 48319f7991ac..67e06ab7f854 100644
--- a/net/rose/af_rose.c
+++ b/net/rose/af_rose.c
@@ -499,15 +499,18 @@ static struct proto rose_proto = {
499 .obj_size = sizeof(struct rose_sock), 499 .obj_size = sizeof(struct rose_sock),
500}; 500};
501 501
502static int rose_create(struct socket *sock, int protocol) 502static int rose_create(struct net *net, struct socket *sock, int protocol)
503{ 503{
504 struct sock *sk; 504 struct sock *sk;
505 struct rose_sock *rose; 505 struct rose_sock *rose;
506 506
507 if (net != &init_net)
508 return -EAFNOSUPPORT;
509
507 if (sock->type != SOCK_SEQPACKET || protocol != 0) 510 if (sock->type != SOCK_SEQPACKET || protocol != 0)
508 return -ESOCKTNOSUPPORT; 511 return -ESOCKTNOSUPPORT;
509 512
510 if ((sk = sk_alloc(PF_ROSE, GFP_ATOMIC, &rose_proto, 1)) == NULL) 513 if ((sk = sk_alloc(net, PF_ROSE, GFP_ATOMIC, &rose_proto, 1)) == NULL)
511 return -ENOMEM; 514 return -ENOMEM;
512 515
513 rose = rose_sk(sk); 516 rose = rose_sk(sk);
@@ -545,7 +548,7 @@ static struct sock *rose_make_new(struct sock *osk)
545 if (osk->sk_type != SOCK_SEQPACKET) 548 if (osk->sk_type != SOCK_SEQPACKET)
546 return NULL; 549 return NULL;
547 550
548 if ((sk = sk_alloc(PF_ROSE, GFP_ATOMIC, &rose_proto, 1)) == NULL) 551 if ((sk = sk_alloc(osk->sk_net, PF_ROSE, GFP_ATOMIC, &rose_proto, 1)) == NULL)
549 return NULL; 552 return NULL;
550 553
551 rose = rose_sk(sk); 554 rose = rose_sk(sk);