Revert "tun: remove useless codes in tun_chr_aio_read() and tun_recvmsg()"
This reverts commit 73713357ab58aacda1af715bb5a623528dbbfd79.
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>
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index bbb6935..3c5a8d8 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -1354,6 +1354,7 @@
ret = tun_do_read(tun, tfile, iv, len,
file->f_flags & O_NONBLOCK);
+ ret = min_t(ssize_t, ret, len);
if (ret > 0)
iocb->ki_pos = ret;
out:
@@ -1454,6 +1455,10 @@
}
ret = tun_do_read(tun, tfile, m->msg_iov, total_len,
flags & MSG_DONTWAIT);
+ if (ret > total_len) {
+ m->msg_flags |= MSG_TRUNC;
+ ret = flags & MSG_TRUNC ? ret : total_len;
+ }
out:
tun_put(tun);
return ret;