summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/kern/kern_physio.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/sys/kern/kern_physio.c b/sys/kern/kern_physio.c
index 11975ed4044..dbec4415d02 100644
--- a/sys/kern/kern_physio.c
+++ b/sys/kern/kern_physio.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_physio.c,v 1.34 2011/07/05 09:46:11 matthew Exp $ */
+/* $OpenBSD: kern_physio.c,v 1.35 2011/07/05 10:04:27 matthew Exp $ */
/* $NetBSD: kern_physio.c,v 1.28 1997/05/19 10:43:28 pk Exp $ */
/*-
@@ -144,11 +144,8 @@ physio(void (*strategy)(struct buf *), dev_t dev, int flags,
error = uvm_vslock_device(p, iovp->iov_base, todo,
(flags & B_READ) ?
VM_PROT_READ | VM_PROT_WRITE : VM_PROT_READ, &map);
- if (error) {
- bp->b_flags |= B_ERROR;
- bp->b_error = error;
- goto after_unlock;
- }
+ if (error)
+ goto done;
if (map) {
bp->b_data = map;
} else {
@@ -186,7 +183,6 @@ physio(void (*strategy)(struct buf *), dev_t dev, int flags,
if (!map)
vunmapbuf(bp, todo);
uvm_vsunlock_device(p, iovp->iov_base, todo, map);
-after_unlock:
/* remember error value (save a splbio/splx pair) */
if (bp->b_flags & B_ERROR)