X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=net%2Fipv4%2Fipvs%2Fip_vs_sync.c;fp=net%2Fipv4%2Fipvs%2Fip_vs_sync.c;h=80fdab71e20cf45668fee59659dc50d1018a2888;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=7b727a92b9d7866d7526594294d139fe1941b335;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/net/ipv4/ipvs/ip_vs_sync.c b/net/ipv4/ipvs/ip_vs_sync.c index 7b727a92b..80fdab71e 100644 --- a/net/ipv4/ipvs/ip_vs_sync.c +++ b/net/ipv4/ipvs/ip_vs_sync.c @@ -555,25 +555,15 @@ static struct socket * make_receive_sock(void) static int ip_vs_send_async(struct socket *sock, const char *buffer, const size_t length) { - struct msghdr msg; - mm_segment_t oldfs; - struct iovec iov; + struct msghdr msg = {.msg_flags = MSG_DONTWAIT|MSG_NOSIGNAL}; + struct kvec iov; int len; EnterFunction(7); iov.iov_base = (void *)buffer; iov.iov_len = length; - msg.msg_name = 0; - msg.msg_namelen = 0; - msg.msg_iov = &iov; - msg.msg_iovlen = 1; - msg.msg_control = NULL; - msg.msg_controllen = 0; - msg.msg_flags = MSG_DONTWAIT|MSG_NOSIGNAL; - - oldfs = get_fs(); set_fs(KERNEL_DS); - len = sock_sendmsg(sock, &msg, (size_t)(length)); - set_fs(oldfs); + + len = kernel_sendmsg(sock, &msg, &iov, 1, (size_t)(length)); LeaveFunction(7); return len; @@ -583,27 +573,17 @@ ip_vs_send_async(struct socket *sock, const char *buffer, const size_t length) static int ip_vs_receive(struct socket *sock, char *buffer, const size_t buflen) { - struct msghdr msg; - struct iovec iov; + struct msghdr msg = {NULL,}; + struct kvec iov; int len; - mm_segment_t oldfs; EnterFunction(7); /* Receive a packet */ iov.iov_base = buffer; iov.iov_len = (size_t)buflen; - msg.msg_name = 0; - msg.msg_namelen = 0; - msg.msg_iov = &iov; - msg.msg_iovlen = 1; - msg.msg_control = NULL; - msg.msg_controllen = 0; - msg.msg_flags = 0; - - oldfs = get_fs(); set_fs(KERNEL_DS); - len = sock_recvmsg(sock, &msg, buflen, 0); - set_fs(oldfs); + + len = kernel_recvmsg(sock, &msg, &iov, 1, buflen, 0); if (len < 0) return -1;