summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/nfs.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/nfs.c b/fs/nfs.c
index 1bfd36fcb6..b070ca79d5 100644
--- a/fs/nfs.c
+++ b/fs/nfs.c
@@ -450,14 +450,17 @@ again:
nfs_timer_start = get_time_ns();
- nfs_state = STATE_START;
+ while (1) {
+ nfs_state = STATE_START;
- while (nfs_state != STATE_DONE) {
if (ctrlc())
return ERR_PTR(-EINTR);
net_poll();
+ if (nfs_state != STATE_DONE)
+ continue;
+
if (is_timeout(nfs_timer_start, NFS_TIMEOUT)) {
tries++;
if (tries == NFS_MAX_RESEND)