net: Pass kern from net_proto_family.create to sk_alloc
In preparation for changing how struct net is refcounted on kernel sockets pass the knowledge that we are creating a kernel socket from sock_create_kern through to sk_alloc. Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Esse commit está contido em:

commit de
David S. Miller

pai
eeb1bd5c40
commit
11aa9c28b4
@@ -535,12 +535,12 @@ static void iucv_sock_init(struct sock *sk, struct sock *parent)
|
||||
sk->sk_type = parent->sk_type;
|
||||
}
|
||||
|
||||
static struct sock *iucv_sock_alloc(struct socket *sock, int proto, gfp_t prio)
|
||||
static struct sock *iucv_sock_alloc(struct socket *sock, int proto, gfp_t prio, int kern)
|
||||
{
|
||||
struct sock *sk;
|
||||
struct iucv_sock *iucv;
|
||||
|
||||
sk = sk_alloc(&init_net, PF_IUCV, prio, &iucv_proto);
|
||||
sk = sk_alloc(&init_net, PF_IUCV, prio, &iucv_proto, kern);
|
||||
if (!sk)
|
||||
return NULL;
|
||||
iucv = iucv_sk(sk);
|
||||
@@ -602,7 +602,7 @@ static int iucv_sock_create(struct net *net, struct socket *sock, int protocol,
|
||||
return -ESOCKTNOSUPPORT;
|
||||
}
|
||||
|
||||
sk = iucv_sock_alloc(sock, protocol, GFP_KERNEL);
|
||||
sk = iucv_sock_alloc(sock, protocol, GFP_KERNEL, kern);
|
||||
if (!sk)
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -1723,7 +1723,7 @@ static int iucv_callback_connreq(struct iucv_path *path,
|
||||
}
|
||||
|
||||
/* Create the new socket */
|
||||
nsk = iucv_sock_alloc(NULL, sk->sk_type, GFP_ATOMIC);
|
||||
nsk = iucv_sock_alloc(NULL, sk->sk_type, GFP_ATOMIC, 0);
|
||||
if (!nsk) {
|
||||
err = pr_iucv->path_sever(path, user_data);
|
||||
iucv_path_free(path);
|
||||
@@ -1933,7 +1933,7 @@ static int afiucv_hs_callback_syn(struct sock *sk, struct sk_buff *skb)
|
||||
goto out;
|
||||
}
|
||||
|
||||
nsk = iucv_sock_alloc(NULL, sk->sk_type, GFP_ATOMIC);
|
||||
nsk = iucv_sock_alloc(NULL, sk->sk_type, GFP_ATOMIC, 0);
|
||||
bh_lock_sock(sk);
|
||||
if ((sk->sk_state != IUCV_LISTEN) ||
|
||||
sk_acceptq_is_full(sk) ||
|
||||
|
Referência em uma nova issue
Block a user