Lines Matching refs:fs

107 	struct fs *fs;  in alloc()  local
117 fs = ufsvfsp->vfs_fs; in alloc()
118 if ((unsigned)size > fs->fs_bsize || fragoff(fs, size) != 0) { in alloc()
121 ip->i_dev, fs->fs_bsize, size, fs->fs_fsmnt); in alloc()
124 if (size == fs->fs_bsize && fs->fs_cstotal.cs_nbfree == 0) in alloc()
126 if (freespace(fs, ufsvfsp) <= 0 && in alloc()
138 if (bpref >= fs->fs_size) in alloc()
141 cg = (int)itog(fs, ip->i_number); in alloc()
143 cg = dtog(fs, bpref); in alloc()
167 cmn_err(CE_NOTE, "alloc: %s: file system full", fs->fs_fsmnt); in alloc()
186 struct fs *fs; in realloccg() local
195 fs = ufsvfsp->vfs_fs; in realloccg()
196 if ((unsigned)osize > fs->fs_bsize || fragoff(fs, osize) != 0 || in realloccg()
197 (unsigned)nsize > fs->fs_bsize || fragoff(fs, nsize) != 0) { in realloccg()
201 ip->i_dev, fs->fs_bsize, osize, nsize, fs->fs_fsmnt); in realloccg()
204 if (freespace(fs, ufsvfsp) <= 0 && in realloccg()
210 " bprev = %ld, fs = %s\n", ip->i_dev, fs->fs_bsize, bprev, in realloccg()
211 fs->fs_fsmnt); in realloccg()
223 cg = dtog(fs, bprev); in realloccg()
229 if (bpref >= fs->fs_size) in realloccg()
245 request = (fs->fs_optim == FS_OPTTIME) ? fs->fs_bsize : nsize; in realloccg()
251 (void) free(ip, bno + numfrags(fs, nsize), in realloccg()
272 "realloccg %s: file system full", fs->fs_fsmnt); in realloccg()
298 struct fs *fs; in ufs_ialloc() local
308 fs = pip->i_fs; in ufs_ialloc()
310 nifree = fs->fs_cstotal.cs_nifree; in ufs_ialloc()
335 if (ipref >= (ulong_t)(fs->fs_ncg * fs->fs_ipg)) in ufs_ialloc()
337 cg = (int)itog(fs, ipref); in ufs_ialloc()
385 fs->fs_fsmnt, (int)ino, in ufs_ialloc()
410 fs->fs_fsmnt, (int)ino, ip->i_size, in ufs_ialloc()
449 cmn_err(CE_NOTE, "%s: out of inodes\n", fs->fs_fsmnt); in ufs_ialloc()
478 struct fs *fs = dp->i_fs; in dirpref() local
480 cg = itog(fs, dp->i_number); in dirpref()
481 mininode = fs->fs_ipg >> 2; in dirpref()
482 minbpg = fs->fs_maxbpg >> 2; in dirpref()
484 (fs->fs_cs(fs, cg).cs_nifree > mininode) && in dirpref()
485 (fs->fs_cs(fs, cg).cs_nbfree > minbpg)) { in dirpref()
489 avgifree = fs->fs_cstotal.cs_nifree / fs->fs_ncg; in dirpref()
490 minndir = fs->fs_ipg; in dirpref()
492 for (cg = 0; cg < fs->fs_ncg; cg++) { in dirpref()
493 ifree = fs->fs_cs(fs, cg).cs_nifree; in dirpref()
496 (fs->fs_cs(fs, cg).cs_nbfree > minbpg)) { in dirpref()
497 return ((ino_t)(fs->fs_ipg * cg)); in dirpref()
499 if ((fs->fs_cs(fs, cg).cs_ndir < minndir) && in dirpref()
502 minndir = fs->fs_cs(fs, cg).cs_ndir; in dirpref()
505 return ((ino_t)(fs->fs_ipg * mincg)); in dirpref()
537 struct fs *fs; in blkpref() local
544 fs = ip->i_fs; in blkpref()
545 if (indx % fs->fs_maxbpg == 0 || bap[indx - 1] == 0) { in blkpref()
547 cg = itog(fs, ip->i_number); in blkpref()
548 return (fs->fs_fpg * cg + fs->fs_frag); in blkpref()
555 startcg = itog(fs, ip->i_number) + lbn / fs->fs_maxbpg; in blkpref()
557 startcg = dtog(fs, bap[indx - 1]) + 1; in blkpref()
558 startcg %= fs->fs_ncg; in blkpref()
561 avgbfree = fs->fs_cstotal.cs_nbfree / fs->fs_ncg; in blkpref()
566 for (cg = startcg; cg < fs->fs_ncg; cg++) in blkpref()
567 if (fs->fs_cs(fs, cg).cs_nbfree >= avgbfree) { in blkpref()
568 fs->fs_cgrotor = cg; in blkpref()
570 return (fs->fs_fpg * cg + fs->fs_frag); in blkpref()
573 if (fs->fs_cs(fs, cg).cs_nbfree >= avgbfree) { in blkpref()
574 fs->fs_cgrotor = cg; in blkpref()
576 return (fs->fs_fpg * cg + fs->fs_frag); in blkpref()
594 nextblk = (-bap[indx - 1]) + fs->fs_frag; in blkpref()
596 nextblk = bap[indx - 1] + fs->fs_frag; in blkpref()
599 if (indx > fs->fs_maxcontig && bap[indx - fs->fs_maxcontig] + in blkpref()
600 blkstofrags(fs, fs->fs_maxcontig) != nextblk) { in blkpref()
603 if (fs->fs_rotdelay != 0) in blkpref()
610 nextblk += roundup(fs->fs_rotdelay * fs->fs_rps * fs->fs_nsect / in blkpref()
611 (NSPF(fs) * 1000), fs->fs_frag); in blkpref()
625 struct fs *fs = ip->i_fs; in free() local
642 if (bno < 0 && (bno % fs->fs_frag == 0) && bno != UFS_HOLE) { in free()
646 if ((unsigned long)size > fs->fs_bsize || fragoff(fs, size) != 0) { in free()
649 "fs = %s\n", ip->i_dev, fs->fs_bsize, in free()
650 (int)size, fs->fs_fsmnt); in free()
653 cg = dtog(fs, bno); in free()
655 bp = UFS_BREAD(ufsvfsp, ip->i_dev, (daddr_t)fsbtodb(fs, cgtod(fs, cg)), in free()
656 (int)fs->fs_cgsize); in free()
665 TRANS_CANCEL(ufsvfsp, ldbtob(fsbtodb(fs, bno)), size, flags); in free()
667 TRANS_MATA_FREE(ufsvfsp, ldbtob(fsbtodb(fs, bno)), size); in free()
673 bno = dtogd(fs, bno); in free()
674 if (size == fs->fs_bsize) { in free()
675 blkno = fragstoblks(fs, bno); in free()
676 cylno = cbtocylno(fs, bno); in free()
679 if (!isclrblock(fs, blksfree, blkno)) { in free()
684 ip->i_dev, bno, ip->i_number, fs->fs_fsmnt); in free()
687 setblock(fs, blksfree, blkno); in free()
691 fs->fs_cstotal.cs_nbfree++; in free()
692 fs->fs_cs(fs, cg).cs_nbfree++; in free()
696 btodb(fs->fs_bsize); in free()
700 bbase = bno - fragnum(fs, bno); in free()
704 bmap = blkmap(fs, blksfree, bbase); in free()
705 fragacct(fs, bmap, cgp->cg_frsum, -1); in free()
709 for (i = 0; i < numfrags(fs, size); i++) { in free()
721 fs->fs_fsmnt); in free()
727 fs->fs_cstotal.cs_nffree += i; in free()
728 fs->fs_cs(fs, cg).cs_nffree += i; in free()
732 btodb(i * fs->fs_fsize); in free()
738 bmap = blkmap(fs, blksfree, bbase); in free()
739 fragacct(fs, bmap, cgp->cg_frsum, 1); in free()
743 blkno = fragstoblks(fs, bbase); in free()
744 if (isblock(fs, blksfree, blkno)) { in free()
745 cylno = cbtocylno(fs, bbase); in free()
750 cgp->cg_cs.cs_nffree -= fs->fs_frag; in free()
751 fs->fs_cstotal.cs_nffree -= fs->fs_frag; in free()
752 fs->fs_cs(fs, cg).cs_nffree -= fs->fs_frag; in free()
754 fs->fs_cstotal.cs_nbfree++; in free()
755 fs->fs_cs(fs, cg).cs_nbfree++; in free()
758 fs->fs_fmod = 1; in free()
760 TRANS_BUF(ufsvfsp, 0, fs->fs_cgsize, bp, DT_CG); in free()
761 TRANS_SI(ufsvfsp, fs, cg); in free()
773 struct fs *fs = ip->i_fs; in ufs_ifree() local
785 ip->i_mode, mode, (int)ip->i_number, fs->fs_fsmnt); in ufs_ifree()
788 if (ino >= fs->fs_ipg * fs->fs_ncg) { in ufs_ifree()
791 (int)ip->i_dev, (int)ino, fs->fs_fsmnt); in ufs_ifree()
794 cg = (int)itog(fs, ino); in ufs_ifree()
795 bp = UFS_BREAD(ufsvfsp, ip->i_dev, (daddr_t)fsbtodb(fs, cgtod(fs, cg)), in ufs_ifree()
796 (int)fs->fs_cgsize); in ufs_ifree()
806 inot = (unsigned int)(ino % (ulong_t)fs->fs_ipg); in ufs_ifree()
813 ip->i_mode, mode, (int)ino, fs->fs_fsmnt); in ufs_ifree()
821 fs->fs_cstotal.cs_nifree++; in ufs_ifree()
822 fs->fs_cs(fs, cg).cs_nifree++; in ufs_ifree()
825 fs->fs_cstotal.cs_ndir--; in ufs_ifree()
826 fs->fs_cs(fs, cg).cs_ndir--; in ufs_ifree()
828 fs->fs_fmod = 1; in ufs_ifree()
830 TRANS_BUF(ufsvfsp, 0, fs->fs_cgsize, bp, DT_CG); in ufs_ifree()
831 TRANS_SI(ufsvfsp, fs, cg); in ufs_ifree()
847 struct fs *fs; in hashalloc() local
852 fs = ip->i_fs; in hashalloc()
862 for (i = 1; i < fs->fs_ncg; i *= 2) { in hashalloc()
864 if (cg >= fs->fs_ncg) in hashalloc()
865 cg -= fs->fs_ncg; in hashalloc()
875 cg = (icg + 2) % fs->fs_ncg; in hashalloc()
876 for (i = 2; i < fs->fs_ncg; i++) { in hashalloc()
881 if (cg == fs->fs_ncg) in hashalloc()
897 struct fs *fs = ip->i_fs; in fragextend() local
905 if (fs->fs_cs(fs, cg).cs_nffree < numfrags(fs, nsize - osize)) in fragextend()
907 frags = numfrags(fs, nsize); in fragextend()
908 bbase = (int)fragnum(fs, bprev); in fragextend()
909 if (bbase > fragnum(fs, (bprev + frags - 1))) { in fragextend()
914 bp = UFS_BREAD(ufsvfsp, ip->i_dev, (daddr_t)fsbtodb(fs, cgtod(fs, cg)), in fragextend()
915 (int)fs->fs_cgsize); in fragextend()
924 bno = dtogd(fs, bprev); in fragextend()
925 for (i = numfrags(fs, osize); i < frags; i++) { in fragextend()
931 if ((TRANS_ISCANCEL(ufsvfsp, ldbtob(fsbtodb(fs, bprev + i)), in fragextend()
932 fs->fs_fsize))) { in fragextend()
946 for (i = frags; i < fs->fs_frag - bbase; i++) in fragextend()
949 j = i - numfrags(fs, osize); in fragextend()
954 for (i = numfrags(fs, osize); i < frags; i++) { in fragextend()
957 fs->fs_cs(fs, cg).cs_nffree--; in fragextend()
958 fs->fs_cstotal.cs_nffree--; in fragextend()
960 fs->fs_fmod = 1; in fragextend()
962 TRANS_BUF(ufsvfsp, 0, fs->fs_cgsize, bp, DT_CG); in fragextend()
963 TRANS_SI(ufsvfsp, fs, cg); in fragextend()
978 struct fs *fs = ip->i_fs; in alloccg() local
991 if (fs->fs_cs(fs, cg).cs_nbfree == 0) { in alloccg()
992 if (size == fs->fs_bsize) in alloccg()
998 if (fs->fs_cs(fs, cg).cs_nffree < numfrags(fs, size)) in alloccg()
1002 bp = UFS_BREAD(ufsvfsp, ip->i_dev, (daddr_t)fsbtodb(fs, cgtod(fs, cg)), in alloccg()
1003 (int)fs->fs_cgsize); in alloccg()
1007 (cgp->cg_cs.cs_nbfree == 0 && size == fs->fs_bsize)) { in alloccg()
1014 if (size == fs->fs_bsize) { in alloccg()
1017 fs->fs_fmod = 1; in alloccg()
1019 TRANS_SI(ufsvfsp, fs, cg); in alloccg()
1030 frags = numfrags(fs, size); in alloccg()
1033 for (; allocsiz < fs->fs_frag; allocsiz++) in alloccg()
1037 if (allocsiz != fs->fs_frag) { in alloccg()
1039 if (bno < 0 && allocsiz < (fs->fs_frag - 1)) { in alloccg()
1045 if (allocsiz == fs->fs_frag || bno < 0) { in alloccg()
1054 bpref = dtogd(fs, bno); in alloccg()
1055 for (i = frags; i < fs->fs_frag; i++) in alloccg()
1057 i = fs->fs_frag - frags; in alloccg()
1059 fs->fs_cstotal.cs_nffree += i; in alloccg()
1060 fs->fs_cs(fs, cg).cs_nffree += i; in alloccg()
1062 fs->fs_fmod = 1; in alloccg()
1064 TRANS_SI(ufsvfsp, fs, cg); in alloccg()
1072 fs->fs_cstotal.cs_nffree -= frags; in alloccg()
1073 fs->fs_cs(fs, cg).cs_nffree -= frags; in alloccg()
1079 fs->fs_fmod = 1; in alloccg()
1081 TRANS_BUF(ufsvfsp, 0, fs->fs_cgsize, bp, DT_CG); in alloccg()
1082 TRANS_SI(ufsvfsp, fs, cg); in alloccg()
1084 return (cg * fs->fs_fpg + bno); in alloccg()
1113 struct fs *fs; in alloccgblk() local
1120 fs = ufsvfsp->vfs_fs; in alloccgblk()
1126 bpref = blknum(fs, bpref); in alloccgblk()
1127 bpref = dtogd(fs, bpref); in alloccgblk()
1131 if (isblock(fs, blksfree, (daddr_t)fragstoblks(fs, bpref))) { in alloccgblk()
1138 cylno = cbtocylno(fs, bpref); in alloccgblk()
1141 if (fs->fs_cpc == 0) { in alloccgblk()
1146 bpref = howmany(fs->fs_spc * cylno, NSPF(fs)); in alloccgblk()
1181 pos = cylno % fs->fs_cpc; in alloccgblk()
1182 bno = (cylno - pos) * fs->fs_spc / NSPB(fs); in alloccgblk()
1212 "i = %d, fs = %s\n", pos, i, fs->fs_fsmnt); in alloccgblk()
1221 rotbl_size = (fs->fs_cpc * fs->fs_spc) >> in alloccgblk()
1222 (fs->fs_fragshift + fs->fs_fsbtodb); in alloccgblk()
1234 if (isblock(fs, blksfree, (daddr_t)(bno + i))) { in alloccgblk()
1235 bno = blkstofrags(fs, (bno + i)); in alloccgblk()
1238 delta = fs_rotbl(fs)[i]; in alloccgblk()
1246 "fs:%s bno: %x\n", pos, i, fs->fs_fsmnt, (int)bno); in alloccgblk()
1254 bno = mapsearch(ufsvfsp, cgp, bpref, (int)fs->fs_frag); in alloccgblk()
1259 blkno = fragstoblks(fs, bno); in alloccgblk()
1260 frag = (cgp->cg_cgx * fs->fs_fpg) + bno; in alloccgblk()
1261 if (TRANS_ISCANCEL(ufsvfsp, ldbtob(fsbtodb(fs, frag)), fs->fs_bsize)) in alloccgblk()
1263 clrblock(fs, blksfree, (long)blkno); in alloccgblk()
1268 fs->fs_cstotal.cs_nbfree--; in alloccgblk()
1269 fs->fs_cs(fs, cgp->cg_cgx).cs_nbfree--; in alloccgblk()
1270 cylno = cbtocylno(fs, bno); in alloccgblk()
1276 TRANS_BUF(ufsvfsp, 0, fs->fs_cgsize, bp, DT_CG); in alloccgblk()
1277 fs->fs_fmod = 1; in alloccgblk()
1294 struct fs *fs = ip->i_fs; in ialloccg() local
1300 if (fs->fs_cs(fs, cg).cs_nifree == 0) in ialloccg()
1302 bp = UFS_BREAD(ufsvfsp, ip->i_dev, (daddr_t)fsbtodb(fs, cgtod(fs, cg)), in ialloccg()
1303 (int)fs->fs_cgsize); in ialloccg()
1325 ipref %= fs->fs_ipg; in ialloccg()
1330 len = howmany(fs->fs_ipg - cgp->cg_irotor, NBBY); in ialloccg()
1340 "fs = %s\n", cg, (int)cgp->cg_irotor, fs->fs_fsmnt); in ialloccg()
1356 fs->fs_fsmnt); in ialloccg()
1361 fs->fs_cstotal.cs_nifree--; in ialloccg()
1362 fs->fs_cs(fs, cg).cs_nifree--; in ialloccg()
1365 fs->fs_cstotal.cs_ndir++; in ialloccg()
1366 fs->fs_cs(fs, cg).cs_ndir++; in ialloccg()
1368 fs->fs_fmod = 1; in ialloccg()
1370 TRANS_BUF(ufsvfsp, 0, fs->fs_cgsize, bp, DT_CG); in ialloccg()
1371 TRANS_SI(ufsvfsp, fs, cg); in ialloccg()
1373 return (cg * fs->fs_ipg + ipref); in ialloccg()
1385 struct fs *fs = ufsvfsp->vfs_fs; in mapsearch() local
1399 start = dtogd(fs, bpref) / NBBY; in mapsearch()
1409 last = howmany(fs->fs_fpg, NBBY); in mapsearch()
1411 cfrag = cgp->cg_cgx * fs->fs_fpg; in mapsearch()
1418 (uchar_t *)fragtbl[fs->fs_frag], in mapsearch()
1419 (int)(1 << (allocsiz - 1 + (fs->fs_frag % NBBY)))); in mapsearch()
1432 for (i = bno + NBBY; bno < i; bno += fs->fs_frag) { in mapsearch()
1433 blk = blkmap(fs, cg_blksfree(cgp), bno); in mapsearch()
1438 pos <= fs->fs_frag - allocsiz; in mapsearch()
1457 ldbtob(fsbtodb(fs, (cfrag+bno))), in mapsearch()
1458 allocsiz * fs->fs_fsize)) in mapsearch()
1557 struct fs *fs; in ufs_allocsp() local
1576 fs = ip->i_fs; in ufs_allocsp()
1582 istart = blkroundup(fs, (lp->l_start)); in ufs_allocsp()
1583 len = blkroundup(fs, (lp->l_len)); in ufs_allocsp()
1584 chunkblks = blkroundup(fs, ufsvfsp->vfs_iotransz) / fs->fs_bsize; in ufs_allocsp()
1591 if (lblkno(fs, len) > fs->fs_cstotal.cs_nbfree) { in ufs_allocsp()
1594 if (lblkno(fs, len) > fs->fs_cstotal.cs_nbfree) in ufs_allocsp()
1624 if (lblkno(fs, lp->l_start) < NDADDR) { in ufs_allocsp()
1625 ufs_trans_trunc_resv(ip, ip->i_size + (NDADDR * fs->fs_bsize), in ufs_allocsp()
1634 (lblkno(fs, lp->l_start + done_len) < NDADDR)) { in ufs_allocsp()
1636 offsetn = (int)blkoff(fs, uoff); in ufs_allocsp()
1637 nbytes = (int)MIN(fs->fs_bsize - offsetn, in ufs_allocsp()
1672 blkroundup(fs, ufsvfsp->vfs_iotransz), &resv, &resid); in ufs_allocsp()
1679 for (i = istart; i < (lp->l_start + lp->l_len); i += fs->fs_bsize) { in ufs_allocsp()
1680 berr = bmap_write(ip, i, fs->fs_bsize, BI_FALLOCATE, in ufs_allocsp()
1704 ip->i_size += fs->fs_bsize; in ufs_allocsp()
1754 ip->i_size + blkroundup(fs, ufsvfsp->vfs_iotransz), in ufs_allocsp()
1792 !(fs->fs_flags & FSLARGEFILES)) { in ufs_allocsp()
1795 fs->fs_flags |= FSLARGEFILES; in ufs_allocsp()
1804 ufs_trans_trunc_resv(ip, totblks * fs->fs_bsize, &resv, &resid); in ufs_allocsp()
1818 free(ip, ip->i_db[i], fs->fs_bsize, 0); in ufs_allocsp()
1831 free(ip, undo->blk, fs->fs_bsize, I_IBLK); in ufs_allocsp()
1954 struct fs *fs = ufsvfsp->vfs_fs; in contigpref() local
1955 daddr_t nblk = lblkno(fs, blkroundup(fs, nb)); in contigpref()
1956 daddr_t minblk = lblkno(fs, blkroundup(fs, minb)); in contigpref()
1967 if ((startcg = findlogstartcg(fs, nblk, minblk)) == -1) in contigpref()
1972 for (; cg < fs->fs_ncg; ++cg) { in contigpref()
1977 (daddr_t)fsbtodb(fs, cgtod(fs, cg)), in contigpref()
1978 (int)fs->fs_cgsize); in contigpref()
1985 cgblks = fragstoblks(fs, fs->fs_fpg); /* blks in free array */ in contigpref()
1990 if (isblock(fs, blksfree, cgbno)) { in contigpref()
2003 if (!isblock(fs, blksfree, cgbno)) in contigpref()
2022 savebno = blkstofrags(fs, savebno); in contigpref()
2025 savebno += (savecg * fs->fs_fpg); in contigpref()
2047 findlogstartcg(struct fs *fs, daddr_t requested, daddr_t minblk) in findlogstartcg() argument
2060 ncgs = fs->fs_ncg; in findlogstartcg()
2063 max_extents = ((fs->fs_bsize)-header) / sizeof (extent_t); in findlogstartcg()
2071 ctotal += fs->fs_cs(fs, e).cs_nbfree; in findlogstartcg()
2090 ctotal -= fs->fs_cs(fs, s).cs_nbfree; in findlogstartcg()