Lines Matching defs:sblock
93 #define sblock fsun.fs
170 strlcpy((char *)sblock.fs_volname, ffs_opts->label,
171 sizeof(sblock.fs_volname));
174 sblock.fs_old_inodefmt = FS_42INODEFMT;
175 sblock.fs_maxsymlinklen = 0;
176 sblock.fs_old_flags = 0;
178 sblock.fs_old_inodefmt = FS_44INODEFMT;
179 sblock.fs_maxsymlinklen = (Oflag == 1 ? UFS1_MAXSYMLINKLEN :
181 sblock.fs_old_flags = FS_FLAGS_UPDATED;
182 sblock.fs_flags = 0;
193 ffs_wtfs(fssize - 1, sectorsize, (char *)&sblock, fsopts);
198 sblock.fs_avgfilesize = avgfilesize;
199 sblock.fs_avgfpdir = avgfpdir;
200 if (sblock.fs_avgfilesize <= 0)
202 sblock.fs_avgfilesize), exit(14);
203 if (sblock.fs_avgfpdir <= 0)
205 sblock.fs_avgfpdir), exit(15);
209 sblock.fs_bsize = bsize;
210 sblock.fs_fsize = fsize;
211 if (!POWEROF2(sblock.fs_bsize)) {
213 sblock.fs_bsize);
216 if (!POWEROF2(sblock.fs_fsize)) {
218 sblock.fs_fsize);
221 if (sblock.fs_fsize < sectorsize) {
223 sblock.fs_fsize, sectorsize);
226 if (sblock.fs_bsize < MINBSIZE) {
228 sblock.fs_bsize, MINBSIZE);
231 if (sblock.fs_bsize > FFS_MAXBSIZE) {
233 sblock.fs_bsize, FFS_MAXBSIZE);
236 if (sblock.fs_bsize < sblock.fs_fsize) {
238 sblock.fs_bsize, sblock.fs_fsize);
243 sblock.fs_maxbsize = sblock.fs_bsize;
244 printf("Extent size set to %d\n", sblock.fs_maxbsize);
245 } else if (sblock.fs_maxbsize > FS_MAXCONTIG * sblock.fs_bsize) {
246 sblock.fs_maxbsize = FS_MAXCONTIG * sblock.fs_bsize;
247 printf("Extent size reduced to %d\n", sblock.fs_maxbsize);
249 sblock.fs_maxbsize = maxbsize;
251 sblock.fs_maxcontig = maxcontig;
252 if (sblock.fs_maxcontig < sblock.fs_maxbsize / sblock.fs_bsize) {
253 sblock.fs_maxcontig = sblock.fs_maxbsize / sblock.fs_bsize;
254 printf("Maxcontig raised to %d\n", sblock.fs_maxbsize);
257 if (sblock.fs_maxcontig > 1)
258 sblock.fs_contigsumsize = MIN(sblock.fs_maxcontig,FS_MAXCONTIG);
260 sblock.fs_bmask = ~(sblock.fs_bsize - 1);
261 sblock.fs_fmask = ~(sblock.fs_fsize - 1);
262 sblock.fs_qbmask = ~sblock.fs_bmask;
263 sblock.fs_qfmask = ~sblock.fs_fmask;
264 for (sblock.fs_bshift = 0, i = sblock.fs_bsize; i > 1; i >>= 1)
265 sblock.fs_bshift++;
266 for (sblock.fs_fshift = 0, i = sblock.fs_fsize; i > 1; i >>= 1)
267 sblock.fs_fshift++;
268 sblock.fs_frag = ffs_numfrags(&sblock, sblock.fs_bsize);
269 for (sblock.fs_fragshift = 0, i = sblock.fs_frag; i > 1; i >>= 1)
270 sblock.fs_fragshift++;
271 if (sblock.fs_frag > MAXFRAG) {
274 sblock.fs_fsize, sblock.fs_bsize,
275 sblock.fs_bsize / MAXFRAG);
278 sblock.fs_fsbtodb = ilog2(sblock.fs_fsize / sectorsize);
279 sblock.fs_size = fssize = FFS_DBTOFSB(&sblock, fssize);
282 sblock.fs_magic = FS_UFS1_MAGIC;
283 sblock.fs_sblockloc = SBLOCK_UFS1;
284 sblock.fs_nindir = sblock.fs_bsize / sizeof(int32_t);
285 sblock.fs_inopb = sblock.fs_bsize / sizeof(struct ufs1_dinode);
286 sblock.fs_maxsymlinklen = ((UFS_NDADDR + UFS_NIADDR) *
288 sblock.fs_old_inodefmt = FS_44INODEFMT;
289 sblock.fs_old_cgoffset = 0;
290 sblock.fs_old_cgmask = 0xffffffff;
291 sblock.fs_old_size = sblock.fs_size;
292 sblock.fs_old_rotdelay = 0;
293 sblock.fs_old_rps = 60;
294 sblock.fs_old_nspf = sblock.fs_fsize / sectorsize;
295 sblock.fs_old_cpg = 1;
296 sblock.fs_old_interleave = 1;
297 sblock.fs_old_trackskew = 0;
298 sblock.fs_old_cpc = 0;
299 sblock.fs_old_postblformat = 1;
300 sblock.fs_old_nrpos = 1;
303 sblock.fs_magic = FS_UFS2EA_MAGIC;
305 sblock.fs_magic = FS_UFS2_MAGIC;
307 sblock.fs_sblockloc = SBLOCK_UFS2;
309 sblock.fs_sblockloc = SBLOCK_UFS1;
311 sblock.fs_nindir = sblock.fs_bsize / sizeof(int64_t);
312 sblock.fs_inopb = sblock.fs_bsize / sizeof(struct ufs2_dinode);
313 sblock.fs_maxsymlinklen = ((UFS_NDADDR + UFS_NIADDR) *
317 sblock.fs_sblkno =
318 roundup(howmany(sblock.fs_sblockloc + SBLOCKSIZE, sblock.fs_fsize),
319 sblock.fs_frag);
320 sblock.fs_cblkno = (daddr_t)(sblock.fs_sblkno +
321 roundup(howmany(SBLOCKSIZE, sblock.fs_fsize), sblock.fs_frag));
322 sblock.fs_iblkno = sblock.fs_cblkno + sblock.fs_frag;
323 sblock.fs_maxfilesize = sblock.fs_bsize * UFS_NDADDR - 1;
324 for (sizepb = sblock.fs_bsize, i = 0; i < UFS_NIADDR; i++) {
325 sizepb *= FFS_NINDIR(&sblock);
326 sblock.fs_maxfilesize += sizepb;
345 fragsperinode = MAX(ffs_numfrags(&sblock, density), 1);
346 minfpg = fragsperinode * FFS_INOPB(&sblock);
347 if (minfpg > sblock.fs_size)
348 minfpg = sblock.fs_size;
349 sblock.fs_ipg = FFS_INOPB(&sblock);
350 sblock.fs_fpg = roundup(sblock.fs_iblkno +
351 sblock.fs_ipg / FFS_INOPF(&sblock), sblock.fs_frag);
352 if (sblock.fs_fpg < minfpg)
353 sblock.fs_fpg = minfpg;
354 sblock.fs_ipg = roundup(howmany(sblock.fs_fpg, fragsperinode),
355 FFS_INOPB(&sblock));
356 sblock.fs_fpg = roundup(sblock.fs_iblkno +
357 sblock.fs_ipg / FFS_INOPF(&sblock), sblock.fs_frag);
358 if (sblock.fs_fpg < minfpg)
359 sblock.fs_fpg = minfpg;
360 sblock.fs_ipg = roundup(howmany(sblock.fs_fpg, fragsperinode),
361 FFS_INOPB(&sblock));
362 if (CGSIZE(&sblock) < (unsigned long)sblock.fs_bsize)
364 density -= sblock.fs_fsize;
376 for ( ; sblock.fs_fpg < maxblkspercg; sblock.fs_fpg += sblock.fs_frag) {
377 sblock.fs_ipg = roundup(howmany(sblock.fs_fpg, fragsperinode),
378 FFS_INOPB(&sblock));
379 if (sblock.fs_size / sblock.fs_fpg < 1)
381 if (CGSIZE(&sblock) < (unsigned long)sblock.fs_bsize)
383 if (CGSIZE(&sblock) == (unsigned long)sblock.fs_bsize)
385 sblock.fs_fpg -= sblock.fs_frag;
386 sblock.fs_ipg = roundup(howmany(sblock.fs_fpg, fragsperinode),
387 FFS_INOPB(&sblock));
396 optimalfpg = sblock.fs_fpg;
398 sblock.fs_ncg = howmany(sblock.fs_size, sblock.fs_fpg);
399 lastminfpg = roundup(sblock.fs_iblkno +
400 sblock.fs_ipg / FFS_INOPF(&sblock), sblock.fs_frag);
401 if (sblock.fs_size < lastminfpg) {
403 (long long)sblock.fs_size, lastminfpg);
406 if (sblock.fs_size % sblock.fs_fpg >= lastminfpg ||
407 sblock.fs_size % sblock.fs_fpg == 0)
409 sblock.fs_fpg -= sblock.fs_frag;
410 sblock.fs_ipg = roundup(howmany(sblock.fs_fpg, fragsperinode),
411 FFS_INOPB(&sblock));
413 if (optimalfpg != sblock.fs_fpg)
415 optimalfpg, sblock.fs_fpg, "to enlarge last cyl group");
416 sblock.fs_cgsize = ffs_fragroundup(&sblock, CGSIZE(&sblock));
417 sblock.fs_dblkno = sblock.fs_iblkno + sblock.fs_ipg / FFS_INOPF(&sblock);
419 sblock.fs_old_spc = sblock.fs_fpg * sblock.fs_old_nspf;
420 sblock.fs_old_nsect = sblock.fs_old_spc;
421 sblock.fs_old_npsect = sblock.fs_old_spc;
422 sblock.fs_old_ncyl = sblock.fs_ncg;
428 sblock.fs_csaddr = cgdmin(&sblock, 0);
429 sblock.fs_cssize =
430 ffs_fragroundup(&sblock, sblock.fs_ncg * sizeof(struct csum));
436 size = sblock.fs_cssize;
437 if (sblock.fs_contigsumsize > 0)
438 size += sblock.fs_ncg * sizeof(int32_t);
440 sblock.fs_csp = space;
441 space = (char *)space + sblock.fs_cssize;
442 if (sblock.fs_contigsumsize > 0) {
445 sblock.fs_maxcluster = lp = space;
446 for (i = 0; i < sblock.fs_ncg; i++)
447 *lp++ = sblock.fs_contigsumsize;
450 sblock.fs_sbsize = ffs_fragroundup(&sblock, sizeof(struct fs));
451 if (sblock.fs_sbsize > SBLOCKSIZE)
452 sblock.fs_sbsize = SBLOCKSIZE;
453 sblock.fs_minfree = minfree;
454 sblock.fs_maxcontig = maxcontig;
455 sblock.fs_maxbpg = maxbpg;
456 sblock.fs_optim = opt;
457 sblock.fs_cgrotor = 0;
458 sblock.fs_pendingblocks = 0;
459 sblock.fs_pendinginodes = 0;
460 sblock.fs_cstotal.cs_ndir = 0;
461 sblock.fs_cstotal.cs_nbfree = 0;
462 sblock.fs_cstotal.cs_nifree = 0;
463 sblock.fs_cstotal.cs_nffree = 0;
464 sblock.fs_fmod = 0;
465 sblock.fs_ronly = 0;
466 sblock.fs_state = 0;
467 sblock.fs_clean = FS_ISCLEAN;
468 sblock.fs_ronly = 0;
469 sblock.fs_id[0] = tstamp;
470 sblock.fs_id[1] = random();
471 sblock.fs_fsmnt[0] = '\0';
472 csfrags = howmany(sblock.fs_cssize, sblock.fs_fsize);
473 sblock.fs_dsize = sblock.fs_size - sblock.fs_sblkno -
474 sblock.fs_ncg * (sblock.fs_dblkno - sblock.fs_sblkno);
475 sblock.fs_cstotal.cs_nbfree =
476 ffs_fragstoblks(&sblock, sblock.fs_dsize) -
477 howmany(csfrags, sblock.fs_frag);
478 sblock.fs_cstotal.cs_nffree =
479 ffs_fragnum(&sblock, sblock.fs_size) +
480 (ffs_fragnum(&sblock, csfrags) > 0 ?
481 sblock.fs_frag - ffs_fragnum(&sblock, csfrags) : 0);
482 sblock.fs_cstotal.cs_nifree = sblock.fs_ncg * sblock.fs_ipg - UFS_ROOTINO;
483 sblock.fs_cstotal.cs_ndir = 0;
484 sblock.fs_dsize -= csfrags;
485 sblock.fs_time = tstamp;
487 sblock.fs_old_time = tstamp;
488 sblock.fs_old_dsize = sblock.fs_dsize;
489 sblock.fs_old_csaddr = sblock.fs_csaddr;
490 sblock.fs_old_cstotal.cs_ndir = sblock
491 sblock.fs_old_cstotal.cs_nbfree = sblock.fs_cstotal.cs_nbfree;
492 sblock.fs_old_cstotal.cs_nifree = sblock.fs_cstotal.cs_nifree;
493 sblock.fs_old_cstotal.cs_nffree = sblock.fs_cstotal.cs_nffree;
501 fsys, (float)sblock.fs_size * sblock.fs_fsize * B2MBFACTOR,
502 (long long)FFS_FSBTODB(&sblock, sblock.fs_size),
503 sblock.fs_bsize, sblock.fs_fsize);
506 sblock.fs_ncg,
507 (float)sblock.fs_fpg * sblock.fs_fsize * B2MBFACTOR,
508 sblock.fs_fpg / sblock.fs_frag, sblock.fs_ipg);
516 FFS_FSBTODB(&sblock, cgsblock(&sblock, sblock.fs_ncg -1)));
523 if (sblock.fs_bsize < SBLOCKSIZE)
524 iobufsize = SBLOCKSIZE + 3 * sblock.fs_bsize;
526 iobufsize = 4 * sblock.fs_bsize;
532 ffs_sb_copy(&wb.fs, &sblock, sbsize, fsopts);
536 for (cylno = 0; cylno < sblock.fs_ncg; cylno++) {
541 (long long)FFS_FSBTODB(&sblock, cgsblock(&sblock, cylno)));
550 sblock.fs_time = tstamp;
552 sblock.fs_old_cstotal.cs_ndir = sblock.fs_cstotal.cs_ndir;
553 sblock.fs_old_cstotal.cs_nbfree = sblock.fs_cstotal.cs_nbfree;
554 sblock.fs_old_cstotal.cs_nifree = sblock.fs_cstotal.cs_nifree;
555 sblock.fs_old_cstotal.cs_nffree = sblock.fs_cstotal.cs_nffree;
558 sblock.fs_flags |= FS_SWAPPED;
559 ffs_write_superblock(&sblock, fsopts);
560 return (&sblock);
578 ffs_sb_copy(&wb.fs, &sblock, sbsize, fsopts);
624 cbase = cgbase(&sblock, cylno);
625 dmax = cbase + sblock.fs_fpg;
626 if (dmax > sblock.fs_size)
627 dmax = sblock.fs_size;
628 dlower = cgsblock(&sblock, cylno) - cbase;
629 dupper = cgdmin(&sblock, cylno) - cbase;
631 dupper += howmany(sblock.fs_cssize, sblock.fs_fsize);
632 memset(&acg, 0, sblock.fs_cgsize);
636 acg.cg_niblk = sblock.fs_ipg;
637 acg.cg_initediblk = sblock.fs_ipg < 2 * FFS_INOPB(&sblock) ?
638 sblock.fs_ipg : 2 * FFS_INOPB(&sblock);
640 if (sblock.fs_contigsumsize > 0)
641 acg.cg_nclusterblks = acg.cg_ndblk >> sblock.fs_fragshift;
646 if (cylno == sblock.fs_ncg - 1)
648 sblock.fs_fpg / sblock.fs_old_cpg);
650 acg.cg_old_ncyl = sblock.fs_old_cpg;
658 sblock.fs_old_cpg * sizeof(int32_t);
660 sblock.fs_old_cpg * sizeof(u_int16_t);
662 acg.cg_freeoff = acg.cg_iusedoff + howmany(sblock.fs_ipg, CHAR_BIT);
663 if (sblock.fs_contigsumsize <= 0) {
665 howmany(sblock.fs_fpg, CHAR_BIT);
668 howmany(sblock.fs_fpg, CHAR_BIT) - sizeof(int32_t);
672 (sblock.fs_contigsumsize + 1) * sizeof(int32_t);
674 howmany(ffs_fragstoblks(&sblock, sblock.fs_fpg), CHAR_BIT);
676 if (acg.cg_nextfreeoff > (unsigned)sblock.fs_cgsize) {
680 acg.cg_cs.cs_nifree += sblock.fs_ipg;
695 ffs_setblock(&sblock, cg_blksfree(&acg, 0), blkno);
696 if (sblock.fs_contigsumsize > 0)
699 d += sblock.fs_frag;
703 if ((i = (dupper & (sblock.fs_frag - 1))) != 0) {
704 acg.cg_frsum[sblock.fs_frag - i]++;
705 for (d = dupper + sblock.fs_frag - i; dupper < d; dupper++) {
710 for (d = dupper, blkno = dupper >> sblock.fs_fragshift;
711 d + sblock.fs_frag <= acg.cg_ndblk; ) {
712 ffs_setblock(&sblock, cg_blksfree(&acg, 0), blkno);
713 if (sblock.fs_contigsumsize > 0)
716 d += sblock.fs_frag;
726 if (sblock.fs_contigsumsize > 0) {
737 if (run > sblock.fs_contigsumsize)
738 run = sblock.fs_contigsumsize;
750 if (run > sblock.fs_contigsumsize)
751 run = sblock.fs_contigsumsize;
755 sblock.fs_cs(&sblock, cylno) = acg.cg_cs;
760 start = sblock.fs_bsize > SBLOCKSIZE ? sblock.fs_bsize : SBLOCKSIZE;
761 memcpy(&iobuf[start], &acg, sblock.fs_cgsize);
763 ffs_cg_swap(&acg, (struct cg*)&iobuf[start], &sblock);
764 start += sblock.fs_bsize;
768 if (sblock.fs_magic == FS_UFS1_MAGIC) {
777 ffs_wtfs(FFS_FSBTODB(&sblock, cgsblock(&sblock, cylno)), iobufsize, iobuf,
783 for (i = 2 * sblock.fs_frag;
784 i < sblock.fs_ipg / FFS_INOPF(&sblock);
785 i += sblock.fs_frag) {
787 for (j = 0; j < FFS_INOPB(&sblock); j++) {
791 ffs_wtfs(FFS_FSBTODB(&sblock, cgimin(&sblock, cylno) + i),
792 sblock.fs_bsize, &iobuf[start], fsopts);