Lines Matching refs:cg

89 	int cg;
112 cg = ino_to_cg(fs, ip->i_number);
114 cg = dtog(fs, bpref);
115 bno = (daddr_t)ext2_hashalloc(ip, cg, bpref, fs->e2fs_bsize,
378 int i, error, cg;
394 cg = ext2_dirpref(pip);
395 if (fs->e2fs_contigdirs[cg] < 255)
396 fs->e2fs_contigdirs[cg]++;
398 cg = ino_to_cg(fs, pip->i_number);
399 if (fs->e2fs_contigdirs[cg] > 0)
400 fs->e2fs_contigdirs[cg]--;
402 ipref = cg * fs->e2fs->e2fs_ipg + 1;
403 ino = (ino_t)ext2_hashalloc(pip, cg, (long)ipref, mode, ext2_nodealloccg);
471 int cg, prefcg, cgsize;
485 * Force allocation in another cg if creating a first level dir.
492 for (cg = prefcg; cg < fs->e2fs_gcount; cg++)
493 if (fs->e2fs_gd[cg].ext2bgd_ndirs < minndir &&
494 fs->e2fs_gd[cg].ext2bgd_nifree >= avgifree &&
495 fs->e2fs_gd[cg].ext2bgd_nbfree >= avgbfree) {
496 mincg = cg;
497 minndir = fs->e2fs_gd[cg].ext2bgd_ndirs;
499 for (cg = 0; cg < prefcg; cg++)
500 if (fs->e2fs_gd[cg].ext2bgd_ndirs < minndir &&
501 fs->e2fs_gd[cg].ext2bgd_nifree >= avgifree &&
502 fs->e2fs_gd[cg].ext2bgd_nbfree >= avgbfree) {
503 mincg = cg;
504 minndir = fs->e2fs_gd[cg].ext2bgd_ndirs;
530 * Limit number of dirs in one cg and reserve space for
535 for (cg = prefcg; cg < fs->e2fs_gcount; cg++)
536 if (fs->e2fs_gd[cg].ext2bgd_ndirs < maxndir &&
537 fs->e2fs_gd[cg].ext2bgd_nifree >= minifree &&
538 fs->e2fs_gd[cg].ext2bgd_nbfree >= minbfree) {
539 if (fs->e2fs_contigdirs[cg] < maxcontigdirs)
540 return (cg);
542 for (cg = 0; cg < prefcg; cg++)
543 if (fs->e2fs_gd[cg].ext2bgd_ndirs < maxndir &&
544 fs->e2fs_gd[cg].ext2bgd_nifree >= minifree &&
545 fs->e2fs_gd[cg].ext2bgd_nbfree >= minbfree) {
546 if (fs->e2fs_contigdirs[cg] < maxcontigdirs)
547 return (cg);
552 for (cg = prefcg; cg < fs->e2fs_gcount; cg++)
553 if (fs->e2fs_gd[cg].ext2bgd_nifree >= avgifree)
554 return (cg);
555 for (cg = 0; cg < prefcg; cg++)
556 if (fs->e2fs_gd[cg].ext2bgd_nifree >= avgifree)
558 return (cg);
617 ext2_hashalloc(struct inode *ip, int cg, long pref, int size,
622 int i, icg = cg;
629 result = (*allocator)(ip, cg, pref, size);
636 cg += i;
637 if (cg >= fs->e2fs_gcount)
638 cg -= fs->e2fs_gcount;
639 result = (*allocator)(ip, cg, 0, size);
648 cg = (icg + 2) % fs->e2fs_gcount;
650 result = (*allocator)(ip, cg, 0, size);
653 cg++;
654 if (cg == fs->e2fs_gcount)
655 cg = 0;
661 ext2_cg_num_gdb(struct m_ext2fs *fs, int cg)
666 metagroup = cg / gd_per_block;
672 if (!ext2_cg_has_sb(fs, cg))
679 if (cg == first || cg == first + 1 || cg == last)
686 ext2_num_base_meta_blocks(struct m_ext2fs *fs, int cg)
691 num = ext2_cg_has_sb(fs, cg);
694 cg < fs->e2fs->e3fs_first_meta_bg * gd_per_block) {
696 num += ext2_cg_num_gdb(fs, cg);
700 num += ext2_cg_num_gdb(fs, cg);
709 int cg;
712 cg = (blk - fs->e2fs->e2fs_first_dblock) / (fs->e2fs_bsize * 8);
714 cg = blk - fs->e2fs->e2fs_first_dblock;
716 return (cg);
734 ext2_cg_block_bitmap_init(struct m_ext2fs *fs, int cg, struct buf *bp)
740 !(fs->e2fs_gd[cg].ext4bgd_flags & EXT2_BG_BLOCK_UNINIT))
745 bit_max = ext2_num_base_meta_blocks(fs, cg);
752 start = cg * fs->e2fs->e2fs_bpg + fs->e2fs->e2fs_first_dblock;
755 tmp = fs->e2fs_gd[cg].ext2bgd_b_bitmap;
757 tmp == ext2_get_cg_number(fs, cg))
760 tmp = fs->e2fs_gd[cg].ext2bgd_i_bitmap;
762 tmp == ext2_get_cg_number(fs, cg))
765 tmp = fs->e2fs_gd[cg].ext2bgd_i_tables;
767 while( tmp < fs->e2fs_gd[cg].ext2bgd_i_tables +
770 tmp == ext2_get_cg_number(fs, cg))
784 fs->e2fs_gd[cg].ext4bgd_flags &= ~EXT2_BG_BLOCK_UNINIT;
796 ext2_alloccg(struct inode *ip, int cg, daddr_t bpref, int size)
807 if (fs->e2fs_gd[cg].ext2bgd_nbfree == 0)
811 fs->e2fs_gd[cg].ext2bgd_b_bitmap),
819 error = ext2_cg_block_bitmap_init(fs, cg, bp);
826 if (fs->e2fs_gd[cg].ext2bgd_nbfree == 0) {
837 if (dtog(fs, bpref) != cg)
915 printf("ext2fs_alloccgblk: cg=%d bno=%jd fs=%s\n",
916 cg, (intmax_t)bno, fs->e2fs_fsmnt);
922 ext2_clusteracct(fs, bbp, cg, bno, -1);
924 fs->e2fs_gd[cg].ext2bgd_nbfree--;
928 return (cg * fs->e2fs->e2fs_fpg + fs->e2fs->e2fs_first_dblock + bno);
935 ext2_clusteralloc(struct inode *ip, int cg, daddr_t bpref, int len)
948 if (fs->e2fs_maxcluster[cg] < len)
953 fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_b_bitmap),
964 lp = &fs->e2fs_clustersum[cg].cs_sum[len];
975 lp = &fs->e2fs_clustersum[cg].cs_sum[len - 1];
979 fs->e2fs_maxcluster[cg] = i;
985 if (dtog(fs, bpref) != cg)
1022 ext2_clusteracct(fs, bbp, cg, bno + i, -1);
1024 fs->e2fs_gd[cg].ext2bgd_nbfree--;
1030 return (cg * fs->e2fs->e2fs_fpg + fs->e2fs->e2fs_first_dblock + bno);
1040 ext2_zero_inode_table(struct inode *ip, int cg)
1048 if (fs->e2fs_gd[cg].ext4bgd_flags & EXT2_BG_INODE_ZEROED)
1055 fs->e2fs_gd[cg].ext4bgd_i_unused,
1060 fs->e2fs_gd[cg].ext2bgd_i_tables + used_blks + i),
1069 fs->e2fs_gd[cg].ext4bgd_flags |= EXT2_BG_INODE_ZEROED;
1081 ext2_nodealloccg(struct inode *ip, int cg, daddr_t ipref, int mode)
1094 if (fs->e2fs_gd[cg].ext2bgd_nifree == 0)
1098 fs->e2fs_gd[cg].ext2bgd_i_bitmap),
1106 if (fs->e2fs_gd[cg].ext4bgd_flags & EXT2_BG_INODE_UNINIT) {
1108 fs->e2fs_gd[cg].ext4bgd_flags &= ~EXT2_BG_INODE_UNINIT;
1110 error = ext2_zero_inode_table(ip, cg);
1117 if (fs->e2fs_gd[cg].ext2bgd_nifree == 0) {
1140 printf("cg = %d, ipref = %lld, fs = %s\n",
1141 cg, (long long)ipref, fs->e2fs_fsmnt);
1150 fs->e2fs_gd[cg].ext2bgd_nifree--;
1152 fs->e2fs_gd[cg].ext4bgd_i_unused--;
1156 fs->e2fs_gd[cg].ext2bgd_ndirs++;
1161 return (cg * fs->e2fs->e2fs_ipg + ipref + 1);
1174 int cg, error;
1179 cg = dtog(fs, bno);
1187 fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_b_bitmap),
1202 ext2_clusteracct(fs, bbp, cg, bno, 1);
1204 fs->e2fs_gd[cg].ext2bgd_nbfree++;
1221 int error, cg;
1231 cg = ino_to_cg(fs, ino);
1233 fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_i_bitmap),
1250 fs->e2fs_gd[cg].ext2bgd_nifree++;
1252 fs->e2fs_gd[cg].ext4bgd_i_unused++;
1254 fs->e2fs_gd[cg].ext2bgd_ndirs--;
1313 ext2_cg_has_sb(struct m_ext2fs *fs, int cg)
1317 if (cg == 0)
1321 if (cg == fs->e2fs->e4fs_backup_bgs[0] ||
1322 cg == fs->e2fs->e4fs_backup_bgs[1])
1327 if ((cg <= 1) ||
1331 if (!(cg & 1))
1335 a3 <= cg || a5 <= cg || a7 <= cg;
1337 if (cg == a3 || cg == a5 || cg == a7)