diff options
author | Bob Beck <beck@cvs.openbsd.org> | 2008-06-10 20:50:24 +0000 |
---|---|---|
committer | Bob Beck <beck@cvs.openbsd.org> | 2008-06-10 20:50:24 +0000 |
commit | 7b9768b8af911b0c6b25a9d357325da1ba59bb5d (patch) | |
tree | efc090ddc427809559d58206f200871b45a38646 /sys/arch/sgi | |
parent | 3f3e2ade58622197d4b76525efe04c26e77b070c (diff) |
Fix buffer cache pending read statistics by ensuring we can identify
biowait() reads that do *not* come from the buffer cache - we use the
B_RAW flag to identify these at art's suggestion - since it makes sense
and the flag was not being used. this just flags all these buffers with
B_RAW - biodone already ignores returned buffers marked B_RAW.
ok art@
Diffstat (limited to 'sys/arch/sgi')
-rw-r--r-- | sys/arch/sgi/sgi/disksubr.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/arch/sgi/sgi/disksubr.c b/sys/arch/sgi/sgi/disksubr.c index cb5bfb29b5f..6a68ec41127 100644 --- a/sys/arch/sgi/sgi/disksubr.c +++ b/sys/arch/sgi/sgi/disksubr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: disksubr.c,v 1.3 2007/07/10 15:44:23 miod Exp $ */ +/* $OpenBSD: disksubr.c,v 1.4 2008/06/10 20:50:23 beck Exp $ */ /* * Copyright (c) 1999 Michael Shalayeff @@ -59,7 +59,7 @@ readbsdlabel(struct buf *bp, void (*strat)(struct buf *), bp->b_blkno = sec; 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 successful, locate disk label within block and validate */ @@ -145,7 +145,7 @@ readsgilabel(struct buf *bp, void (*strat)(struct buf *), bp->b_blkno = 0; 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 successful, locate disk label within block and validate */ @@ -215,7 +215,7 @@ finished: bp->b_blkno = fsoffs + LABELSECTOR; 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)) { msg = "disk label I/O error"; @@ -249,14 +249,14 @@ writedisklabel(dev_t dev, void (*strat)(struct buf *), struct disklabel *lp) /* Read it in, slap the new label in, and write it back out */ bp->b_blkno = partoff + LABELSECTOR; 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 ((error = biowait(bp)) != 0) goto done; dlp = (struct disklabel *)(bp->b_data + LABELOFFSET); *dlp = *lp; - bp->b_flags = B_BUSY | B_WRITE; + bp->b_flags = B_BUSY | B_WRITE | B_RAW; (*strat)(bp); error = biowait(bp); |