summaryrefslogtreecommitdiffstats
path: root/sys/kern/subr_disk.c
diff options
context:
space:
mode:
authorbeck <beck@openbsd.org>2008-06-10 20:14:36 +0000
committerbeck <beck@openbsd.org>2008-06-10 20:14:36 +0000
commit30ab7dc4b7d5ee681b6f2fff0471c66b7178a51a (patch)
tree201e7de25cd00b8c73dc838662dc445274e2b38b /sys/kern/subr_disk.c
parentwhen walking the entire state table it makes much more sense to walk (diff)
downloadwireguard-openbsd-30ab7dc4b7d5ee681b6f2fff0471c66b7178a51a.tar.xz
wireguard-openbsd-30ab7dc4b7d5ee681b6f2fff0471c66b7178a51a.zip
Buffer cache revamp
1) remove multiple size queues, introduced as a stopgap. 2) decouple pages containing data from their mappings 3) only keep buffers mapped when they actually have to be mapped (right now, this is when buffers are B_BUSY) 4) New functions to make a buffer busy, and release the busy flag (buf_acquire and buf_release) 5) Move high/low water marks and statistics counters into a structure 6) Add a sysctl to retrieve buffer cache statistics Tested in several variants and beat upon by bob and art for a year. run accidentally on henning's nfs server for a few months... ok deraadt@, krw@, art@ - who promises to be around to deal with any fallout
Diffstat (limited to 'sys/kern/subr_disk.c')
-rw-r--r--sys/kern/subr_disk.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/subr_disk.c b/sys/kern/subr_disk.c
index 92a267e9c1d..fe111450c96 100644
--- a/sys/kern/subr_disk.c
+++ b/sys/kern/subr_disk.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: subr_disk.c,v 1.74 2008/05/23 00:51:33 krw Exp $ */
+/* $OpenBSD: subr_disk.c,v 1.75 2008/06/10 20:14:36 beck Exp $ */
/* $NetBSD: subr_disk.c,v 1.17 1996/03/16 23:17:08 christos Exp $ */
/*
@@ -399,7 +399,7 @@ readdoslabel(struct buf *bp, void (*strat)(struct buf *),
/* read boot record */
bp->b_blkno = part_blkno;
bp->b_bcount = lp->d_secsize;
- bp->b_flags = B_BUSY | B_READ;
+ bp->b_flags = B_BUSY | B_READ | B_RAW;
(*strat)(bp);
if (biowait(bp)) {
/*wrong*/ if (partoffp)