diff options
author | David S. Miller <davem@davemloft.net> | 2013-12-10 22:06:18 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-12-10 22:06:18 -0500 |
commit | de2aa4760b45262cf25eac6d4c0e461703b7b64b (patch) | |
tree | 2762ded4834e97fa397b9f34d09454ad7aacb925 /drivers/net/macvtap.c | |
parent | 42404c09151029689659818e2196ee2fd97142aa (diff) |
Revert "macvtap: remove useless codes in macvtap_aio_read() and macvtap_recvmsg()"
This reverts commit 41e4af69a5984a3193ba3108fb4e067b0e34dc73.
MSG_TRUNC handling was broken and is going to be fixed in the
'net' tree, so revert this.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/macvtap.c')
-rw-r--r-- | drivers/net/macvtap.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c index 2aa5e973ef17..4a34bcb6549f 100644 --- a/drivers/net/macvtap.c +++ b/drivers/net/macvtap.c | |||
@@ -871,6 +871,7 @@ static ssize_t macvtap_aio_read(struct kiocb *iocb, const struct iovec *iv, | |||
871 | } | 871 | } |
872 | 872 | ||
873 | ret = macvtap_do_read(q, iv, len, file->f_flags & O_NONBLOCK); | 873 | ret = macvtap_do_read(q, iv, len, file->f_flags & O_NONBLOCK); |
874 | ret = min_t(ssize_t, ret, len); /* XXX copied from tun.c. Why? */ | ||
874 | if (ret > 0) | 875 | if (ret > 0) |
875 | iocb->ki_pos = ret; | 876 | iocb->ki_pos = ret; |
876 | out: | 877 | out: |
@@ -1105,6 +1106,10 @@ static int macvtap_recvmsg(struct kiocb *iocb, struct socket *sock, | |||
1105 | return -EINVAL; | 1106 | return -EINVAL; |
1106 | ret = macvtap_do_read(q, m->msg_iov, total_len, | 1107 | ret = macvtap_do_read(q, m->msg_iov, total_len, |
1107 | flags & MSG_DONTWAIT); | 1108 | flags & MSG_DONTWAIT); |
1109 | if (ret > total_len) { | ||
1110 | m->msg_flags |= MSG_TRUNC; | ||
1111 | ret = flags & MSG_TRUNC ? ret : total_len; | ||
1112 | } | ||
1108 | return ret; | 1113 | return ret; |
1109 | } | 1114 | } |
1110 | 1115 | ||