From: Junio C Hamano Date: Sun, 22 Nov 2009 01:21:07 GMT Subject: Re: [PATCH] git-count-objects: Fix a disk-space under-estimate on Cygwin Message-ID: <7veinrnym4.fsf@alter.siamese.dyndns.org> In-Reply-To: <4B072D98.6020101@ramsay1.demon.co.uk> Ramsay Jones writes: > I haven't tried this patch, but I think you may need to add something like > the following (*not tested*): > > --- >8 --- > diff --git a/compat/cygwin.c b/compat/cygwin.c > index b4a51b9..7e9edec 100644 > --- a/compat/cygwin.c > +++ b/compat/cygwin.c > @@ -53,6 +53,7 @@ static int do_stat(const char *file_name, struct stat *buf, stat_fn_t cygstat) > buf->st_size = (off_t)fdata.nFileSizeLow; > #endif > buf->st_blocks = size_to_blocks(buf->st_size); > + buf->st_blksize = 512; > filetime_to_timespec(&fdata.ftLastAccessTime, &buf->st_atim); > filetime_to_timespec(&fdata.ftLastWriteTime, &buf->st_mtim); > filetime_to_timespec(&fdata.ftCreationTime, &buf->st_ctim); > --- >8 --- Doesn't this contradict with everything you said? You are forcing st_blksize to 512 but still return the same old st_blocks; I do not understand what that would achieve. In your experiments, st_blocks was reported in 1024-byte blocks and that size coincided with what was reported in st_blksize, and that was the whole point of the approach taken by the ST_BLOCKS_COUNTS_IN_BLKSIZE patch.