growfs filesystem size limits ?

Arne Wörner arne_woerner at yahoo.com
Fri May 18 09:21:32 UTC 2007


--- Henry Vogt <hv at tuebingen.mpg.de> wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi Arne,
> Am 17.05.2007 um 22:21 schrieb Arne Wörner:
> 
> >  errx(1, "not enough new space (II) (%jd->%jd)",
> >           (intmax_t)osblock.fs_size, (intmax_t)sblock.fs_size);
> 
> # growfs -N da1p1
> new file systemsize is: 3662108143 frags
> Warning: 60028 sector(s) cannot be allocated.
> growfs: not enough new space (II) (2197264879->-632874160)
> 
> So,  sblocks.fs_size is the problem ?
>
Nope... fs_size is 64bit...
But it just came to me by looking at the code, that in line 2220 we build the
product of two 32bit integers, which results in another 32bit integer, which is
not right:
      sblock.fs_size = sblock.fs_ncg * sblock.fs_fpg;
Better is this:
      sblock.fs_size = ((int64_t)sblock.fs_ncg) * sblock.fs_fpg;

Or u could shape ur partition, so that this computation will not happen...

Maybe there r further such mistakes...
Integer arithmetric can be quite nasty (2+3=1 with 2bit unsigned integers)...
But fast... :)

-Arne


      ____________________________________________________________________________________
Park yourself in front of a world of choices in alternative vehicles. Visit the Yahoo! Auto Green Center.
http://autos.yahoo.com/green_center/ 


More information about the freebsd-fs mailing list