summaryrefslogtreecommitdiff
path: root/net/nfs.c
diff options
context:
space:
mode:
authorVasily Khoruzhick <anarsoul@gmail.com>2018-05-14 08:34:36 -0700
committerJoe Hershberger <joe.hershberger@ni.com>2018-06-13 13:54:16 -0500
commitd48d40a09127dfcb1f073c3e44de4b858393ae9e (patch)
tree47a1aa80f22d3ff9b0a5bbea8e9d285d7805379c /net/nfs.c
parent286bea2e85a73602624b8dc05dd0dfac8e7e4263 (diff)
net: nfs: don't fail when nfs_read_reply returns -NFS_RPC_DROP
That can happen if duplicate UDP packet arrived, and that's not uncommon. Anyway, we ignore packets with rpc_id lower than last we sent for other requests, so it makes sense to do that for read request as well. Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'net/nfs.c')
-rw-r--r--net/nfs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/nfs.c b/net/nfs.c
index 83ed0a7c37..9a16765ba1 100644
--- a/net/nfs.c
+++ b/net/nfs.c
@@ -822,6 +822,8 @@ static void nfs_handler(uchar *pkt, unsigned dest, struct in_addr sip,
case STATE_READ_REQ:
rlen = nfs_read_reply(pkt, len);
+ if (rlen == -NFS_RPC_DROP)
+ break;
net_set_timeout_handler(nfs_timeout, nfs_timeout_handler);
if (rlen > 0) {
nfs_offset += rlen;