提交 0b62fca2 编写于 作者: A Al Viro

switch getfrag callbacks to ..._full() primitives

Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
上级 15e6cb46
...@@ -20,7 +20,7 @@ static __inline__ int udplite_getfrag(void *from, char *to, int offset, ...@@ -20,7 +20,7 @@ static __inline__ int udplite_getfrag(void *from, char *to, int offset,
int len, int odd, struct sk_buff *skb) int len, int odd, struct sk_buff *skb)
{ {
struct msghdr *msg = from; struct msghdr *msg = from;
return copy_from_iter(to, len, &msg->msg_iter) != len ? -EFAULT : 0; return copy_from_iter_full(to, len, &msg->msg_iter) ? 0 : -EFAULT;
} }
/* Designate sk as UDP-Lite socket */ /* Designate sk as UDP-Lite socket */
......
...@@ -802,11 +802,11 @@ ip_generic_getfrag(void *from, char *to, int offset, int len, int odd, struct sk ...@@ -802,11 +802,11 @@ ip_generic_getfrag(void *from, char *to, int offset, int len, int odd, struct sk
struct msghdr *msg = from; struct msghdr *msg = from;
if (skb->ip_summed == CHECKSUM_PARTIAL) { if (skb->ip_summed == CHECKSUM_PARTIAL) {
if (copy_from_iter(to, len, &msg->msg_iter) != len) if (!copy_from_iter_full(to, len, &msg->msg_iter))
return -EFAULT; return -EFAULT;
} else { } else {
__wsum csum = 0; __wsum csum = 0;
if (csum_and_copy_from_iter(to, len, &csum, &msg->msg_iter) != len) if (!csum_and_copy_from_iter_full(to, len, &csum, &msg->msg_iter))
return -EFAULT; return -EFAULT;
skb->csum = csum_block_add(skb->csum, csum, odd); skb->csum = csum_block_add(skb->csum, csum, odd);
} }
......
...@@ -609,15 +609,15 @@ int ping_getfrag(void *from, char *to, ...@@ -609,15 +609,15 @@ int ping_getfrag(void *from, char *to,
fraglen -= sizeof(struct icmphdr); fraglen -= sizeof(struct icmphdr);
if (fraglen < 0) if (fraglen < 0)
BUG(); BUG();
if (csum_and_copy_from_iter(to + sizeof(struct icmphdr), if (!csum_and_copy_from_iter_full(to + sizeof(struct icmphdr),
fraglen, &pfh->wcheck, fraglen, &pfh->wcheck,
&pfh->msg->msg_iter) != fraglen) &pfh->msg->msg_iter))
return -EFAULT; return -EFAULT;
} else if (offset < sizeof(struct icmphdr)) { } else if (offset < sizeof(struct icmphdr)) {
BUG(); BUG();
} else { } else {
if (csum_and_copy_from_iter(to, fraglen, &pfh->wcheck, if (!csum_and_copy_from_iter_full(to, fraglen, &pfh->wcheck,
&pfh->msg->msg_iter) != fraglen) &pfh->msg->msg_iter))
return -EFAULT; return -EFAULT;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册