mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-15 12:54:27 +00:00
Changed B_AGE policy to work correctly in a world with relatively large
buffer caches. The old policy generally ended up caching nothing.
This commit is contained in:
parent
61d5ffaf10
commit
866dba7305
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=1937
|
@ -36,7 +36,7 @@
|
|||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)cd9660_vnops.c 8.3 (Berkeley) 1/23/94
|
||||
* $Id$
|
||||
* $Id: cd9660_vnops.c,v 1.3 1994/08/02 07:41:36 davidg Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
|
@ -280,9 +280,6 @@ cd9660_read(ap)
|
|||
}
|
||||
|
||||
error = uiomove(bp->b_un.b_addr + on, (int)n, uio);
|
||||
if (n + on == imp->logical_block_size ||
|
||||
uio->uio_offset == (off_t)ip->i_size)
|
||||
bp->b_flags |= B_AGE;
|
||||
brelse(bp);
|
||||
} while (error == 0 && uio->uio_resid > 0 && n != 0);
|
||||
return (error);
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)spec_vnops.c 8.6 (Berkeley) 4/9/94
|
||||
* $Id$
|
||||
* $Id: spec_vnops.c,v 1.3 1994/08/02 07:45:27 davidg Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
|
@ -272,8 +272,6 @@ spec_read(ap)
|
|||
return (error);
|
||||
}
|
||||
error = uiomove((char *)bp->b_data + on, n, uio);
|
||||
if (n + on == bsize)
|
||||
bp->b_flags |= B_AGE;
|
||||
brelse(bp);
|
||||
} while (error == 0 && uio->uio_resid > 0 && n != 0);
|
||||
return (error);
|
||||
|
@ -352,7 +350,6 @@ spec_write(ap)
|
|||
}
|
||||
error = uiomove((char *)bp->b_data + on, n, uio);
|
||||
if (n + on == bsize) {
|
||||
bp->b_flags |= B_AGE;
|
||||
bawrite(bp);
|
||||
} else
|
||||
bdwrite(bp);
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)cd9660_vnops.c 8.3 (Berkeley) 1/23/94
|
||||
* $Id$
|
||||
* $Id: cd9660_vnops.c,v 1.3 1994/08/02 07:41:36 davidg Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
|
@ -280,9 +280,6 @@ cd9660_read(ap)
|
|||
}
|
||||
|
||||
error = uiomove(bp->b_un.b_addr + on, (int)n, uio);
|
||||
if (n + on == imp->logical_block_size ||
|
||||
uio->uio_offset == (off_t)ip->i_size)
|
||||
bp->b_flags |= B_AGE;
|
||||
brelse(bp);
|
||||
} while (error == 0 && uio->uio_resid > 0 && n != 0);
|
||||
return (error);
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)vfs_cluster.c 8.7 (Berkeley) 2/13/94
|
||||
* $Id$
|
||||
* $Id: vfs_cluster.c,v 1.3 1994/08/02 07:43:17 davidg Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
|
@ -696,7 +696,7 @@ cluster_wbuild(vp, last_bp, size, start_lbn, len, lbn)
|
|||
|
||||
tbp->b_bufsize -= size;
|
||||
tbp->b_flags &= ~(B_READ | B_DONE | B_ERROR | B_DELWRI);
|
||||
tbp->b_flags |= (B_ASYNC | B_AGE);
|
||||
tbp->b_flags |= B_ASYNC;
|
||||
s = splbio();
|
||||
reassignbuf(tbp, tbp->b_vp); /* put on clean list */
|
||||
++tbp->b_vp->v_numoutput;
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)spec_vnops.c 8.6 (Berkeley) 4/9/94
|
||||
* $Id$
|
||||
* $Id: spec_vnops.c,v 1.3 1994/08/02 07:45:27 davidg Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
|
@ -272,8 +272,6 @@ spec_read(ap)
|
|||
return (error);
|
||||
}
|
||||
error = uiomove((char *)bp->b_data + on, n, uio);
|
||||
if (n + on == bsize)
|
||||
bp->b_flags |= B_AGE;
|
||||
brelse(bp);
|
||||
} while (error == 0 && uio->uio_resid > 0 && n != 0);
|
||||
return (error);
|
||||
|
@ -352,7 +350,6 @@ spec_write(ap)
|
|||
}
|
||||
error = uiomove((char *)bp->b_data + on, n, uio);
|
||||
if (n + on == bsize) {
|
||||
bp->b_flags |= B_AGE;
|
||||
bawrite(bp);
|
||||
} else
|
||||
bdwrite(bp);
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)nfs_bio.c 8.5 (Berkeley) 1/4/94
|
||||
* $Id$
|
||||
* $Id: nfs_bio.c,v 1.3 1994/08/02 07:52:05 davidg Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
|
@ -329,8 +329,6 @@ nfs_bioread(vp, uio, ioflag, cred)
|
|||
}
|
||||
switch (vp->v_type) {
|
||||
case VREG:
|
||||
if (n + on == biosize || uio->uio_offset == np->n_size)
|
||||
bp->b_flags |= B_AGE;
|
||||
break;
|
||||
case VLNK:
|
||||
n = 0;
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)nfs_bio.c 8.5 (Berkeley) 1/4/94
|
||||
* $Id$
|
||||
* $Id: nfs_bio.c,v 1.3 1994/08/02 07:52:05 davidg Exp $
|
||||
*/
|
||||
|
||||
#include <sys/param.h>
|
||||
|
@ -329,8 +329,6 @@ nfs_bioread(vp, uio, ioflag, cred)
|
|||
}
|
||||
switch (vp->v_type) {
|
||||
case VREG:
|
||||
if (n + on == biosize || uio->uio_offset == np->n_size)
|
||||
bp->b_flags |= B_AGE;
|
||||
break;
|
||||
case VLNK:
|
||||
n = 0;
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)ufs_readwrite.c 8.7 (Berkeley) 1/21/94
|
||||
* $Id$
|
||||
* $Id: ufs_readwrite.c,v 1.3 1994/08/02 07:55:00 davidg Exp $
|
||||
*/
|
||||
|
||||
#ifdef LFS_READWRITE
|
||||
|
@ -147,9 +147,6 @@ READ(ap)
|
|||
uiomove((char *)bp->b_data + blkoffset, (int)xfersize, uio))
|
||||
break;
|
||||
|
||||
if (S_ISREG(mode) && (xfersize + blkoffset == fs->fs_bsize ||
|
||||
uio->uio_offset == ip->i_size))
|
||||
bp->b_flags |= B_AGE;
|
||||
brelse(bp);
|
||||
}
|
||||
if (bp != NULL)
|
||||
|
@ -268,7 +265,6 @@ WRITE(ap)
|
|||
if (doclusterwrite)
|
||||
cluster_write(bp, ip->i_size);
|
||||
else {
|
||||
bp->b_flags |= B_AGE;
|
||||
bawrite(bp);
|
||||
}
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue