Date: Thu, 6 Sep 2001 21:15:32 -0700 From: "John W. De Boskey" <jwd@FreeBSD.org> To: Current List <freebsd-current@FreeBSD.org> Subject: __getcwd & errno 20 (Not a directory) vfs_cache.c Message-ID: <20010906211532.A52687@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
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 majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010906211532.A52687>