Lines Matching defs:fs
109 struct m_ext2fs *fs;
135 fs = ump->um_e2fs;
136 memset(fs->e2fs_fsmnt, 0, sizeof(fs->e2fs_fsmnt));
137 strlcpy(fs->e2fs_fsmnt, mp->mnt_stat.f_mntonname, sizeof(fs->e2fs_fsmnt));
138 if (fs->e2fs.e2fs_rev > E2FS_REV0) {
139 memset(fs->e2fs.e2fs_fsmnt, 0, sizeof(fs->e2fs.e2fs_fsmnt));
140 strlcpy(fs->e2fs.e2fs_fsmnt, mp->mnt_stat.f_mntonname,
141 sizeof(fs->e2fs.e2fs_fsmnt));
145 inittodr(fs->e2fs.e2fs_wtime);
161 struct m_ext2fs *fs;
172 fs = ump->um_e2fs;
173 if (fs->e2fs_ronly == 0 && (mp->mnt_flag & MNT_RDONLY)) {
180 (fs->e2fs.e2fs_state & E2FS_ERRORS) == 0) {
181 fs->e2fs.e2fs_state = E2FS_ISCLEAN;
186 fs->e2fs_ronly = 1;
193 if (fs->e2fs_ronly && (mp->mnt_flag & MNT_WANTRDWR)) {
194 fs->e2fs_ronly = 0;
195 if (fs->e2fs.e2fs_state == E2FS_ISCLEAN)
196 fs->e2fs.e2fs_state = 0;
198 fs->e2fs.e2fs_state = E2FS_ERRORS;
199 fs->e2fs_fmod = 1;
246 fs = ump->um_e2fs;
248 memset(fs->e2fs_fsmnt, 0, sizeof(fs->e2fs_fsmnt));
249 strlcpy(fs->e2fs_fsmnt, path, sizeof(fs->e2fs_fsmnt));
250 if (fs->e2fs.e2fs_rev > E2FS_REV0) {
251 memset(fs->e2fs.e2fs_fsmnt, 0, sizeof(fs->e2fs.e2fs_fsmnt));
252 strlcpy(fs->e2fs.e2fs_fsmnt, mp->mnt_stat.f_mntonname,
253 sizeof(fs->e2fs.e2fs_fsmnt));
255 memcpy(mp->mnt_stat.f_mntonname, fs->e2fs_fsmnt, MNAMELEN);
262 if (fs->e2fs_fmod != 0) { /* XXX */
263 fs->e2fs_fmod = 0;
264 if (fs->e2fs.e2fs_state == 0)
265 fs->e2fs.e2fs_wtime = gettime();
288 struct m_ext2fs *fs;
324 fsbtodb(era->fs, ino_to_fsba(era->fs, ip->i_number)),
325 (int)era->fs->e2fs_bsize, &bp);
331 (ino_to_fsbo(era->fs, ip->i_number) * EXT2_DINODE_SIZE(era->fs));
332 e2fs_iload(era->fs, (struct ext2fs_dinode *)cp, ip->i_e2din);
339 ext2fs_maxfilesize(struct m_ext2fs *fs)
341 bool huge = fs->e2fs.e2fs_features_rocompat & EXT2F_ROCOMPAT_HUGE_FILE;
342 off_t b = fs->e2fs_bsize / 4;
346 logically = (12ULL + b + b*b + b*b*b) * fs->e2fs_bsize;
352 e2fs_sbfill(struct vnode *devvp, struct m_ext2fs *fs)
358 fs->e2fs_ncg = howmany(fs->e2fs.e2fs_bcount - fs->e2fs.e2fs_first_dblock,
359 fs->e2fs.e2fs_bpg);
360 fs->e2fs_fsbtodb = fs->e2fs.e2fs_log_bsize + 1;
361 fs->e2fs_bsize = 1024 << fs->e2fs.e2fs_log_bsize;
362 fs->e2fs_bshift = LOG_MINBSIZE + fs->e2fs.e2fs_log_bsize;
363 fs->e2fs_fsize = 1024 << fs->e2fs.e2fs_log_fsize;
365 fs->e2fs_qbmask = fs->e2fs_bsize - 1;
366 fs->e2fs_bmask = ~fs->e2fs_qbmask;
368 fs->e2fs_ipb = fs->e2fs_bsize / EXT2_DINODE_SIZE(fs);
369 fs->e2fs_itpg = fs->e2fs.e2fs_ipg / fs->e2fs_ipb;
372 fs->e2fs_ngdb = howmany(fs->e2fs_ncg,
373 fs->e2fs_bsize / sizeof(struct ext2_gd));
374 fs->e2fs_gd = mallocarray(fs->e2fs_ngdb, fs->e2fs_bsize,
377 for (i = 0; i < fs->e2fs_ngdb; ++i) {
378 daddr_t dblk = ((fs->e2fs_bsize > 1024) ? 0 : 1) + i + 1;
379 size_t gdesc = i * fs->e2fs_bsize / sizeof(struct ext2_gd);
382 error = bread(devvp, fsbtodb(fs, dblk), fs->e2fs_bsize, &bp);
384 size_t gdescs_space = fs->e2fs_ngdb * fs->e2fs_bsize;
386 free(fs->e2fs_gd, M_UFSMNT, gdescs_space);
387 fs->e2fs_gd = NULL;
393 e2fs_cgload(gd, fs->e2fs_gd + gdesc, fs->e2fs_bsize);
398 if (!(fs->e2fs.e2fs_features_rocompat & EXT2F_ROCOMPAT_LARGE_FILE) ||
399 (fs->e2fs.e2fs_rev == E2FS_REV0))
400 fs->e2fs_maxfilesize = INT_MAX;
402 fs->e2fs_maxfilesize = ext2fs_maxfilesize(fs);
404 if (fs->e2fs.e2fs_features_incompat & EXT2F_INCOMPAT_EXTENTS)
405 fs->e2fs_maxfilesize *= 4;
428 struct m_ext2fs *fs;
460 fs = VFSTOUFS(mountp)->um_e2fs;
465 e2fs_sbload(newfs, &fs->e2fs);
466 if ((error = e2fs_sbfill(devvp, fs)) != 0)
471 era.fs = fs;
487 struct ext2fs *fs;
524 fs = (struct ext2fs *)bp->b_data;
525 error = e2fs_sbcheck(fs, ronly);
537 e2fs_sbload(fs, &ump->um_e2fs->e2fs);
542 fs = &ump->um_e2fs->e2fs;
547 if (fs->e2fs_state == E2FS_ISCLEAN)
548 fs->e2fs_state = 0;
550 fs->e2fs_state = E2FS_ERRORS;
591 struct m_ext2fs *fs;
601 fs = ump->um_e2fs;
602 gdescs_space = fs->e2fs_ngdb * fs->e2fs_bsize;
604 if (!fs->e2fs_ronly && ext2fs_cgupdate(ump, MNT_WAIT) == 0 &&
605 (fs->e2fs.e2fs_state & E2FS_ERRORS) == 0) {
606 fs->e2fs.e2fs_state = E2FS_ISCLEAN;
613 (void)VOP_CLOSE(ump->um_devvp, fs->e2fs_ronly ? FREAD : FREAD|FWRITE,
616 free(fs->e2fs_gd, M_UFSMNT, gdescs_space);
617 free(fs, M_UFSMNT, sizeof *fs);
655 struct m_ext2fs *fs;
660 fs = ump->um_e2fs;
661 if (fs->e2fs.e2fs_magic != E2FS_MAGIC)
668 fs->e2fs_itpg;
669 overhead = fs->e2fs.e2fs_first_dblock +
670 fs->e2fs_ncg * overhead_per_group;
671 if (fs->e2fs.e2fs_rev > E2FS_REV0 &&
672 fs->e2fs.e2fs_features_rocompat & EXT2F_ROCOMPAT_SPARSE_SUPER) {
673 for (i = 0, ngroups = 0; i < fs->e2fs_ncg; i++) {
678 ngroups = fs->e2fs_ncg;
680 overhead += ngroups * (1 + fs->e2fs_ngdb);
682 sbp->f_bsize = fs->e2fs_bsize;
683 sbp->f_iosize = fs->e2fs_bsize;
684 sbp->f_blocks = fs->e2fs.e2fs_bcount - overhead;
685 sbp->f_bfree = fs->e2fs.e2fs_fbcount;
686 sbp->f_bavail = sbp->f_bfree - fs->e2fs.e2fs_rbcount;
687 sbp->f_files = fs->e2fs.e2fs_icount;
688 sbp->f_favail = sbp->f_ffree = fs->e2fs.e2fs_ficount;
756 struct m_ext2fs *fs;
760 fs = ump->um_e2fs;
761 if (fs->e2fs_ronly != 0) { /* XXX */
762 printf("fs = %s\n", fs->e2fs_fsmnt);
792 state = fs->e2fs.e2fs_state;
793 fmod = fs->e2fs_fmod;
794 if (stall && fs->e2fs_ronly == 0) {
795 fs->e2fs_fmod = 1;
797 if ((fs->e2fs.e2fs_state & E2FS_ERRORS) == 0)
798 fs->e2fs.e2fs_state = E2FS_ISCLEAN;
804 fs->e2fs.e2fs_state = 0;
811 if (fs->e2fs_fmod != 0) {
812 fs->e2fs_fmod = 0;
813 fs->e2fs.e2fs_wtime = gettime();
817 fs->e2fs.e2fs_state = state;
818 fs->e2fs_fmod = fmod;
831 struct m_ext2fs *fs;
862 ip->i_e2fs = fs = ump->um_e2fs;
886 error = bread(ump->um_devvp, fsbtodb(fs, ino_to_fsba(fs, ino)),
887 (int)fs->e2fs_bsize, &bp);
902 + EXT2_DINODE_SIZE(fs) * ino_to_fsbo(fs, ino));
905 e2fs_iload(fs, dp, ip->i_e2din);
975 struct m_ext2fs *fs;
978 fs = VFSTOUFS(mp)->um_e2fs;
980 ufhp->ufid_ino > fs->e2fs_ncg * fs->e2fs.e2fs_ipg)
1032 struct m_ext2fs *fs = mp->um_e2fs;
1037 e2fs_sbsave(&fs->e2fs, (struct ext2fs *) bp->b_data);
1042 fs->e2fs_fmod = 0;
1049 struct m_ext2fs *fs = mp->um_e2fs;
1054 for (i = 0; i < fs->e2fs_ngdb; i++) {
1055 bp = getblk(mp->um_devvp, fsbtodb(fs, ((fs->e2fs_bsize>1024)?0:1)+i+1),
1056 fs->e2fs_bsize, 0, INFSLP);
1057 e2fs_cgsave(&fs->e2fs_gd[i* fs->e2fs_bsize / sizeof(struct ext2_gd)], (struct ext2_gd*)bp->b_data, fs->e2fs_bsize);
1071 e2fs_sbcheck(struct ext2fs *fs, int ronly)
1076 tmp = letoh16(fs->e2fs_magic);
1082 tmp = letoh32(fs->e2fs_log_bsize);
1090 if (fs->e2fs_bpg == 0) {
1095 tmp = letoh32(fs->e2fs_rev);
1103 tmp = letoh32(fs->e2fs_first_ino);
1109 tmp = letoh32(fs->e2fs_features_incompat);
1131 tmp = letoh32(fs->e2fs_features_rocompat) & ~EXT2F_ROCOMPAT_SUPP;