[RFC] 2.4.20-rc3 change broke NFS

Joe Korty (jak@rudolph.ccur.com)
Tue, 11 Mar 2003 14:26:22 -0500 (EST)


Hi Trond, Everyone,
A change made to nfs_readpage_result() back in 2.4.20-rc3 broke NFS
for me. The problem shows up as EIO errors under heavy read/write
load (kernel builds) when Linux is the client and PowerMAX OS
(Concurrent Computer Corp) is the server. Both sides are running
NFSv3.

As the problem does not show up when Linux is also the server, it is
possible that the bug is in the PowerMAX OS side. However, the patch
made to Linux at that time simply looks *wrong* .. why should errors
be returned by a NFS read routine just because EOF is not set?
Perhaps we are hitting a race on close that Linux, when it is the
server, doesn't see because it responds faster?

Regards,
Joe

Patch is against 2.4.21-pre5+bk and removes the offending code snippet.

--- fs/nfs/read.c.orig 2003-03-11 05:02:10.000000000 -0500
+++ fs/nfs/read.c 2003-03-11 14:18:00.000000000 -0500
@@ -424,14 +424,9 @@
memset(p + count, 0, PAGE_CACHE_SIZE - count);
kunmap(page);
count = 0;
- if (data->res.eof)
- SetPageUptodate(page);
- else
- SetPageError(page);
- } else {
+ } else
count -= PAGE_CACHE_SIZE;
- SetPageUptodate(page);
- }
+ SetPageUptodate(page);
} else
SetPageError(page);
flush_dcache_page(page);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/