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-all mailing list