cvs commit: src/include fts.h src/lib/libc/gen fts.c
Peter Edwards
peadar at FreeBSD.org
Sat May 8 08:09:03 PDT 2004
peadar 2004/05/08 08:09:02 PDT
FreeBSD src repository
Modified files:
include fts.h
lib/libc/gen fts.c
Log:
The FTS_NOSTAT option is an optimisation that reduces the number
of stat(2) calls by keeping an eye of the number of links a directory
has. It assumes that each subdirectory will have a hard link to its
parent, to represent the ".." node, and stops calling stat(2) when
all links are accounted for in a given directory.
This assumption is really only valid for UNIX-like filesystems: A
concrete example is NTFS. The NTFS "i-node" does contain a link
count, but most/all directories have a link count between 0 and 2
inclusive. The end result is that find on an NTFS volume won't
actually traverse the entire hierarchy of the directories passed
to it. (Those with a link count of two are not traversed at all)
The fix checks the "UFSness" of the filesystem before enabling the
optimisation.
Reviewed By: Tim Kientzle (kientzle@)
Revision Changes Path
1.8 +3 -0 src/include/fts.h
1.24 +75 -3 src/lib/libc/gen/fts.c
More information about the cvs-src
mailing list