@ -1457,18 +1457,12 @@ static struct socket *make_send_sock(struct net *net, int id)
struct socket * sock ;
int result ;
/* First create a socket move it to right name space later */
result = sock_create_kern ( & init_ net, PF_INET , SOCK_DGRAM , IPPROTO_UDP , & sock ) ;
/* First create a socket */
result = sock_create_kern ( net , PF_INET , SOCK_DGRAM , IPPROTO_UDP , & sock ) ;
if ( result < 0 ) {
pr_err ( " Error during creation of socket; terminating \n " ) ;
return ERR_PTR ( result ) ;
}
/*
* Kernel sockets that are a part of a namespace , should not
* hold a reference to a namespace in order to allow to stop it .
* After sk_change_net should be released using sk_release_kernel .
*/
sk_change_net ( sock - > sk , net ) ;
result = set_mcast_if ( sock - > sk , ipvs - > master_mcast_ifn ) ;
if ( result < 0 ) {
pr_err ( " Error setting outbound mcast interface \n " ) ;
@ -1497,7 +1491,7 @@ static struct socket *make_send_sock(struct net *net, int id)
return sock ;
error :
sk_release_kernel ( sock - > s k ) ;
soc k_release ( sock ) ;
return ERR_PTR ( result ) ;
}
@ -1518,17 +1512,11 @@ static struct socket *make_receive_sock(struct net *net, int id)
int result ;
/* First create a socket */
result = sock_create_kern ( & init_ net, PF_INET , SOCK_DGRAM , IPPROTO_UDP , & sock ) ;
result = sock_create_kern ( net , PF_INET , SOCK_DGRAM , IPPROTO_UDP , & sock ) ;
if ( result < 0 ) {
pr_err ( " Error during creation of socket; terminating \n " ) ;
return ERR_PTR ( result ) ;
}
/*
* Kernel sockets that are a part of a namespace , should not
* hold a reference to a namespace in order to allow to stop it .
* After sk_change_net should be released using sk_release_kernel .
*/
sk_change_net ( sock - > sk , net ) ;
/* it is equivalent to the REUSEADDR option in user-space */
sock - > sk - > sk_reuse = SK_CAN_REUSE ;
result = sysctl_sync_sock_size ( ipvs ) ;
@ -1554,7 +1542,7 @@ static struct socket *make_receive_sock(struct net *net, int id)
return sock ;
error :
sk_release_kernel ( sock - > s k ) ;
soc k_release ( sock ) ;
return ERR_PTR ( result ) ;
}
@ -1692,7 +1680,7 @@ done:
ip_vs_sync_buff_release ( sb ) ;
/* release the sending multicast socket */
sk_release_kernel ( tinfo - > sock - > s k ) ;
soc k_release ( tinfo - > sock ) ;
kfree ( tinfo ) ;
return 0 ;
@ -1729,7 +1717,7 @@ static int sync_thread_backup(void *data)
}
/* release the sending multicast socket */
sk_release_kernel ( tinfo - > sock - > s k ) ;
soc k_release ( tinfo - > sock ) ;
kfree ( tinfo - > buf ) ;
kfree ( tinfo ) ;
@ -1854,11 +1842,11 @@ int start_sync_thread(struct net *net, int state, char *mcast_ifn, __u8 syncid)
return 0 ;
outsocket :
sk_release_kernel ( sock - > s k ) ;
soc k_release ( sock ) ;
outtinfo :
if ( tinfo ) {
sk_release_kernel ( tinfo - > sock - > s k ) ;
soc k_release ( tinfo - > sock ) ;
kfree ( tinfo - > buf ) ;
kfree ( tinfo ) ;
}