ESTALE after cwd deleted by same NFS client
Colin Percival
cperciva at tarsnap.com
Wed Dec 14 07:35:36 UTC 2016
On 12/13/16 05:04, Rick Macklem wrote:
>>>> On Sun, Dec 11, 2016 at 11:06:42PM +0000, Colin Percival wrote:
>>>>> If I run the following with /nfs/ being an NFS mount:
>>>>> # mkdir /nfs/foo
>>>>> # touch /nfs/foo/bar
>>>>> # cd /nfs/foo
>>>>> # rm -r /nfs/foo
>>>>> # rm bar
> If this is happening on a single client
Yes. At the time I ran this, there was only one client.
> something is broken.
> - For this step, the name cache should have a miss and the Lookup should fail with
> ENOENT. I think the most likely failures are...
> --> Either the name cache in the client is broken and has a hit
> OR
> --> The server replies NFS_OK for the lookup, even though it should have been removed.
The server replied ESTALE for the 'rm bar'. Is that the lookup you mean? I
don't think a lookup happened for /nfs/foo after the 'rm -r' completed, since
it was already the current directory (despite no longer existing).
> Did you try:
> sysctl debug.disable_vnfullpath=1 (or something close to disable_vnfullpath)
> to see if it helped?
If you mean debug.disablefullpath=1, yes, I tried that. I also tried setting
vfs.lookup_shared=0; also no change.
--
Colin Percival
Security Officer Emeritus, FreeBSD | The power to serve
Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid
More information about the freebsd-fs
mailing list