Lines Matching refs:fs
47 uint32_t ffs_calc_sbhash(struct fs *);
82 ffs_verify_dinode_ckhash(struct fs *fs, struct ufs2_dinode *dip) in ffs_verify_dinode_ckhash() argument
89 if (dip->di_mode == 0 || (fs->fs_metackhash & CK_INODE) == 0) in ffs_verify_dinode_ckhash()
108 ffs_update_dinode_ckhash(struct fs *fs, struct ufs2_dinode *dip) in ffs_update_dinode_ckhash() argument
111 if (dip->di_mode == 0 || (fs->fs_metackhash & CK_INODE) == 0) in ffs_update_dinode_ckhash()
126 static int readsuper(void *, struct fs **, off_t, int,
128 static void ffs_oldfscompat_read(struct fs *, ufs2_daddr_t);
129 static int validate_sblock(struct fs *, int);
152 ffs_sbget(void *devfd, struct fs **fsp, off_t sblock, int flags, in ffs_sbget()
156 struct fs *fs; in ffs_sbget() local
164 fs = NULL; in ffs_sbget()
167 if ((error = readsuper(devfd, &fs, sblock, in ffs_sbget()
169 if (fs != NULL) in ffs_sbget()
170 UFS_FREE(fs, filltype); in ffs_sbget()
175 if ((error = readsuper(devfd, &fs, sblock_try[i], in ffs_sbget()
178 *fsp = fs; in ffs_sbget()
183 if (fs != NULL) { in ffs_sbget()
184 UFS_FREE(fs, filltype); in ffs_sbget()
185 fs = NULL; in ffs_sbget()
197 size = fs->fs_cssize; in ffs_sbget()
198 blks = howmany(size, fs->fs_fsize); in ffs_sbget()
199 if (fs->fs_contigsumsize > 0) in ffs_sbget()
200 size += fs->fs_ncg * sizeof(int32_t); in ffs_sbget()
201 size += fs->fs_ncg * sizeof(uint8_t); in ffs_sbget()
203 UFS_FREE(fs, filltype); in ffs_sbget()
207 fs->fs_si = fs_si; in ffs_sbget()
209 UFS_FREE(fs->fs_si, filltype); in ffs_sbget()
210 UFS_FREE(fs, filltype); in ffs_sbget()
213 fs->fs_csp = (struct csum *)space; in ffs_sbget()
214 for (i = 0; i < blks; i += fs->fs_frag) { in ffs_sbget()
215 size = fs->fs_bsize; in ffs_sbget()
216 if (i + fs->fs_frag > blks) in ffs_sbget()
217 size = (blks - i) * fs->fs_fsize; in ffs_sbget()
220 dbtob(fsbtodb(fs, fs->fs_csaddr + i)), (void **)&buf, size); in ffs_sbget()
224 UFS_FREE(fs->fs_csp, filltype); in ffs_sbget()
225 UFS_FREE(fs->fs_si, filltype); in ffs_sbget()
226 UFS_FREE(fs, filltype); in ffs_sbget()
233 if (fs->fs_contigsumsize > 0) { in ffs_sbget()
234 fs->fs_maxcluster = lp = (int32_t *)space; in ffs_sbget()
235 for (i = 0; i < fs->fs_ncg; i++) in ffs_sbget()
236 *lp++ = fs->fs_contigsumsize; in ffs_sbget()
239 size = fs->fs_ncg * sizeof(uint8_t); in ffs_sbget()
240 fs->fs_contigdirs = (uint8_t *)space; in ffs_sbget()
241 bzero(fs->fs_contigdirs, size); in ffs_sbget()
242 *fsp = fs; in ffs_sbget()
251 readsuper(void *devfd, struct fs **fsp, off_t sblockloc, int flags, in readsuper()
254 struct fs *fs; in readsuper() local
261 fs = *fsp; in readsuper()
262 if (fs->fs_magic == FS_BAD_MAGIC) in readsuper()
271 if (fs->fs_magic == FS_UFS1_MAGIC && (flags & UFS_ALTSBLK) == 0 && in readsuper()
272 fs->fs_bsize == SBLOCK_UFS2 && sblockloc == SBLOCK_UFS2) in readsuper()
274 ffs_oldfscompat_read(fs, sblockloc); in readsuper()
275 if ((error = validate_sblock(fs, flags)) > 0) in readsuper()
281 if ((fs->fs_flags & FS_METACKHASH) == 0) in readsuper()
282 fs->fs_metackhash = 0; in readsuper()
287 fs->fs_metackhash &= CK_SUPPORTED; in readsuper()
288 fs->fs_flags &= FS_SUPPORTED; in readsuper()
289 if (fs->fs_ckhash != (ckhash = ffs_calc_sbhash(fs))) { in readsuper()
298 fs->fs_ckhash, ckhash, in readsuper()
310 "0x%x%s\n", fs->fs_ckhash, ckhash, in readsuper()
317 fs->fs_sblockactualloc = sblockloc; in readsuper()
319 fs->fs_si = NULL; in readsuper()
331 ffs_oldfscompat_read(struct fs *fs, ufs2_daddr_t sblockloc) in ffs_oldfscompat_read() argument
338 if ((fs->fs_old_flags & FS_FLAGS_UPDATED) == 0) { in ffs_oldfscompat_read()
339 fs->fs_flags = fs->fs_old_flags; in ffs_oldfscompat_read()
340 fs->fs_old_flags |= FS_FLAGS_UPDATED; in ffs_oldfscompat_read()
341 fs->fs_sblockloc = sblockloc; in ffs_oldfscompat_read()
346 if (fs->fs_magic == FS_UFS1_MAGIC && fs->fs_maxbsize != fs->fs_bsize) { in ffs_oldfscompat_read()
347 fs->fs_maxbsize = fs->fs_bsize; in ffs_oldfscompat_read()
348 fs->fs_time = fs->fs_old_time; in ffs_oldfscompat_read()
349 fs->fs_size = fs->fs_old_size; in ffs_oldfscompat_read()
350 fs->fs_dsize = fs->fs_old_dsize; in ffs_oldfscompat_read()
351 fs->fs_csaddr = fs->fs_old_csaddr; in ffs_oldfscompat_read()
352 fs->fs_cstotal.cs_ndir = fs->fs_old_cstotal.cs_ndir; in ffs_oldfscompat_read()
353 fs->fs_cstotal.cs_nbfree = fs->fs_old_cstotal.cs_nbfree; in ffs_oldfscompat_read()
354 fs->fs_cstotal.cs_nifree = fs->fs_old_cstotal.cs_nifree; in ffs_oldfscompat_read()
355 fs->fs_cstotal.cs_nffree = fs->fs_old_cstotal.cs_nffree; in ffs_oldfscompat_read()
357 if (fs->fs_magic == FS_UFS1_MAGIC && in ffs_oldfscompat_read()
358 fs->fs_old_inodefmt < FS_44INODEFMT) { in ffs_oldfscompat_read()
359 fs->fs_maxfilesize = ((uint64_t)1 << 31) - 1; in ffs_oldfscompat_read()
360 fs->fs_qbmask = ~fs->fs_bmask; in ffs_oldfscompat_read()
361 fs->fs_qfmask = ~fs->fs_fmask; in ffs_oldfscompat_read()
363 if (fs->fs_magic == FS_UFS1_MAGIC) { in ffs_oldfscompat_read()
364 fs->fs_save_maxfilesize = fs->fs_maxfilesize; in ffs_oldfscompat_read()
365 maxfilesize = (uint64_t)0x80000000 * fs->fs_bsize - 1; in ffs_oldfscompat_read()
366 if (fs->fs_maxfilesize > maxfilesize) in ffs_oldfscompat_read()
367 fs->fs_maxfilesize = maxfilesize; in ffs_oldfscompat_read()
370 if (fs->fs_avgfilesize <= 0) in ffs_oldfscompat_read()
371 fs->fs_avgfilesize = AVFILESIZ; in ffs_oldfscompat_read()
372 if (fs->fs_avgfpdir <= 0) in ffs_oldfscompat_read()
373 fs->fs_avgfpdir = AFPDIR; in ffs_oldfscompat_read()
384 ffs_oldfscompat_write(struct fs *fs) in ffs_oldfscompat_write() argument
390 if (fs->fs_magic == FS_UFS1_MAGIC) { in ffs_oldfscompat_write()
391 fs->fs_old_time = fs->fs_time; in ffs_oldfscompat_write()
392 fs->fs_old_cstotal.cs_ndir = fs->fs_cstotal.cs_ndir; in ffs_oldfscompat_write()
393 fs->fs_old_cstotal.cs_nbfree = fs->fs_cstotal.cs_nbfree; in ffs_oldfscompat_write()
394 fs->fs_old_cstotal.cs_nifree = fs->fs_cstotal.cs_nifree; in ffs_oldfscompat_write()
395 fs->fs_old_cstotal.cs_nffree = fs->fs_cstotal.cs_nffree; in ffs_oldfscompat_write()
396 fs->fs_maxfilesize = fs->fs_save_maxfilesize; in ffs_oldfscompat_write()
415 ffs_oldfscompat_inode_read(struct fs *fs, union dinodep dp, time_t now) in ffs_oldfscompat_inode_read() argument
420 switch (fs->fs_magic) { in ffs_oldfscompat_inode_read()
471 #fmt ")\n", fs->fs_magic == FS_UFS1_MAGIC ? 1 : 2, \
481 #fmt ")%s\n", fs->fs_magic == FS_UFS1_MAGIC ? 1 : 2,\
492 fs->fs_magic == FS_UFS1_MAGIC ? 1 : 2, #lhs1, \
502 validate_sblock(struct fs *fs, int flags) in validate_sblock() argument
517 if (((fs->fs_magic != FS_UFS2_MAGIC) && in validate_sblock()
518 (bswap32(fs->fs_magic) == FS_UFS2_MAGIC)) || in validate_sblock()
519 ((fs->fs_magic != FS_UFS1_MAGIC) && in validate_sblock()
520 (bswap32(fs->fs_magic) == FS_UFS1_MAGIC))) { in validate_sblock()
531 (fs->fs_magic == FS_UFS1_MAGIC || fs->fs_magic == FS_UFS2_MAGIC)) { in validate_sblock()
533 if (fs->fs_magic == FS_UFS2_MAGIC) { in validate_sblock()
534 FCHK(fs->fs_sblockloc, !=, SBLOCK_UFS2, %#jx); in validate_sblock()
535 } else if (fs->fs_magic == FS_UFS1_MAGIC) { in validate_sblock()
536 FCHK(fs->fs_sblockloc, <, 0, %jd); in validate_sblock()
537 FCHK(fs->fs_sblockloc, >, SBLOCK_UFS1, %jd); in validate_sblock()
539 FCHK(fs->fs_frag, <, 1, %jd); in validate_sblock()
540 FCHK(fs->fs_frag, >, MAXFRAG, %jd); in validate_sblock()
541 FCHK(fs->fs_bsize, <, MINBSIZE, %jd); in validate_sblock()
542 FCHK(fs->fs_bsize, >, MAXBSIZE, %jd); in validate_sblock()
543 FCHK(fs->fs_bsize, <, roundup(sizeof(struct fs), DEV_BSIZE), in validate_sblock()
545 FCHK(fs->fs_fsize, <, sectorsize, %jd); in validate_sblock()
546 FCHK(fs->fs_fsize * fs->fs_frag, !=, fs->fs_bsize, %jd); in validate_sblock()
547 FCHK(powerof2(fs->fs_fsize), ==, 0, %jd); in validate_sblock()
548 FCHK(fs->fs_sbsize, >, SBLOCKSIZE, %jd); in validate_sblock()
549 FCHK(fs->fs_sbsize, <, (signed)sizeof(struct fs), %jd); in validate_sblock()
550 FCHK(fs->fs_sbsize % sectorsize, !=, 0, %jd); in validate_sblock()
551 FCHK(fs->fs_fpg, <, 3 * fs->fs_frag, %jd); in validate_sblock()
552 FCHK(fs->fs_ncg, <, 1, %jd); in validate_sblock()
553 FCHK(fs->fs_fsbtodb, !=, ILOG2(fs->fs_fsize / sectorsize), %jd); in validate_sblock()
554 FCHK(fs->fs_old_cgoffset, <, 0, %jd); in validate_sblock()
555 FCHK2(fs->fs_old_cgoffset, >, 0, ~fs->fs_old_cgmask, <, 0, %jd); in validate_sblock()
556 FCHK(fs->fs_old_cgoffset * (~fs->fs_old_cgmask), >, fs->fs_fpg, in validate_sblock()
558 FCHK(fs->fs_sblkno, !=, roundup( in validate_sblock()
559 howmany(fs->fs_sblockloc + SBLOCKSIZE, fs->fs_fsize), in validate_sblock()
560 fs->fs_frag), %jd); in validate_sblock()
561 FCHK(CGSIZE(fs), >, fs->fs_bsize, %jd); in validate_sblock()
565 FCHK((uint64_t)fs->fs_ipg * fs->fs_ncg, >, in validate_sblock()
566 (((int64_t)(1)) << 32) - INOPB(fs), %jd); in validate_sblock()
567 FCHK(fs->fs_cstotal.cs_nifree, <, 0, %jd); in validate_sblock()
568 FCHK(fs->fs_cstotal.cs_nifree, >, in validate_sblock()
569 (uint64_t)fs->fs_ipg * fs->fs_ncg, %jd); in validate_sblock()
570 FCHK(fs->fs_cstotal.cs_ndir, >, in validate_sblock()
571 ((uint64_t)fs->fs_ipg * fs->fs_ncg) - in validate_sblock()
572 fs->fs_cstotal.cs_nifree, %jd); in validate_sblock()
573 FCHK(fs->fs_size, <, 8 * fs->fs_frag, %jd); in validate_sblock()
574 FCHK(fs->fs_size, <=, ((int64_t)fs->fs_ncg - 1) * fs->fs_fpg, in validate_sblock()
576 FCHK(fs->fs_size, >, (int64_t)fs->fs_ncg * fs->fs_fpg, %jd); in validate_sblock()
577 FCHK(fs->fs_csaddr, <, 0, %jd); in validate_sblock()
578 FCHK(fs->fs_cssize, !=, in validate_sblock()
579 fragroundup(fs, fs->fs_ncg * sizeof(struct csum)), %jd); in validate_sblock()
580 FCHK(fs->fs_csaddr + howmany(fs->fs_cssize, fs->fs_fsize), >, in validate_sblock()
581 fs->fs_size, %jd); in validate_sblock()
582 FCHK(fs->fs_csaddr, <, cgdmin(fs, dtog(fs, fs->fs_csaddr)), in validate_sblock()
584 FCHK(dtog(fs, fs->fs_csaddr + howmany(fs->fs_cssize, in validate_sblock()
585 fs->fs_fsize)), >, dtog(fs, fs->fs_csaddr), %jd); in validate_sblock()
588 if (fs->fs_magic == FS_UFS2_MAGIC) { in validate_sblock()
590 FCHK2(fs->fs_sblockactualloc, !=, SBLOCK_UFS2, in validate_sblock()
591 fs->fs_sblockactualloc, !=, 0, %jd); in validate_sblock()
592 FCHK(fs->fs_sblockloc, !=, SBLOCK_UFS2, %#jx); in validate_sblock()
593 FCHK(fs->fs_maxsymlinklen, !=, ((UFS_NDADDR + UFS_NIADDR) * in validate_sblock()
595 FCHK(fs->fs_nindir, !=, fs->fs_bsize / sizeof(ufs2_daddr_t), in validate_sblock()
597 FCHK(fs->fs_inopb, !=, in validate_sblock()
598 fs->fs_bsize / sizeof(struct ufs2_dinode), %jd); in validate_sblock()
599 } else if (fs->fs_magic == FS_UFS1_MAGIC) { in validate_sblock()
601 FCHK(fs->fs_sblockactualloc, >, SBLOCK_UFS1, %jd); in validate_sblock()
602 FCHK(fs->fs_sblockloc, <, 0, %jd); in validate_sblock()
603 FCHK(fs->fs_sblockloc, >, SBLOCK_UFS1, %jd); in validate_sblock()
604 FCHK(fs->fs_nindir, !=, fs->fs_bsize / sizeof(ufs1_daddr_t), in validate_sblock()
606 FCHK(fs->fs_inopb, !=, in validate_sblock()
607 fs->fs_bsize / sizeof(struct ufs1_dinode), %jd); in validate_sblock()
608 FCHK(fs->fs_maxsymlinklen, !=, ((UFS_NDADDR + UFS_NIADDR) * in validate_sblock()
610 WCHK(fs->fs_old_inodefmt, !=, FS_44INODEFMT, %jd); in validate_sblock()
611 WCHK(fs->fs_old_rotdelay, !=, 0, %jd); in validate_sblock()
612 WCHK(fs->fs_old_rps, !=, 60, %jd); in validate_sblock()
613 WCHK(fs->fs_old_nspf, !=, fs->fs_fsize / sectorsize, %jd); in validate_sblock()
614 WCHK(fs->fs_old_interleave, !=, 1, %jd); in validate_sblock()
615 WCHK(fs->fs_old_trackskew, !=, 0, %jd); in validate_sblock()
616 WCHK(fs->fs_old_cpc, !=, 0, %jd); in validate_sblock()
617 WCHK(fs->fs_old_postblformat, !=, 1, %jd); in validate_sblock()
618 FCHK(fs->fs_old_nrpos, !=, 1, %jd); in validate_sblock()
619 WCHK(fs->fs_old_nsect, !=, fs->fs_old_spc, %jd); in validate_sblock()
620 WCHK(fs->fs_old_npsect, !=, fs->fs_old_spc, %jd); in validate_sblock()
625 FCHK(fs->fs_bsize, <, MINBSIZE, %jd); in validate_sblock()
626 FCHK(fs->fs_bsize, >, MAXBSIZE, %jd); in validate_sblock()
627 FCHK(fs->fs_bsize, <, roundup(sizeof(struct fs), DEV_BSIZE), %jd); in validate_sblock()
628 FCHK(powerof2(fs->fs_bsize), ==, 0, %jd); in validate_sblock()
629 FCHK(fs->fs_frag, <, 1, %jd); in validate_sblock()
630 FCHK(fs->fs_frag, >, MAXFRAG, %jd); in validate_sblock()
631 FCHK(fs->fs_frag, !=, numfrags(fs, fs->fs_bsize), %jd); in validate_sblock()
632 FCHK(fs->fs_fsize, <, sectorsize, %jd); in validate_sblock()
633 FCHK(fs->fs_fsize * fs->fs_frag, !=, fs->fs_bsize, %jd); in validate_sblock()
634 FCHK(powerof2(fs->fs_fsize), ==, 0, %jd); in validate_sblock()
635 FCHK(fs->fs_fpg, <, 3 * fs->fs_frag, %jd); in validate_sblock()
636 FCHK(fs->fs_ncg, <, 1, %jd); in validate_sblock()
637 FCHK(fs->fs_ipg, <, fs->fs_inopb, %jd); in validate_sblock()
638 FCHK((uint64_t)fs->fs_ipg * fs->fs_ncg, >, in validate_sblock()
639 (((int64_t)(1)) << 32) - INOPB(fs), %jd); in validate_sblock()
640 FCHK(fs->fs_cstotal.cs_nifree, <, 0, %jd); in validate_sblock()
641 FCHK(fs->fs_cstotal.cs_nifree, >, (uint64_t)fs->fs_ipg * fs->fs_ncg, in validate_sblock()
643 FCHK(fs->fs_cstotal.cs_ndir, <, 0, %jd); in validate_sblock()
644 FCHK(fs->fs_cstotal.cs_ndir, >, in validate_sblock()
645 ((uint64_t)fs->fs_ipg * fs->fs_ncg) - fs->fs_cstotal.cs_nifree, in validate_sblock()
647 FCHK(fs->fs_sbsize, >, SBLOCKSIZE, %jd); in validate_sblock()
648 FCHK(fs->fs_sbsize, <, (signed)sizeof(struct fs), %jd); in validate_sblock()
650 if (fs->fs_maxbsize == 0) in validate_sblock()
651 fs->fs_maxbsize = fs->fs_bsize; in validate_sblock()
652 FCHK(fs->fs_maxbsize, <, fs->fs_bsize, %jd); in validate_sblock()
653 FCHK(powerof2(fs->fs_maxbsize), ==, 0, %jd); in validate_sblock()
654 FCHK(fs->fs_maxbsize, >, FS_MAXCONTIG * fs->fs_bsize, %jd); in validate_sblock()
655 FCHK(fs->fs_bmask, !=, ~(fs->fs_bsize - 1), %#jx); in validate_sblock()
656 FCHK(fs->fs_fmask, !=, ~(fs->fs_fsize - 1), %#jx); in validate_sblock()
657 FCHK(fs->fs_qbmask, !=, ~fs->fs_bmask, %#jx); in validate_sblock()
658 FCHK(fs->fs_qfmask, !=, ~fs->fs_fmask, %#jx); in validate_sblock()
659 FCHK(fs->fs_bshift, !=, ILOG2(fs->fs_bsize), %jd); in validate_sblock()
660 FCHK(fs->fs_fshift, !=, ILOG2(fs->fs_fsize), %jd); in validate_sblock()
661 FCHK(fs->fs_fragshift, !=, ILOG2(fs->fs_frag), %jd); in validate_sblock()
662 FCHK(fs->fs_fsbtodb, !=, ILOG2(fs->fs_fsize / sectorsize), %jd); in validate_sblock()
663 FCHK(fs->fs_old_cgoffset, <, 0, %jd); in validate_sblock()
664 FCHK2(fs->fs_old_cgoffset, >, 0, ~fs->fs_old_cgmask, <, 0, %jd); in validate_sblock()
665 FCHK(fs->fs_old_cgoffset * (~fs->fs_old_cgmask), >, fs->fs_fpg, %jd); in validate_sblock()
666 FCHK(CGSIZE(fs), >, fs->fs_bsize, %jd); in validate_sblock()
674 FCHK(fs->fs_sbsize % sectorsize, !=, 0, %jd); in validate_sblock()
675 FCHK(fs->fs_ipg % fs->fs_inopb, !=, 0, %jd); in validate_sblock()
676 FCHK(fs->fs_sblkno, !=, roundup( in validate_sblock()
677 howmany(fs->fs_sblockloc + SBLOCKSIZE, fs->fs_fsize), in validate_sblock()
678 fs->fs_frag), %jd); in validate_sblock()
679 FCHK(fs->fs_cblkno, !=, fs->fs_sblkno + in validate_sblock()
680 roundup(howmany(SBLOCKSIZE, fs->fs_fsize), fs->fs_frag), %jd); in validate_sblock()
681 FCHK(fs->fs_iblkno, !=, fs->fs_cblkno + fs->fs_frag, %jd); in validate_sblock()
682 FCHK(fs->fs_dblkno, !=, fs->fs_iblkno + fs->fs_ipg / INOPF(fs), %jd); in validate_sblock()
683 FCHK(fs->fs_cgsize, >, fs->fs_bsize, %jd); in validate_sblock()
684 FCHK(fs->fs_cgsize, <, fs->fs_fsize, %jd); in validate_sblock()
685 FCHK(fs->fs_cgsize % fs->fs_fsize, !=, 0, %jd); in validate_sblock()
692 WCHK(fs->fs_dsize, !=, fs->fs_size - fs->fs_sblkno - in validate_sblock()
693 fs->fs_ncg * (fs->fs_dblkno - fs->fs_sblkno) - in validate_sblock()
694 howmany(fs->fs_cssize, fs->fs_fsize), %jd); in validate_sblock()
696 WCHK(fs->fs_metaspace, <, 0, %jd); in validate_sblock()
697 WCHK(fs->fs_metaspace, >, fs->fs_fpg / 2, %jd); in validate_sblock()
698 WCHK(fs->fs_minfree, >, 99, %jd%%); in validate_sblock()
699 maxfilesize = fs->fs_bsize * UFS_NDADDR - 1; in validate_sblock()
700 for (sizepb = fs->fs_bsize, i = 0; i < UFS_NIADDR; i++) { in validate_sblock()
701 sizepb *= NINDIR(fs); in validate_sblock()
704 WCHK(fs->fs_maxfilesize, >, maxfilesize, %jd); in validate_sblock()
716 FCHK(fs->fs_size, <, 8 * fs->fs_frag, %jd); in validate_sblock()
717 FCHK(fs->fs_size, <=, ((int64_t)fs->fs_ncg - 1) * fs->fs_fpg, %jd); in validate_sblock()
718 FCHK(fs->fs_size, >, (int64_t)fs->fs_ncg * fs->fs_fpg, %jd); in validate_sblock()
726 FCHK(fs->fs_csaddr, <, 0, %jd); in validate_sblock()
727 FCHK(fs->fs_cssize, !=, in validate_sblock()
728 fragroundup(fs, fs->fs_ncg * sizeof(struct csum)), %jd); in validate_sblock()
729 FCHK(fs->fs_csaddr + howmany(fs->fs_cssize, fs->fs_fsize), >, in validate_sblock()
730 fs->fs_size, %jd); in validate_sblock()
731 FCHK(fs->fs_csaddr, <, cgdmin(fs, dtog(fs, fs->fs_csaddr)), %jd); in validate_sblock()
732 FCHK(dtog(fs, fs->fs_csaddr + howmany(fs->fs_cssize, fs->fs_fsize)), >, in validate_sblock()
733 dtog(fs, fs->fs_csaddr), %jd); in validate_sblock()
753 WCHK(fs->fs_maxcontig, <, 0, %jd); in validate_sblock()
754 WCHK(fs->fs_maxcontig, >, MAX(256, maxphys / fs->fs_bsize), %jd); in validate_sblock()
755 FCHK2(fs->fs_maxcontig, ==, 0, fs->fs_contigsumsize, !=, 0, %jd); in validate_sblock()
756 FCHK2(fs->fs_maxcontig, >, 1, fs->fs_contigsumsize, !=, in validate_sblock()
757 MIN(fs->fs_maxcontig, FS_MAXCONTIG), %jd); in validate_sblock()
776 ffs_sbsearch(void *devfd, struct fs **fsp, int reqflags, in ffs_sbsearch()
781 struct fs *protofs; in ffs_sbsearch()
870 memset(protofs, 0, sizeof(struct fs)); in ffs_sbsearch()
931 ffs_sbput(void *devfd, struct fs *fs, off_t loc, in ffs_sbput() argument
941 if (fs->fs_si != NULL && fs->fs_csp != NULL) { in ffs_sbput()
942 blks = howmany(fs->fs_cssize, fs->fs_fsize); in ffs_sbput()
943 space = (uint8_t *)fs->fs_csp; in ffs_sbput()
944 for (i = 0; i < blks; i += fs->fs_frag) { in ffs_sbput()
945 size = fs->fs_bsize; in ffs_sbput()
946 if (i + fs->fs_frag > blks) in ffs_sbput()
947 size = (blks - i) * fs->fs_fsize; in ffs_sbput()
949 dbtob(fsbtodb(fs, fs->fs_csaddr + i)), in ffs_sbput()
955 fs->fs_fmod = 0; in ffs_sbput()
960 fs->fs_time = time(NULL); in ffs_sbput()
962 fs_si = fs->fs_si; in ffs_sbput()
963 fs->fs_si = NULL; in ffs_sbput()
964 fs->fs_ckhash = ffs_calc_sbhash(fs); in ffs_sbput()
965 error = (*writefunc)(devfd, loc, fs, fs->fs_sbsize); in ffs_sbput()
966 fs->fs_si = fs_si; in ffs_sbput()
969 fs->fs_time = time_second; in ffs_sbput()
970 fs->fs_ckhash = ffs_calc_sbhash(fs); in ffs_sbput()
971 error = (*writefunc)(devfd, loc, fs, fs->fs_sbsize); in ffs_sbput()
980 ffs_calc_sbhash(struct fs *fs) in ffs_calc_sbhash() argument
998 if ((fs->fs_metackhash & CK_SUPERBLOCK) == 0) in ffs_calc_sbhash()
999 return (fs->fs_ckhash); in ffs_calc_sbhash()
1001 save_ckhash = fs->fs_ckhash; in ffs_calc_sbhash()
1002 fs->fs_ckhash = 0; in ffs_calc_sbhash()
1007 ckhash = calculate_crc32c(~0L, (void *)fs, fs->fs_sbsize); in ffs_calc_sbhash()
1008 fs->fs_ckhash = save_ckhash; in ffs_calc_sbhash()
1017 ffs_fragacct(struct fs *fs, int fragmap, int32_t fraglist[], int cnt) in ffs_fragacct() argument
1023 inblk = (int)(fragtbl[fs->fs_frag][fragmap]) << 1; in ffs_fragacct()
1025 for (siz = 1; siz < fs->fs_frag; siz++) { in ffs_fragacct()
1026 if ((inblk & (1 << (siz + (fs->fs_frag % NBBY)))) == 0) in ffs_fragacct()
1030 for (pos = siz; pos <= fs->fs_frag; pos++) { in ffs_fragacct()
1049 ffs_isblock(struct fs *fs, unsigned char *cp, ufs1_daddr_t h) in ffs_isblock() argument
1053 switch ((int)fs->fs_frag) { in ffs_isblock()
1078 ffs_isfreeblock(struct fs *fs, uint8_t *cp, ufs1_daddr_t h) in ffs_isfreeblock() argument
1081 switch ((int)fs->fs_frag) { in ffs_isfreeblock()
1103 ffs_clrblock(struct fs *fs, uint8_t *cp, ufs1_daddr_t h) in ffs_clrblock() argument
1106 switch ((int)fs->fs_frag) { in ffs_clrblock()
1131 ffs_setblock(struct fs *fs, unsigned char *cp, ufs1_daddr_t h) in ffs_setblock() argument
1134 switch ((int)fs->fs_frag) { in ffs_setblock()
1161 ffs_clusteracct(struct fs *fs, struct cg *cgp, ufs1_daddr_t blkno, int cnt) in ffs_clusteracct() argument
1169 if (fs->fs_contigsumsize <= 0) in ffs_clusteracct()
1184 end = start + fs->fs_contigsumsize; in ffs_clusteracct()
1205 end = start - fs->fs_contigsumsize; in ffs_clusteracct()
1227 if (i > fs->fs_contigsumsize) in ffs_clusteracct()
1228 i = fs->fs_contigsumsize; in ffs_clusteracct()
1237 lp = &sump[fs->fs_contigsumsize]; in ffs_clusteracct()
1238 for (i = fs->fs_contigsumsize; i > 0; i--) in ffs_clusteracct()
1241 fs->fs_maxcluster[cgp->cg_cgx] = i; in ffs_clusteracct()