summaryrefslogtreecommitdiffstats
path: root/fs/nfs.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2019-05-10 18:15:50 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2019-05-10 18:15:50 +0200
commitbac01839b063697200d5b957b652da197b8f0b1d (patch)
tree8b2441ee12fd42abf152d990eda478aaf722e4e9 /fs/nfs.c
parent65cfdbebb19f0b1c8d322a3eb9ec464d669a4d3f (diff)
parenta306c1c0bd09e7ee074d113b8a86bd815ef64017 (diff)
downloadbarebox-bac01839b063697200d5b957b652da197b8f0b1d.tar.gz
barebox-bac01839b063697200d5b957b652da197b8f0b1d.tar.xz
Merge branch 'for-next/misc'
Diffstat (limited to 'fs/nfs.c')
-rw-r--r--fs/nfs.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/nfs.c b/fs/nfs.c
index 574fb85fb6..d606ccd1e9 100644
--- a/fs/nfs.c
+++ b/fs/nfs.c
@@ -436,9 +436,20 @@ static struct packet *rpc_req(struct nfs_priv *npriv, int rpc_prog,
npriv->con->udp->uh_dport = hton16(dport);
+ nfs_timer_start = get_time_ns();
+
again:
ret = net_udp_send(npriv->con,
sizeof(pkt) + datalen * sizeof(uint32_t));
+ if (ret) {
+ if (is_timeout(nfs_timer_start, NFS_TIMEOUT)) {
+ tries++;
+ if (tries == NFS_MAX_RESEND)
+ return ERR_PTR(-ETIMEDOUT);
+ }
+
+ goto again;
+ }
nfs_timer_start = get_time_ns();