On Fri, Mar 25, 2005 at 02:59:14PM +0100, Jesper Juhl wrote: > On Thu, 24 Mar 2005, H. Peter Anvin wrote: > > Note that Linux always accepts . and .. so it's just a matter of making them > > appear in readdir. > > > I'm working on that, but it's a learning experience for me, so it's going > a bit slow - but I'll get there.
Check the top of coda_venus_readdir in fs/coda/dir.c. Coda's directories internally don't have the '.' and '..' as the first two entries. In general it works just fine, I think there was one application where it was causing a problem so now we use 'f_pos == 0' and 'f_pos == 1' to spit out those entries based on dcache data. f_pos >= 2 goes through the normal directory, but we skip the out-of-order '.' and '..' entries. Btw. the '.' and '..' entries are used by applications that are linked against libc5 for the getpwd() implementation. I guess it was the only way to get path information before the introduction of the dcache. Oh, and the find -noleaf thing, a workaround for filesystems that don't count subdirectories is to set the directory linkcount to 1 instead of 2 + number of subdirs. The find optimization then subtracts 2, and as a result thinks there are (unsigned)-1 aka. UINT_MAX subdirectories and find will end up calling stat() on every directory entry. Jan - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/