large ufs2 partitions and 'df'
Julian Elischer
julian at elischer.org
Sun May 11 21:04:27 PDT 2003
On Sun, 11 May 2003, Kirk McKusick wrote:
> >
> > I think that switching to a new syscall with a fixed structure
> > and using the rules you mention above to populate the structure in an
> > ostatfs call might be the best answer.
> > Old binaries probably only need to know that there is > X blocks free
> > and not necessarily the correct number.
> > New binaries can use the new syscall.
>
> So right you are. It would be possible to get the space by nibbling
> a bit more space from MNAMELEN, but at some point we need to just bite
> the bullet and define a new structure. I am leaning towards believing
> that time is now. If we do define a new structure, I would like to
> clean up the existing one a bit. I would propose this:
>
> #define MFSNAMELEN 16 /* length of fs type name, including null */
> #define MNAMELEN 80 /* size of on/from name bufs */
> struct statfs {
> u_int_32 f_bsize; /* fundamental filesystem block size */
> u_int_32 f_iosize; /* optimal transfer block size */
> int_64 f_blocks; /* total data blocks in filesystem */
> int_64 f_bfree; /* free blocks in fs */
> int_64 f_bavail; /* free blocks avail to non-superuser */
> int_64 f_files; /* total file nodes in filesystem */
> int_64 f_ffree; /* free file nodes in fs */
> u_int_64 f_syncwrites; /* count of sync writes since mount */
> u_int_64 f_asyncwrites; /* count of async writes since mount */
> u_int_64 f_syncreads; /* count of sync reads since mount */
> u_int_64 f_asyncreads; /* count of async reads since mount */
> u_int_64 f_spare[10]; /* unused spare */
> fsid_t f_fsid; /* filesystem id */
> uid_t f_owner; /* user that mounted the filesystem */
> u_int_32 f_type; /* type of filesystem */
> u_int_32 f_flags; /* copy of mount exported flags */
> char f_fstypename[MFSNAMELEN]; /* fs type name */
> char f_mntfromname[MNAMELEN]; /* mounted filesystem */
> char f_mntonname[MNAMELEN]; /* directory on which mounted */
> };
>
> It reorganizes things back into a rational order. It increases the
> sizes of everything that might ever want to be 64-bits to that size,
> and leaves plenty (10) of spares for future growth. Comments?
Before we go all gung hoon this, is this structure described in any
standard? (posix?)
>
> Kirk McKusick
>
More information about the freebsd-current
mailing list