Poul-Henning Kamp wrote:
>
> You are not supposed to call __getcwd() directly.
Yes, but it would be an excellent junior-kernel-hacker task to make it work
in all cases, ie: manually searching parent directories. netbsd does this,
as does linux, and if we're going to emulate the linux getcwd(2) syscall
then we need it. The NetBSD code is probably a good place to start for
pointers, but it wont be directly usable due to name-cache differences.
> Poul-Henning
>
> In message <[EMAIL PROTECTED]>, "John W. De Boskey" writes:
> >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
> >
>
> --
> Poul-Henning Kamp | UNIX since Zilog Zeus 3.20
> [EMAIL PROTECTED] | TCP/IP since RFC 956
> FreeBSD committer | BSD since 4.3-tahoe
> Never attribute to malice what can adequately be explained by incompetence.
>
> To Unsubscribe: send mail to [EMAIL PROTECTED]
> with "unsubscribe freebsd-current" in the body of the message
>
>
Cheers,
-Peter
--
Peter Wemm - [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
"All of this is for nothing if we don't go to the stars" - JMS/B5
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message