NFS: Ensure that we break out of read/write_schedule_segment on error
Currently we do break out of the for() loop, but we also need to
break out of the enclosing do {} while()...
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Fred Isaman <iisaman@netapp.com>
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c
index e83545c..f30d5c2 100644
--- a/fs/nfs/direct.c
+++ b/fs/nfs/direct.c
@@ -396,7 +396,7 @@
pos += req_len;
count -= req_len;
}
- } while (count != 0);
+ } while (count != 0 && result >= 0);
kfree(pagevec);
@@ -692,6 +692,7 @@
nfs_release_request(req);
nfs_direct_release_pages(pagevec + i,
npages - i);
+ break;
}
pgbase = 0;
bytes -= req_len;
@@ -700,7 +701,7 @@
pos += req_len;
count -= req_len;
}
- } while (count != 0);
+ } while (count != 0 && result >= 0);
kfree(pagevec);