SCCS-vsn: sys/ufs/ffs/ffs_alloc.c 2.24
SCCS-vsn: sys/ufs/lfs/lfs_alloc.c 2.24
-/* ffs_alloc.c 2.23 83/02/10 */
+/* ffs_alloc.c 2.24 83/03/21 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
}
if (size == fs->fs_bsize && fs->fs_cstotal.cs_nbfree == 0)
goto nospace;
}
if (size == fs->fs_bsize && fs->fs_cstotal.cs_nbfree == 0)
goto nospace;
- if (u.u_uid != 0 &&
- fs->fs_cstotal.cs_nbfree * fs->fs_frag + fs->fs_cstotal.cs_nffree <
- fs->fs_dsize * fs->fs_minfree / 100)
+ if (u.u_uid != 0 && freespace(fs, fs->fs_minfree) <= 0)
goto nospace;
#ifdef QUOTA
if (chkdq(ip, (long)((unsigned)size/DEV_BSIZE), 0))
goto nospace;
#ifdef QUOTA
if (chkdq(ip, (long)((unsigned)size/DEV_BSIZE), 0))
ip->i_dev, fs->fs_bsize, osize, nsize, fs->fs_fsmnt);
panic("realloccg: bad size");
}
ip->i_dev, fs->fs_bsize, osize, nsize, fs->fs_fsmnt);
panic("realloccg: bad size");
}
- if (u.u_uid != 0 &&
- fs->fs_cstotal.cs_nbfree * fs->fs_frag + fs->fs_cstotal.cs_nffree <
- fs->fs_dsize * fs->fs_minfree / 100)
+ if (u.u_uid != 0 && freespace(fs, fs->fs_minfree) <= 0)
goto nospace;
if (bprev == 0) {
printf("dev = 0x%x, bsize = %d, bprev = %d, fs = %s\n",
goto nospace;
if (bprev == 0) {
printf("dev = 0x%x, bsize = %d, bprev = %d, fs = %s\n",
*/
nextblk = bap[indx - 1] + fs->fs_frag;
if (indx > fs->fs_maxcontig &&
*/
nextblk = bap[indx - 1] + fs->fs_frag;
if (indx > fs->fs_maxcontig &&
- bap[indx - fs->fs_maxcontig] + fs->fs_frag * fs->fs_maxcontig
+ bap[indx - fs->fs_maxcontig] + blkstofrags(fs, fs->fs_maxcontig)
!= nextblk)
return (nextblk);
if (fs->fs_rotdelay != 0)
!= nextblk)
return (nextblk);
if (fs->fs_rotdelay != 0)
/*
* if the requested block is available, use it
*/
/*
* if the requested block is available, use it
*/
- if (isblock(fs, cgp->cg_free, bpref/fs->fs_frag)) {
+ if (isblock(fs, cgp->cg_free, fragstoblks(fs, bpref))) {
bno = bpref;
goto gotit;
}
bno = bpref;
goto gotit;
}
}
for (i = fs->fs_postbl[pos][i];; ) {
if (isblock(fs, cgp->cg_free, bno + i)) {
}
for (i = fs->fs_postbl[pos][i];; ) {
if (isblock(fs, cgp->cg_free, bno + i)) {
- bno = (bno + i) * fs->fs_frag;
+ bno = blkstofrags(fs, (bno + i));
goto gotit;
}
delta = fs->fs_rotbl[i];
goto gotit;
}
delta = fs->fs_rotbl[i];
return (NULL);
cgp->cg_rotor = bno;
gotit:
return (NULL);
cgp->cg_rotor = bno;
gotit:
- clrblock(fs, cgp->cg_free, (long)(bno/fs->fs_frag));
+ clrblock(fs, cgp->cg_free, (long)fragstoblks(fs, bno));
cgp->cg_cs.cs_nbfree--;
fs->fs_cstotal.cs_nbfree--;
fs->fs_cs(fs, cgp->cg_cgx).cs_nbfree--;
cgp->cg_cs.cs_nbfree--;
fs->fs_cstotal.cs_nbfree--;
fs->fs_cs(fs, cgp->cg_cgx).cs_nbfree--;
cgp->cg_time = time.tv_sec;
bno = dtogd(fs, bno);
if (size == fs->fs_bsize) {
cgp->cg_time = time.tv_sec;
bno = dtogd(fs, bno);
if (size == fs->fs_bsize) {
- if (isblock(fs, cgp->cg_free, bno/fs->fs_frag)) {
+ if (isblock(fs, cgp->cg_free, fragstoblks(fs, bno))) {
printf("dev = 0x%x, block = %d, fs = %s\n",
ip->i_dev, bno, fs->fs_fsmnt);
panic("free: freeing free block");
}
printf("dev = 0x%x, block = %d, fs = %s\n",
ip->i_dev, bno, fs->fs_fsmnt);
panic("free: freeing free block");
}
- setblock(fs, cgp->cg_free, bno/fs->fs_frag);
+ setblock(fs, cgp->cg_free, fragstoblks(fs, bno));
cgp->cg_cs.cs_nbfree++;
fs->fs_cstotal.cs_nbfree++;
fs->fs_cs(fs, cg).cs_nbfree++;
cgp->cg_cs.cs_nbfree++;
fs->fs_cstotal.cs_nbfree++;
fs->fs_cs(fs, cg).cs_nbfree++;
/*
* if a complete block has been reassembled, account for it
*/
/*
* if a complete block has been reassembled, account for it
*/
- if (isblock(fs, cgp->cg_free, bbase / fs->fs_frag)) {
+ if (isblock(fs, cgp->cg_free, fragstoblks(fs, bbase))) {
cgp->cg_cs.cs_nffree -= fs->fs_frag;
fs->fs_cstotal.cs_nffree -= fs->fs_frag;
fs->fs_cs(fs, cg).cs_nffree -= fs->fs_frag;
cgp->cg_cs.cs_nffree -= fs->fs_frag;
fs->fs_cstotal.cs_nffree -= fs->fs_frag;
fs->fs_cs(fs, cg).cs_nffree -= fs->fs_frag;
-/* lfs_alloc.c 2.23 83/02/10 */
+/* lfs_alloc.c 2.24 83/03/21 */
#include "../h/param.h"
#include "../h/systm.h"
#include "../h/param.h"
#include "../h/systm.h"
}
if (size == fs->fs_bsize && fs->fs_cstotal.cs_nbfree == 0)
goto nospace;
}
if (size == fs->fs_bsize && fs->fs_cstotal.cs_nbfree == 0)
goto nospace;
- if (u.u_uid != 0 &&
- fs->fs_cstotal.cs_nbfree * fs->fs_frag + fs->fs_cstotal.cs_nffree <
- fs->fs_dsize * fs->fs_minfree / 100)
+ if (u.u_uid != 0 && freespace(fs, fs->fs_minfree) <= 0)
goto nospace;
#ifdef QUOTA
if (chkdq(ip, (long)((unsigned)size/DEV_BSIZE), 0))
goto nospace;
#ifdef QUOTA
if (chkdq(ip, (long)((unsigned)size/DEV_BSIZE), 0))
ip->i_dev, fs->fs_bsize, osize, nsize, fs->fs_fsmnt);
panic("realloccg: bad size");
}
ip->i_dev, fs->fs_bsize, osize, nsize, fs->fs_fsmnt);
panic("realloccg: bad size");
}
- if (u.u_uid != 0 &&
- fs->fs_cstotal.cs_nbfree * fs->fs_frag + fs->fs_cstotal.cs_nffree <
- fs->fs_dsize * fs->fs_minfree / 100)
+ if (u.u_uid != 0 && freespace(fs, fs->fs_minfree) <= 0)
goto nospace;
if (bprev == 0) {
printf("dev = 0x%x, bsize = %d, bprev = %d, fs = %s\n",
goto nospace;
if (bprev == 0) {
printf("dev = 0x%x, bsize = %d, bprev = %d, fs = %s\n",
*/
nextblk = bap[indx - 1] + fs->fs_frag;
if (indx > fs->fs_maxcontig &&
*/
nextblk = bap[indx - 1] + fs->fs_frag;
if (indx > fs->fs_maxcontig &&
- bap[indx - fs->fs_maxcontig] + fs->fs_frag * fs->fs_maxcontig
+ bap[indx - fs->fs_maxcontig] + blkstofrags(fs, fs->fs_maxcontig)
!= nextblk)
return (nextblk);
if (fs->fs_rotdelay != 0)
!= nextblk)
return (nextblk);
if (fs->fs_rotdelay != 0)
/*
* if the requested block is available, use it
*/
/*
* if the requested block is available, use it
*/
- if (isblock(fs, cgp->cg_free, bpref/fs->fs_frag)) {
+ if (isblock(fs, cgp->cg_free, fragstoblks(fs, bpref))) {
bno = bpref;
goto gotit;
}
bno = bpref;
goto gotit;
}
}
for (i = fs->fs_postbl[pos][i];; ) {
if (isblock(fs, cgp->cg_free, bno + i)) {
}
for (i = fs->fs_postbl[pos][i];; ) {
if (isblock(fs, cgp->cg_free, bno + i)) {
- bno = (bno + i) * fs->fs_frag;
+ bno = blkstofrags(fs, (bno + i));
goto gotit;
}
delta = fs->fs_rotbl[i];
goto gotit;
}
delta = fs->fs_rotbl[i];
return (NULL);
cgp->cg_rotor = bno;
gotit:
return (NULL);
cgp->cg_rotor = bno;
gotit:
- clrblock(fs, cgp->cg_free, (long)(bno/fs->fs_frag));
+ clrblock(fs, cgp->cg_free, (long)fragstoblks(fs, bno));
cgp->cg_cs.cs_nbfree--;
fs->fs_cstotal.cs_nbfree--;
fs->fs_cs(fs, cgp->cg_cgx).cs_nbfree--;
cgp->cg_cs.cs_nbfree--;
fs->fs_cstotal.cs_nbfree--;
fs->fs_cs(fs, cgp->cg_cgx).cs_nbfree--;
cgp->cg_time = time.tv_sec;
bno = dtogd(fs, bno);
if (size == fs->fs_bsize) {
cgp->cg_time = time.tv_sec;
bno = dtogd(fs, bno);
if (size == fs->fs_bsize) {
- if (isblock(fs, cgp->cg_free, bno/fs->fs_frag)) {
+ if (isblock(fs, cgp->cg_free, fragstoblks(fs, bno))) {
printf("dev = 0x%x, block = %d, fs = %s\n",
ip->i_dev, bno, fs->fs_fsmnt);
panic("free: freeing free block");
}
printf("dev = 0x%x, block = %d, fs = %s\n",
ip->i_dev, bno, fs->fs_fsmnt);
panic("free: freeing free block");
}
- setblock(fs, cgp->cg_free, bno/fs->fs_frag);
+ setblock(fs, cgp->cg_free, fragstoblks(fs, bno));
cgp->cg_cs.cs_nbfree++;
fs->fs_cstotal.cs_nbfree++;
fs->fs_cs(fs, cg).cs_nbfree++;
cgp->cg_cs.cs_nbfree++;
fs->fs_cstotal.cs_nbfree++;
fs->fs_cs(fs, cg).cs_nbfree++;
/*
* if a complete block has been reassembled, account for it
*/
/*
* if a complete block has been reassembled, account for it
*/
- if (isblock(fs, cgp->cg_free, bbase / fs->fs_frag)) {
+ if (isblock(fs, cgp->cg_free, fragstoblks(fs, bbase))) {
cgp->cg_cs.cs_nffree -= fs->fs_frag;
fs->fs_cstotal.cs_nffree -= fs->fs_frag;
fs->fs_cs(fs, cg).cs_nffree -= fs->fs_frag;
cgp->cg_cs.cs_nffree -= fs->fs_frag;
fs->fs_cstotal.cs_nffree -= fs->fs_frag;
fs->fs_cs(fs, cg).cs_nffree -= fs->fs_frag;