Lines Matching defs:cg
118 static int32_t ffs_mapsearch(struct fs *, struct cg *,
182 u_int cg;
255 cg = ino_to_cg(fs, ip->i_number);
257 cg = dtog(fs, bpref);
258 bno = ffs_hashalloc(ip, cg, bpref, size, 0, flags, ffs_alloccg);
314 u_int cg, request;
404 cg = dtog(fs, bprev);
406 if ((bno = ffs_fragextend(ip, cg, bprev, osize, nsize)) != 0) {
490 bno = ffs_hashalloc(ip, cg
575 u_int cg;
598 cg = ino_to_cg(fs, ipref);
601 * in a same cg without intervening by files.
604 if (fs->fs_contigdirs[cg] < 255)
605 fs->fs_contigdirs[cg]++;
607 if (fs->fs_contigdirs[cg] > 0)
608 fs->fs_contigdirs[cg]--;
610 ino = (ino_t)ffs_hashalloc(pip, cg, ipref, mode, 0, 0, ffs_nodealloccg);
642 u_int cg, prefcg;
658 * Force allocation in another cg if creating a first level dir.
664 for (cg = prefcg; cg < fs->fs_ncg; cg++)
665 if (fs->fs_cs(fs, cg).cs_ndir < minndir &&
666 fs->fs_cs(fs, cg).cs_nifree >= avgifree &&
667 fs->fs_cs(fs, cg).cs_nbfree >= avgbfree) {
668 mincg = cg;
669 minndir = fs->fs_cs(fs, cg).cs_ndir;
671 for (cg = 0; cg < prefcg; cg++)
672 if (fs->fs_cs(fs, cg).cs_ndir < minndir &&
673 fs->fs_cs(fs, cg).cs_nifree >= avgifree &&
674 fs->fs_cs(fs, cg).cs_nbfree >= avgbfree) {
675 mincg = cg;
676 minndir = fs->fs_cs(fs, cg).cs_ndir;
713 * Limit number of dirs in one cg and reserve space for
718 for (cg = prefcg; cg < fs->fs_ncg; cg++)
719 if (fs->fs_cs(fs, cg).cs_ndir < maxndir &&
720 fs->fs_cs(fs, cg).cs_nifree >= minifree &&
721 fs->fs_cs(fs, cg).cs_nbfree >= minbfree) {
722 if (fs->fs_contigdirs[cg] < maxcontigdirs)
723 return ((ino_t)(fs->fs_ipg * cg));
725 for (cg = 0; cg < prefcg; cg++)
726 if (fs->fs_cs(fs, cg).cs_ndir < maxndir &&
727 fs->fs_cs(fs, cg).cs_nifree >= minifree &&
728 fs->fs_cs(fs, cg).cs_nbfree >= minbfree) {
729 if (fs->fs_contigdirs[cg] < maxcontigdirs)
730 return ((ino_t)(fs->fs_ipg * cg));
735 for (cg = prefcg; cg < fs->fs_ncg; cg++)
736 if (fs->fs_cs(fs, cg).cs_nifree >= avgifree)
737 return ((ino_t)(fs->fs_ipg * cg));
738 for (cg = 0; cg < prefcg; cg++)
739 if (fs->fs_cs(fs, cg).cs_nifree >= avgifree)
741 return ((ino_t)(fs->fs_ipg * cg));
775 u_int cg;
803 cg = ino_to_cg(fs, ip->i_number);
804 return (cgbase(fs, cg) + fs->fs_frag);
818 for (cg = startcg; cg < fs->fs_ncg; cg++)
819 if (fs->fs_cs(fs, cg).cs_nbfree >= avgbfree) {
820 return (cgbase(fs, cg) + fs->fs_frag);
822 for (cg = 0; cg < startcg; cg++)
823 if (fs->fs_cs(fs, cg).cs_nbfree >= avgbfree) {
824 return (cgbase(fs, cg) + fs->fs_frag);
839 u_int cg;
867 cg = ino_to_cg(fs, ip->i_number);
868 return (cgbase(fs, cg) + fs->fs_frag);
882 for (cg = startcg; cg < fs->fs_ncg; cg++)
883 if (fs->fs_cs(fs, cg).cs_nbfree >= avgbfree) {
884 return (cgbase(fs, cg) + fs->fs_frag);
886 for (cg = 0; cg < startcg; cg++)
887 if (fs->fs_cs(fs, cg).cs_nbfree >= avgbfree) {
888 return (cgbase(fs, cg) + fs->fs_frag);
913 ffs_hashalloc(struct inode *ip, u_int cg, daddr_t pref,
921 u_int i, icg = cg;
927 result = (*allocator)(ip, cg, pref, size, realsize, flags);
937 cg += i;
938 if (cg >= fs->fs_ncg)
939 cg -= fs->fs_ncg;
940 result = (*allocator)(ip, cg, 0, size, realsize, flags);
949 cg = (icg + 2) % fs->fs_ncg;
951 result = (*allocator)(ip, cg, 0, size, realsize, flags);
954 cg++;
955 if (cg == fs->fs_ncg)
956 cg = 0;
971 ffs_fragextend(struct inode *ip, u_int cg, daddr_t bprev, int osize, int nsize)
975 struct cg *cgp;
987 if (fs->fs_cs(fs, cg).cs_nffree < ffs_numfrags(fs, nsize - osize))
996 error = bread(ip->i_devvp, FFS_FSBTODB(fs, cgtod(fs, cg)),
1000 cgp = (struct cg *)bp->b_data;
1029 fs->fs_cs(fs, cg).cs_nffree--;
1032 ACTIVECG_CLR(fs, cg);
1051 cg, daddr_t bpref, int size, int realsize,
1056 struct cg *cgp;
1068 if (fs->fs_cs(fs, cg).cs_nbfree == 0 && size == fs->fs_bsize)
1071 error = bread(ip->i_devvp, FFS_FSBTODB(fs, cgtod(fs, cg)),
1075 cgp = (struct cg *)bp->b_data;
1086 ACTIVECG_CLR(fs, cg);
1130 fs->fs_cs(fs, cg).cs_nffree += i;
1133 ACTIVECG_CLR(fs, cg);
1152 fs->fs_cs(fs, cg).cs_nffree -= frags;
1157 blkno = cgbase(fs, cg) + bno;
1158 ACTIVECG_CLR(fs, cg);
1186 struct cg *cgp;
1187 int cg;
1195 cgp = (struct cg *)bp->b_data;
1247 cg = ufs_rw32(cgp->cg_cgx, needswap);
1248 blkno = cgbase(fs, cg) + bno;
1262 ffs_nodealloccg(struct inode *ip, u_int cg, daddr_t ipref, int mode, int realsize,
1267 struct cg *cgp;
1279 if (fs->fs_cs(fs, cg).cs_nifree == 0)
1291 error = bread(ip->i_devvp, FFS_FSBTODB(fs, cgtod(fs, cg)),
1295 cgp = (struct cg *)bp->b_data;
1315 * We have to release the cg buffer here to prevent
1317 * run a copy-on-write that might use this cg.
1322 ino_to_fsba(fs, cg * fs->fs_ipg + initediblk)),
1348 KASSERTMSG(irotor < initediblk, "%s: allocation botch: cg=%d, irotor %d"
1350 __func__, cg, irotor, initediblk);
1360 panic("%s: map corrupted: cg=%d, irotor=%d, fs=%s",
1361 __func__, cg, ufs_rw32(cgp->cg_irotor, needswap),
1377 KASSERTMSG(ipref < maxiblk, "%s: allocation botch: cg=%d attempt to "
1379 " of %d inodes/cg",
1380 __func__, cg, (int)ipref, maxiblk, cgp->cg_niblk);
1382 UFS_WAPBL_REGISTER_INODE(ip->i_ump->um_mountp, cg * fs->fs_ipg + ipref,
1404 ACTIVECG_CLR(fs, cg);
1408 fs->fs_cs(fs, cg).cs_nifree--;
1413 fs->fs_cs(fs, cg).cs_ndir++;
1421 return ((ino_t)(cg * fs->fs_ipg + ipref));
1458 struct cg *cgp;
1462 u_int cg;
1470 cg = dtog(fs, bno);
1471 error = bread(ump->um_devvp, FFS_FSBTODB(fs, cgtod(fs, cg)),
1476 cgp = (struct cg *)bp->b_data;
1498 fs->fs_cs(fs, cg).cs_nbfree--;
1517 fs->fs_cs(fs, cg).cs_nffree += fs->fs_frag;
1521 fs->fs_cs(fs, cg).cs_nbfree--;
1536 fs->fs_cs(fs, cg).cs_nffree -= i;
1544 ACTIVECG_CLR(fs, cg);
1562 struct cg *cgp;
1567 u_int cg;
1574 cg = dtog(fs, bno);
1578 cgblkno = FFS_FSBTODB(fs, cgtod(fs, cg));
1585 cgp = (struct cg *)bp->b_data;
1823 * Free a block or fragment from a snapshot cg copy.
1835 struct cg *cgp;
1839 int error, cg;
1846 cg = dtog(fs, bno);
1849 cgblkno = ffs_fragstoblks(fs, cgtod(fs, cg));
1860 cgp = (struct cg *)bp->b_data;
1875 struct cg *cgp;
1878 u_int cg;
1882 cg = dtog(fs, bno);
1883 cgp = (struct cg *)bp->b_data;
1906 fs->fs_cs(fs, cg).cs_nbfree++;
1941 fs->fs_cs(fs, cg).cs_nffree += i;
1954 fs->fs_cs(fs, cg).cs_nffree -= fs->fs_frag;
1958 fs->fs_cs(fs, cg).cs_nbfree++;
1973 ACTIVECG_CLR(fs, cg);
1999 struct cg *cgp;
2002 u_int cg;
2007 cg = ino_to_cg(fs, ino);
2010 cgbno = FFS_FSBTODB(fs, cgtod(fs, cg));
2020 cgp = (struct cg *)bp->b_data;
2037 struct cg *cgp;
2039 int error, cg;
2046 cg = ino_to_cg(fs, ino);
2049 cgbno = ffs_fragstoblks(fs, cgtod(fs, cg));
2059 cgp = (struct cg *)bp->b_data;
2075 u_int cg;
2076 struct cg *cgp;
2081 cg = ino_to_cg(fs, ino);
2082 cgp = (struct cg *)bp->b_data;
2104 fs->fs_cs(fs, cg).cs_nifree++;
2108 fs->fs_cs(fs, cg).cs_ndir--;
2111 ACTIVECG_CLR(fs, cg);
2121 struct cg *cgp;
2125 u_int cg;
2131 cg = ino_to_cg(fs, ino);
2133 cgbno = ffs_fragstoblks(fs, cgtod(fs, cg));
2135 cgbno = FFS_FSBTODB(fs, cgtod(fs, cg));
2141 cgp = (struct cg *)bp->b_data;
2160 ffs_mapsearch(struct fs *fs, struct cg *cgp, daddr_t bpref, int allocsiz)
2196 "fs = %s, offset=%d/%ld, cg %d", __func__,