summaryrefslogtreecommitdiffstats
path: root/sys/isofs/udf/udf_subr.c
diff options
context:
space:
mode:
authorbeck <beck@openbsd.org>2008-07-23 16:24:42 +0000
committerbeck <beck@openbsd.org>2008-07-23 16:24:42 +0000
commitc77a6aac71fe7811e361a79ab6dc41841b9f5c43 (patch)
treec7640aeabb4d2d639a225dc03aba5e96cd191e51 /sys/isofs/udf/udf_subr.c
parentPrevent warning about insecure hostnames where no /etc/hostname.* (diff)
downloadwireguard-openbsd-c77a6aac71fe7811e361a79ab6dc41841b9f5c43.tar.xz
wireguard-openbsd-c77a6aac71fe7811e361a79ab6dc41841b9f5c43.zip
Correct cases of mishandling of pending reads and writes to prevent
them going negative - this consists of identifying a number of cases of IO not going through the buffer cache and marking those buffers with B_RAW - as well as fixing nfs_bio to show pending writes and reads through the buffer cache via NFS still has a problem with mishandling the counters I believe in the async/sync fallback case where counters stay positive which will be addressed seperately. ok tedu@ deraadt@
Diffstat (limited to 'sys/isofs/udf/udf_subr.c')
-rw-r--r--sys/isofs/udf/udf_subr.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/isofs/udf/udf_subr.c b/sys/isofs/udf/udf_subr.c
index 3ffa57e28eb..794d69c4f26 100644
--- a/sys/isofs/udf/udf_subr.c
+++ b/sys/isofs/udf/udf_subr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: udf_subr.c,v 1.17 2008/06/12 06:58:39 deraadt Exp $ */
+/* $OpenBSD: udf_subr.c,v 1.18 2008/07/23 16:24:43 beck Exp $ */
/*
* Copyright (c) 2006, Miodrag Vallat
@@ -110,7 +110,7 @@ udf_disklabelspoof(dev_t dev, void (*strat)(struct buf *),
*/
bp->b_blkno = sector * btodb(bsize);
bp->b_bcount = bsize;
- bp->b_flags |= B_READ;
+ bp->b_flags |= (B_READ | B_RAW);
bp->b_resid = bp->b_blkno / lp->d_secpercyl;
(*strat)(bp);
@@ -130,7 +130,7 @@ udf_disklabelspoof(dev_t dev, void (*strat)(struct buf *),
for (sector = mvds_start; sector < mvds_end; sector++) {
bp->b_blkno = sector * btodb(bsize);
bp->b_bcount = bsize;
- bp->b_flags |= B_READ;
+ bp->b_flags |= (B_READ | B_RAW);
bp->b_resid = bp->b_blkno / lp->d_secpercyl;
(*strat)(bp);