[ANNOUNCEMENT] [1.7] Updated: coreutils-7.0-1
Christian Franke
Christian.Franke@t-online.de
Tue Dec 16 20:19:00 GMT 2008
Corinna Vinschen wrote:
>> [...]
>> Also, coreutils currently only sorts large directories, but cygwin reports
>> directory st_size as 0 regardless of directory size, so there is no way to
>> identify large directories up front.
>>
>
> Not quite. Did you call `ls -s' on cygwin's / directory lately? A snippet
> from mine on one of my machines look like this:
>
> 160 drwxrwx---+ 1 corinna vinschen 163840 Dec 16 10:13 bin
> 0 drwxrwx---+ 1 corinna vinschen 0 Apr 15 2008 cygdrive
> 0 drwxrwx---+ 1 corinna vinschen 0 Apr 30 2008 dev
> 12 drwxrwx---+ 1 corinna vinschen 12288 Dec 15 11:15 etc
> 4 drwxr-xr-x+ 1 corinna vinschen 4096 Jul 4 10:41 home
> 40 drwxrwx---+ 1 corinna vinschen 40960 Dec 8 11:58 lib
> 0 dr-xr-xr-x 8 corinna vinschen 0 Dec 1 2006 proc
> 0 drwxrwx---+ 1 corinna vinschen 0 Apr 15 2008 sbin
> 4 drwxrwxrwt+ 1 corinna vinschen 4096 Dec 15 16:35 tmp
> 4 drwxrwx---+ 1 corinna vinschen 4096 Dec 8 11:54 usr
> 0 drwxr-xr-x+ 1 SYSTEM Administrators 0 May 21 2008 var
>
> The size of a directory which you just created is 0. But big
> directories (like /bin), or directories which once were big (like /tmp)
> have a size which is a multiple of 4K. This size is what's returned by
> the NT function NtQueryInformationFile. I assume that a directory is
> created with one block in a pre-allocated area in the MFT or so, which
> explains size 0. When the dir grows, then normal FS blocks are added,
> so the size grows beyond 0. But actualyy I have no idea, so it could be
> entirely different. :)
>
>
On my XP SP2, st_size is always 0, even for large and fragmented
directories.
>>
>> Are there any file systems accessed by cygwin where sorting readdir()
>> results into inode order, rather than visiting contents in directory
>> listing or name order, provides a speedup by allowing less disk seek time
>> (or put another way, do the inode numbers presented by Cygwin for local
>> NTFS disks match disk seek order)? Conversely, are there any file systems
>> where taking the time to sort readdir() results is provably a waste (for
>> example, a ramdisk, where seek time is instant regardless of inode, or FAT
>> and NFS where inode numbers are synthesized with no correlation to disk
>> layout,
>>
>
> Interesting question. NTFS and FAT filesystems are name-sorted by
> default. AFAIK directory changes on FAT are done in-memory, resorted,
> and then written back as a whole block to disk.
XP does not sort a FAT directory.
Does this probably depend on Windows version?
Christian
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/
More information about the Cygwin
mailing list