(Illustration by Gaich Muramatsu)
Hello, I have verified that Linux 2.6.5 contains the "evil" NFS-related code in fs/namei.c and that removing that code eliminates some obscure problems with Coda. The problems I observed with generic 2.4.x kernels and unpatched 2.6.5 are triggerable by running a lot of processes from Coda simultaneously, which results in consurrent lookups on the same paths. It can be hard to trigger, one of my clients did not show any signs, while another one (with a lot better connectivity being the most remarkable difference) was suffering a lot. My tests looks like: ----------------------------------------------------------------------- $ cat | cat | [.... about 100 times ....] | cat | cat exec: /XXXXXXXXXXXXXXXXXX: No such file or directory exec: /XXXXXXXXXXXXXXXXXX: No such file or directory bash: /YYYYYYYYYYYYYYYYYY/cat: /ZZZZZZZZZZZZZZZZZZZZ/sh: bad interpreter: No such file or directory $ ----------------------------------------------------------------------- where "cat" is a wrapper placed on Coda and running things from Coda via long absolute pathnames, which I replaced here by XXX YYY ZZZ, their contents is irrelevant. The error messages repeat irregular number of times. Errors are seldom but very annoying, especially e.g. during ./configure making some tests inadvertently fail... Applying the attached patch to 2.6.5 eliminates the problem. As no of my machines is running NFS more than casually, I can not guarantee it doesn't hurt NFS... otherwise patched 2.4.x kernels have been in use for more than a year without problems. Cheers, -- Ivan