Index: sys/ufs/ffs/ffs_alloc.c =================================================================== RCS file: /cvsroot/src/sys/ufs/ffs/ffs_alloc.c,v retrieving revision 1.122 diff -u -r1.122 ffs_alloc.c --- sys/ufs/ffs/ffs_alloc.c 22 Feb 2009 20:28:06 -0000 1.122 +++ sys/ufs/ffs/ffs_alloc.c 24 Apr 2009 12:07:51 -0000 @@ -1138,7 +1138,7 @@ ufs_add32(cgp->cg_frsum[allocsiz], -1, needswap); if (frags != allocsiz) ufs_add32(cgp->cg_frsum[allocsiz - frags], 1, needswap); - blkno = cg * fs->fs_fpg + bno; + blkno = cgbase(fs, cg) + bno; ACTIVECG_CLR(fs, cg); mutex_exit(&ump->um_lock); bdwrite(bp); @@ -1167,6 +1167,7 @@ struct ufsmount *ump; struct fs *fs = ip->i_fs; struct cg *cgp; + int cg; daddr_t blkno; int32_t bno; u_int8_t *blksfree; @@ -1225,7 +1226,8 @@ ufs_add32(old_cg_blktot(cgp, needswap)[cylno], -1, needswap); } fs->fs_fmod = 1; - blkno = ufs_rw32(cgp->cg_cgx, needswap) * fs->fs_fpg + bno; + cg = ufs_rw32(cgp->cg_cgx, needswap); + blkno = cgbase(fs, cg) + bno; return (blkno); }