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

Reply via email to