growfs reporting negative sectors beyond 2^31

Eric Anderson anderson at freebsd.org
Fri May 11 13:20:41 UTC 2007


On 05/10/07 04:23, Lukas Ertl wrote:
> Daniel Eriksson wrote:
>> While playing around with growfs I noticed that it prints the sector
>> numbers for the super-block backups on sectors beyond 2^31 as negative
>> numbers. I ran into this issue while trying to grow a 1TB filesystem to
>> a 1.5TB filesystem.
>>
>> Example:
>> [snip]
>> 2142948448, 2143324800, 2143701152, 2144077504, 2144453856, 2144830208,
>> 2145206560, 2145582912, 2145959264,
>> 2146335616, 2146711968, 2147088320, 2147464672, -2147126272,
>> -2146749920, -2146373568, -2145997216, -2145620864,
>> -2145244512, -2144868160, -2144491808, -2144115456, -2143739104,
>> -2143362752, -2142986400, -2142610048, -2142233696,
>> [snip]
>>
>> Is this something to worry about as far as file system consistency goes,
>> or is it just a cosmetic problem with the printout?
> 
> It's just cosmetic, as far as I can see.
> 
> cheers,
> le
> 


I think this patch fixes it.

http://www.googlebit.com/freebsd/patches/growfs-bigdisk-patch

Eric


-------------- next part --------------
Index: sbin/growfs/growfs.c
===================================================================
RCS file: /alt/ncvs/src/sbin/growfs/growfs.c,v
retrieving revision 1.25
diff -u -r1.25 growfs.c
--- sbin/growfs/growfs.c	17 Jul 2006 20:48:36 -0000	1.25
+++ sbin/growfs/growfs.c	11 May 2007 13:17:43 -0000
@@ -259,8 +259,8 @@
 	 */
 	for (cylno = osblock.fs_ncg; cylno < sblock.fs_ncg; cylno++) {
 		initcg(cylno, utime, fso, Nflag);
-		j = sprintf(tmpbuf, " %d%s",
-		    (int)fsbtodb(&sblock, cgsblock(&sblock, cylno)),
+		j = sprintf(tmpbuf, " %jd%s",
+		    (intmax_t)fsbtodb(&sblock, cgsblock(&sblock, cylno)),
 		    cylno < (sblock.fs_ncg-1) ? "," : "" );
 		if (i + j >= width) {
 			printf("\n");


More information about the freebsd-current mailing list