On Jan 18, 2008, at 11:55 AM, Peter Staubach wrote:
If an ESTALE occurs during the second resolution attempt, we should
give up. When I addressed this issue two years ago, the two-try
logic was the only acceptable solution because there's no way to
guarantee the pathname resolution will ever finish unless we put a
hard limit on it.
Which is a server bug, AFAICS. It's simply impossible to close all
the windows that result from sloppy file time stamps without
completely disabling client-side caching. The NFS protocol relies on
file time stamps to manage cache coherence. If the server is lying
about time stamps, there's no way the client can cache coherently.
A use case or two would be useful to explore (on linux-nfs or linux-
fsdevel, rather than lkml).
If the final operation fails after a pathname resolution, then it's a
real error. Is there a fixed and valid recovery script for the
client in this case that will allow the mkdir to proceed?
Admittedly, the NFS client could recover more cleanly from some of
these problems, but given the architecture of the Linux VFS, it will
be difficult to address some of the corner cases.
--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
--