ffs_alloc.c (34266) | ffs_alloc.c (34961) |
---|---|
1/* 2 * Copyright (c) 1982, 1986, 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 17 unchanged lines hidden (view full) --- 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * @(#)ffs_alloc.c 8.18 (Berkeley) 5/26/95 | 1/* 2 * Copyright (c) 1982, 1986, 1989, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 17 unchanged lines hidden (view full) --- 26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31 * SUCH DAMAGE. 32 * 33 * @(#)ffs_alloc.c 8.18 (Berkeley) 5/26/95 |
34 * $Id: ffs_alloc.c,v 1.47 1998/02/06 12:14:13 eivind Exp $ | 34 * $Id: ffs_alloc.c,v 1.48 1998/03/08 09:58:42 julian Exp $ |
35 */ 36 37#include "opt_quota.h" 38 39#include <sys/param.h> 40#include <sys/systm.h> 41#include <sys/buf.h> 42#include <sys/proc.h> --- 789 unchanged lines hidden (view full) --- 832 brelse(bp); 833 return (0); 834 } 835 cgp = (struct cg *)bp->b_data; 836 if (!cg_chkmagic(cgp)) { 837 brelse(bp); 838 return (0); 839 } | 35 */ 36 37#include "opt_quota.h" 38 39#include <sys/param.h> 40#include <sys/systm.h> 41#include <sys/buf.h> 42#include <sys/proc.h> --- 789 unchanged lines hidden (view full) --- 832 brelse(bp); 833 return (0); 834 } 835 cgp = (struct cg *)bp->b_data; 836 if (!cg_chkmagic(cgp)) { 837 brelse(bp); 838 return (0); 839 } |
840 cgp->cg_time = time.tv_sec; | 840 cgp->cg_time = time_second; |
841 bno = dtogd(fs, bprev); 842 for (i = numfrags(fs, osize); i < frags; i++) 843 if (isclr(cg_blksfree(cgp), bno + i)) { 844 brelse(bp); 845 return (0); 846 } 847 /* 848 * the current fragment can be extended --- 50 unchanged lines hidden (view full) --- 899 return (0); 900 } 901 cgp = (struct cg *)bp->b_data; 902 if (!cg_chkmagic(cgp) || 903 (cgp->cg_cs.cs_nbfree == 0 && size == fs->fs_bsize)) { 904 brelse(bp); 905 return (0); 906 } | 841 bno = dtogd(fs, bprev); 842 for (i = numfrags(fs, osize); i < frags; i++) 843 if (isclr(cg_blksfree(cgp), bno + i)) { 844 brelse(bp); 845 return (0); 846 } 847 /* 848 * the current fragment can be extended --- 50 unchanged lines hidden (view full) --- 899 return (0); 900 } 901 cgp = (struct cg *)bp->b_data; 902 if (!cg_chkmagic(cgp) || 903 (cgp->cg_cs.cs_nbfree == 0 && size == fs->fs_bsize)) { 904 brelse(bp); 905 return (0); 906 } |
907 cgp->cg_time = time.tv_sec; | 907 cgp->cg_time = time_second; |
908 if (size == fs->fs_bsize) { 909 bno = ffs_alloccgblk(ip, bp, bpref); 910 bdwrite(bp); 911 return (bno); 912 } 913 /* 914 * check to see if any fragments are already available 915 * allocsiz is the size which will be allocated, hacking --- 309 unchanged lines hidden (view full) --- 1225 brelse(bp); 1226 return (0); 1227 } 1228 cgp = (struct cg *)bp->b_data; 1229 if (!cg_chkmagic(cgp) || cgp->cg_cs.cs_nifree == 0) { 1230 brelse(bp); 1231 return (0); 1232 } | 908 if (size == fs->fs_bsize) { 909 bno = ffs_alloccgblk(ip, bp, bpref); 910 bdwrite(bp); 911 return (bno); 912 } 913 /* 914 * check to see if any fragments are already available 915 * allocsiz is the size which will be allocated, hacking --- 309 unchanged lines hidden (view full) --- 1225 brelse(bp); 1226 return (0); 1227 } 1228 cgp = (struct cg *)bp->b_data; 1229 if (!cg_chkmagic(cgp) || cgp->cg_cs.cs_nifree == 0) { 1230 brelse(bp); 1231 return (0); 1232 } |
1233 cgp->cg_time = time.tv_sec; | 1233 cgp->cg_time = time_second; |
1234 if (ipref) { 1235 ipref %= fs->fs_ipg; 1236 if (isclr(cg_inosused(cgp), ipref)) 1237 goto gotit; 1238 } 1239 start = cgp->cg_irotor / NBBY; 1240 len = howmany(fs->fs_ipg - cgp->cg_irotor, NBBY); 1241 loc = skpc(0xff, len, &cg_inosused(cgp)[start]); --- 75 unchanged lines hidden (view full) --- 1317 brelse(bp); 1318 return; 1319 } 1320 cgp = (struct cg *)bp->b_data; 1321 if (!cg_chkmagic(cgp)) { 1322 brelse(bp); 1323 return; 1324 } | 1234 if (ipref) { 1235 ipref %= fs->fs_ipg; 1236 if (isclr(cg_inosused(cgp), ipref)) 1237 goto gotit; 1238 } 1239 start = cgp->cg_irotor / NBBY; 1240 len = howmany(fs->fs_ipg - cgp->cg_irotor, NBBY); 1241 loc = skpc(0xff, len, &cg_inosused(cgp)[start]); --- 75 unchanged lines hidden (view full) --- 1317 brelse(bp); 1318 return; 1319 } 1320 cgp = (struct cg *)bp->b_data; 1321 if (!cg_chkmagic(cgp)) { 1322 brelse(bp); 1323 return; 1324 } |
1325 cgp->cg_time = time.tv_sec; | 1325 cgp->cg_time = time_second; |
1326 bno = dtogd(fs, bno); 1327 if (size == fs->fs_bsize) { 1328 blkno = fragstoblks(fs, bno); 1329 if (!ffs_isfreeblock(fs, cg_blksfree(cgp), blkno)) { 1330 printf("dev = 0x%lx, block = %ld, fs = %s\n", 1331 (u_long) ip->i_dev, bno, fs->fs_fsmnt); 1332 panic("ffs_blkfree: freeing free block"); 1333 } --- 144 unchanged lines hidden (view full) --- 1478 brelse(bp); 1479 return (error); 1480 } 1481 cgp = (struct cg *)bp->b_data; 1482 if (!cg_chkmagic(cgp)) { 1483 brelse(bp); 1484 return (0); 1485 } | 1326 bno = dtogd(fs, bno); 1327 if (size == fs->fs_bsize) { 1328 blkno = fragstoblks(fs, bno); 1329 if (!ffs_isfreeblock(fs, cg_blksfree(cgp), blkno)) { 1330 printf("dev = 0x%lx, block = %ld, fs = %s\n", 1331 (u_long) ip->i_dev, bno, fs->fs_fsmnt); 1332 panic("ffs_blkfree: freeing free block"); 1333 } --- 144 unchanged lines hidden (view full) --- 1478 brelse(bp); 1479 return (error); 1480 } 1481 cgp = (struct cg *)bp->b_data; 1482 if (!cg_chkmagic(cgp)) { 1483 brelse(bp); 1484 return (0); 1485 } |
1486 cgp->cg_time = time.tv_sec; | 1486 cgp->cg_time = time_second; |
1487 ino %= fs->fs_ipg; 1488 if (isclr(cg_inosused(cgp), ino)) { 1489 printf("dev = 0x%lx, ino = %ld, fs = %s\n", 1490 (u_long)pip->i_dev, ino, fs->fs_fsmnt); 1491 if (fs->fs_ronly == 0) 1492 panic("ffs_vfree: freeing free inode"); 1493 } 1494 clrbit(cg_inosused(cgp), ino); --- 189 unchanged lines hidden --- | 1487 ino %= fs->fs_ipg; 1488 if (isclr(cg_inosused(cgp), ino)) { 1489 printf("dev = 0x%lx, ino = %ld, fs = %s\n", 1490 (u_long)pip->i_dev, ino, fs->fs_fsmnt); 1491 if (fs->fs_ronly == 0) 1492 panic("ffs_vfree: freeing free inode"); 1493 } 1494 clrbit(cg_inosused(cgp), ino); --- 189 unchanged lines hidden --- |