Hi,
I'm in the middle of trying to debug a java problem
and have found something I don't quite understand.
Basically, __getcwd() is returning errno 20, Not
a directory. man getcwd doesn't list ENOTDIR so I
started looking in the sources and found kern/vfs_cache.c:
if (vp->v_dd->v_id != vp->v_ddid) {
numcwdfail1++;
free(buf, M_TEMP);
return (ENOTDIR);
}
Could someone who is more familiar with the vfs
layers provide some pointers as to what is being
done here? The code is instrumented, and sysctl
has the following to say:
% sysctl -a | grep cwd
vfs.cache.numcwdcalls: 225014
vfs.cache.numcwdfail1: 845 1 -> ENOTDIR
vfs.cache.numcwdfail2: 6775 2 -> ENOENT
vfs.cache.numcwdfail3: 0
vfs.cache.numcwdfail4: 0
vfs.cache.numcwdfound: 217394
The really annoying aspect to this is that it doesn't
happen everytime, and happens more often when in a nfs
mounted directory vs. a local directory.
Thanks!
John
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message