SCCS-vsn: sbin/newfs/mkfs.c 1.17
-static char *sccsid = "@(#)mkfs.c 1.16 (Berkeley) %G%";
+static char *sccsid = "@(#)mkfs.c 1.17 (Berkeley) %G%";
/*
* make file system for cylinder-group style file systems
/*
* make file system for cylinder-group style file systems
sblock.fs_cpc > 1 && (i & 1) == 0;
sblock.fs_cpc >>= 1, i >>= 1)
/* void */;
sblock.fs_cpc > 1 && (i & 1) == 0;
sblock.fs_cpc >>= 1, i >>= 1)
/* void */;
+ if (sblock.fs_cpc > MAXCPG) {
+ printf("maximum block size with nsect %d and ntrak %d is %d\n",
+ sblock.fs_nsect, sblock.fs_ntrak,
+ sblock.fs_bsize / (sblock.fs_cpc / MAXCPG));
+ exit(1);
+ }
/*
* collect and verify the number of cylinders per group
*/
/*
* collect and verify the number of cylinders per group
*/
} else {
sblock.fs_cpg = MAX(sblock.fs_cpc, DESCPG);
sblock.fs_fpg = (sblock.fs_cpg * sblock.fs_spc) / NSPF(&sblock);
} else {
sblock.fs_cpg = MAX(sblock.fs_cpc, DESCPG);
sblock.fs_fpg = (sblock.fs_cpg * sblock.fs_spc) / NSPF(&sblock);
- while (sblock.fs_fpg / sblock.fs_frag > MAXBPG(&sblock)) {
- --sblock.fs_cpg;
+ while (sblock.fs_fpg / sblock.fs_frag > MAXBPG(&sblock) &&
+ sblock.fs_cpg > sblock.fs_cpc) {
+ sblock.fs_cpg -= sblock.fs_cpc;
sblock.fs_fpg =
(sblock.fs_cpg * sblock.fs_spc) / NSPF(&sblock);
}
sblock.fs_fpg =
(sblock.fs_cpg * sblock.fs_spc) / NSPF(&sblock);
}