Lines Matching refs:fs

98 		    struct ext2fs * es, struct m_ext2fs * fs);
116 struct m_ext2fs *fs; in ext2_mount() local
144 fs = ump->um_e2fs; in ext2_mount()
146 if (fs->e2fs_ronly == 0 && in ext2_mount()
155 if ( error == 0 && fs->e2fs_wasvalid && ext2_cgupdate(ump, MNT_WAIT) == 0) { in ext2_mount()
156 fs->e2fs->e2fs_state |= E2FS_ISCLEAN; in ext2_mount()
159 fs->e2fs_ronly = 1; in ext2_mount()
172 if (fs->e2fs_ronly && !vfs_flagopt(opts, "ro", NULL, 0)) { in ext2_mount()
173 if (ext2_check_sb_compat(fs->e2fs, devvp->v_rdev, 0)) in ext2_mount()
198 if ((fs->e2fs->e2fs_state & E2FS_ISCLEAN) == 0 || in ext2_mount()
199 (fs->e2fs->e2fs_state & E2FS_ERRORS)) { in ext2_mount()
202 "WARNING: %s was not properly dismounted\n", fs->e2fs_fsmnt); in ext2_mount()
206 fs->e2fs_fsmnt); in ext2_mount()
210 fs->e2fs->e2fs_state &= ~E2FS_ISCLEAN; in ext2_mount()
212 fs->e2fs_ronly = 0; in ext2_mount()
271 fs = ump->um_e2fs; in ext2_mount()
277 strncpy(fs->e2fs_fsmnt, path, MAXMNTLEN); in ext2_mount()
278 fs->e2fs_fsmnt[MAXMNTLEN - 1] = '\0'; in ext2_mount()
316 struct m_ext2fs *fs) in compute_sb_data() argument
324 fs->e2fs_bshift = EXT2_MIN_BLOCK_LOG_SIZE + es->e2fs_log_bsize; in compute_sb_data()
325 fs->e2fs_bsize = 1U << fs->e2fs_bshift; in compute_sb_data()
326 fs->e2fs_fsbtodb = es->e2fs_log_bsize + 1; in compute_sb_data()
327 fs->e2fs_qbmask = fs->e2fs_bsize - 1; in compute_sb_data()
328 fs->e2fs_fsize = EXT2_MIN_FRAG_SIZE << es->e2fs_log_fsize; in compute_sb_data()
329 if (fs->e2fs_fsize) in compute_sb_data()
330 fs->e2fs_fpb = fs->e2fs_bsize / fs->e2fs_fsize; in compute_sb_data()
331 fs->e2fs_bpg = es->e2fs_bpg; in compute_sb_data()
332 fs->e2fs_fpg = es->e2fs_fpg; in compute_sb_data()
333 fs->e2fs_ipg = es->e2fs_ipg; in compute_sb_data()
335 fs->e2fs_isize = E2FS_REV0_INODE_SIZE ; in compute_sb_data()
337 fs->e2fs_isize = es->e2fs_inode_size; in compute_sb_data()
342 if (EXT2_INODE_SIZE(fs) < E2FS_REV0_INODE_SIZE || in compute_sb_data()
343 EXT2_INODE_SIZE(fs) > fs->e2fs_bsize || in compute_sb_data()
344 (fs->e2fs_isize & (fs->e2fs_isize - 1)) != 0) { in compute_sb_data()
346 fs->e2fs_isize); in compute_sb_data()
351 if (EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_EXTRA_ISIZE) && in compute_sb_data()
352 EXT2_INODE_SIZE(fs) < sizeof(struct ext2fs_dinode)) { in compute_sb_data()
357 fs->e2fs_ipb = fs->e2fs_bsize / EXT2_INODE_SIZE(fs); in compute_sb_data()
358 fs->e2fs_itpg = fs->e2fs_ipg / fs->e2fs_ipb; in compute_sb_data()
360 fs->e2fs_gcount = (es->e2fs_bcount - es->e2fs_first_dblock + in compute_sb_data()
361 EXT2_BLOCKS_PER_GROUP(fs) - 1) / EXT2_BLOCKS_PER_GROUP(fs); in compute_sb_data()
362 e2fs_descpb = fs->e2fs_bsize / sizeof(struct ext2_gd); in compute_sb_data()
363 db_count = (fs->e2fs_gcount + e2fs_descpb - 1) / e2fs_descpb; in compute_sb_data()
364 fs->e2fs_gdbcount = db_count; in compute_sb_data()
365 fs->e2fs_gd = malloc(db_count * fs->e2fs_bsize, in compute_sb_data()
367 fs->e2fs_contigdirs = malloc(fs->e2fs_gcount * in compute_sb_data()
368 sizeof(*fs->e2fs_contigdirs), M_EXT2MNT, M_WAITOK | M_ZERO); in compute_sb_data()
375 if(fs->e2fs_bsize > SBSIZE) in compute_sb_data()
379 fsbtodb(fs, logic_sb_block + i + 1 ), in compute_sb_data()
380 fs->e2fs_bsize, NOCRED, &bp); in compute_sb_data()
382 free(fs->e2fs_contigdirs, M_EXT2MNT); in compute_sb_data()
383 free(fs->e2fs_gd, M_EXT2MNT); in compute_sb_data()
388 &fs->e2fs_gd[ in compute_sb_data()
389 i * fs->e2fs_bsize / sizeof(struct ext2_gd)], in compute_sb_data()
390 fs->e2fs_bsize); in compute_sb_data()
395 fs->e2fs_total_dir = 0; in compute_sb_data()
396 for (i = 0; i < fs->e2fs_gcount; i++) in compute_sb_data()
397 fs->e2fs_total_dir += fs->e2fs_gd[i].ext2bgd_ndirs; in compute_sb_data()
400 !EXT2_HAS_RO_COMPAT_FEATURE(fs, EXT2F_ROCOMPAT_LARGEFILE)) in compute_sb_data()
401 fs->e2fs_maxfilesize = 0x7fffffff; in compute_sb_data()
403 fs->e2fs_maxfilesize = 0x7fffffffffffffff; in compute_sb_data()
428 struct m_ext2fs *fs; in ext2_reload() local
455 fs = VFSTOEXT2(mp)->um_e2fs; in ext2_reload()
456 bcopy(bp->b_data, fs->e2fs, sizeof(struct ext2fs)); in ext2_reload()
458 if((error = compute_sb_data(devvp, es, fs)) != 0) { in ext2_reload()
463 if (fs->fs_sbsize < SBSIZE) in ext2_reload()
471 if (fs->e2fs_contigsumsize > 0) { in ext2_reload()
472 lp = fs->e2fs_maxcluster; in ext2_reload()
473 sump = fs->e2fs_clustersum; in ext2_reload()
474 for (i = 0; i < fs->e2fs_gcount; i++, sump++) { in ext2_reload()
475 *lp++ = fs->e2fs_contigsumsize; in ext2_reload()
477 bzero(sump->cs_sum, fs->e2fs_contigsumsize + 1); in ext2_reload()
497 error = bread(devvp, fsbtodb(fs, ino_to_fsba(fs, ip->i_number)), in ext2_reload()
498 (int)fs->e2fs_bsize, NOCRED, &bp); in ext2_reload()
506 EXT2_INODE_SIZE(fs) * ino_to_fsbo(fs, ip->i_number)), ip); in ext2_reload()
522 struct m_ext2fs *fs; in ext2_mountfs() local
626 fs = ump->um_e2fs; in ext2_mountfs()
627 fs->e2fs_ronly = ronly; /* ronly is set according to mnt_flags */ in ext2_mountfs()
633 fs->e2fs_wasvalid = fs->e2fs->e2fs_state & E2FS_ISCLEAN ? 1 : 0; in ext2_mountfs()
635 fs->e2fs_fmod = 1; /* mark it modified */ in ext2_mountfs()
636 fs->e2fs->e2fs_state &= ~E2FS_ISCLEAN; /* set fs invalid */ in ext2_mountfs()
655 ump->um_nindir = EXT2_ADDR_PER_BLOCK(fs); in ext2_mountfs()
656 ump->um_bptrtodb = fs->e2fs->e2fs_log_bsize + 1; in ext2_mountfs()
657 ump->um_seqinc = EXT2_FRAGS_PER_BLOCK(fs); in ext2_mountfs()
697 struct m_ext2fs *fs; in ext2_unmount() local
710 fs = ump->um_e2fs; in ext2_unmount()
711 ronly = fs->e2fs_ronly; in ext2_unmount()
713 if (fs->e2fs_wasvalid) in ext2_unmount()
714 fs->e2fs->e2fs_state |= E2FS_ISCLEAN; in ext2_unmount()
724 sump = fs->e2fs_clustersum; in ext2_unmount()
725 for (i = 0; i < fs->e2fs_gcount; i++, sump++) in ext2_unmount()
727 free(fs->e2fs_clustersum, M_EXT2MNT); in ext2_unmount()
728 free(fs->e2fs_maxcluster, M_EXT2MNT); in ext2_unmount()
729 free(fs->e2fs_gd, M_EXT2MNT); in ext2_unmount()
730 free(fs->e2fs_contigdirs, M_EXT2MNT); in ext2_unmount()
731 free(fs->e2fs, M_EXT2MNT); in ext2_unmount()
732 free(fs, M_EXT2MNT); in ext2_unmount()
759 struct m_ext2fs *fs; in ext2_statfs() local
764 fs = ump->um_e2fs; in ext2_statfs()
765 if (fs->e2fs->e2fs_magic != E2FS_MAGIC) in ext2_statfs()
774 fs->e2fs_itpg; in ext2_statfs()
775 overhead = fs->e2fs->e2fs_first_dblock + in ext2_statfs()
776 fs->e2fs_gcount * overhead_per_group; in ext2_statfs()
777 if (fs->e2fs->e2fs_rev > E2FS_REV0 && in ext2_statfs()
778 fs->e2fs->e2fs_features_rocompat & EXT2F_ROCOMPAT_SPARSESUPER) { in ext2_statfs()
779 for (i = 0, ngroups = 0; i < fs->e2fs_gcount; i++) { in ext2_statfs()
784 ngroups = fs->e2fs_gcount; in ext2_statfs()
786 ngdb = fs->e2fs_gdbcount; in ext2_statfs()
787 if (fs->e2fs->e2fs_rev > E2FS_REV0 && in ext2_statfs()
788 fs->e2fs->e2fs_features_compat & EXT2F_COMPAT_RESIZE) in ext2_statfs()
789 ngdb += fs->e2fs->e2fs_reserved_ngdb; in ext2_statfs()
792 sbp->f_bsize = EXT2_FRAG_SIZE(fs); in ext2_statfs()
793 sbp->f_iosize = EXT2_BLOCK_SIZE(fs); in ext2_statfs()
794 sbp->f_blocks = fs->e2fs->e2fs_bcount - overhead; in ext2_statfs()
795 sbp->f_bfree = fs->e2fs->e2fs_fbcount; in ext2_statfs()
796 sbp->f_bavail = sbp->f_bfree - fs->e2fs->e2fs_rbcount; in ext2_statfs()
797 sbp->f_files = fs->e2fs->e2fs_icount; in ext2_statfs()
798 sbp->f_ffree = fs->e2fs->e2fs_ficount; in ext2_statfs()
816 struct m_ext2fs *fs; in ext2_sync() local
820 fs = ump->um_e2fs; in ext2_sync()
821 if (fs->e2fs_fmod != 0 && fs->e2fs_ronly != 0) { /* XXX */ in ext2_sync()
822 printf("fs = %s\n", fs->e2fs_fsmnt); in ext2_sync()
870 if (fs->e2fs_fmod != 0) { in ext2_sync()
871 fs->e2fs_fmod = 0; in ext2_sync()
872 fs->e2fs->e2fs_wtime = time_second; in ext2_sync()
888 struct m_ext2fs *fs; in ext2_vget() local
913 ip->i_e2fs = fs = ump->um_e2fs; in ext2_vget()
929 if ((error = bread(ump->um_devvp, fsbtodb(fs, ino_to_fsba(fs, ino)), in ext2_vget()
930 (int)fs->e2fs_bsize, NOCRED, &bp)) != 0) { in ext2_vget()
943 ext2_ei2i((struct ext2fs_dinode *) ((char *)bp->b_data + EXT2_INODE_SIZE(fs) * in ext2_vget()
944 ino_to_fsbo(fs, ino)), ip); in ext2_vget()
945 ip->i_block_group = ino_to_cg(fs, ino); in ext2_vget()
959 used_blocks = (ip->i_size+fs->e2fs_bsize-1) / fs->e2fs_bsize; in ext2_vget()
1011 struct m_ext2fs *fs; in ext2_fhtovp() local
1015 fs = VFSTOEXT2(mp)->um_e2fs; in ext2_fhtovp()
1017 ufhp->ufid_ino > fs->e2fs_gcount * fs->e2fs->e2fs_ipg) in ext2_fhtovp()
1043 struct m_ext2fs *fs = mp->um_e2fs; in ext2_sbupdate() local
1044 struct ext2fs *es = fs->e2fs; in ext2_sbupdate()
1065 struct m_ext2fs *fs = mp->um_e2fs; in ext2_cgupdate() local
1070 for (i = 0; i < fs->e2fs_gdbcount; i++) { in ext2_cgupdate()
1071 bp = getblk(mp->um_devvp, fsbtodb(fs, in ext2_cgupdate()
1072 fs->e2fs->e2fs_first_dblock + in ext2_cgupdate()
1073 1 /* superblock */ + i), fs->e2fs_bsize, 0, 0, 0); in ext2_cgupdate()
1074 e2fs_cgsave(&fs->e2fs_gd[ in ext2_cgupdate()
1075 i * fs->e2fs_bsize / sizeof(struct ext2_gd)], in ext2_cgupdate()
1076 (struct ext2_gd *)bp->b_data, fs->e2fs_bsize); in ext2_cgupdate()