64 bit quantities in statfs ?

David Schultz das at FreeBSD.ORG
Sun Aug 24 16:04:47 PDT 2003


On Mon, Aug 18, 2003, Matthew Dillon wrote:
>     As part of the DragonFly effort we are going to increase the 
>     mount path limit from 80 chars to 1024.
> 
>     This will change the statfs structure.  I thought I would adopt the
>     64 bit changes that 5.x has made to keep things synchronized.
> 
>     Except... there don't appear to be any 64 bit changes to struct
>     statfs in 5.x.  Am I missing something here?  Is there an 'nstatfs'
>     structure that I have not seen?  The following probably need to be 64
>     bit entries:
> 
> 	f_blocks
> 	f_bfree
> 	f_bavail
> 	f_files
> 	f_ffree
> 	f_syncwrites
> 	f_asyncwrites
> 	f_syncreads
> 	f_asyncreads

Yep, looks broken.  In the POSIX standard, the functionality of
statfs() is provided by statvfs(), so implementing the latter may
be a way out that doesn't involve breaking any ABIs.
Unfortunately, the implementation of statvfs() in FreeBSD 5.X
relies on statfs(), so it's broken despite having the correct
field sizes.  Moreover, statvfs() is underspecified such that it
isn't actually required to do anything useful...


More information about the freebsd-current mailing list