summaryrefslogtreecommitdiff
path: root/sys/dev/softraid_raid6.c
diff options
context:
space:
mode:
authorMarco Peereboom <marco@cvs.openbsd.org>2009-08-09 14:12:26 +0000
committerMarco Peereboom <marco@cvs.openbsd.org>2009-08-09 14:12:26 +0000
commit7b05469e81411324822db473427cc3b7ba400e9f (patch)
tree61daea5c42b443efecf476ea4dd8a0dc2d47338d /sys/dev/softraid_raid6.c
parentf7447304c5149566f2f214be68f03fbf69aff793 (diff)
Switch softraid to vnodes to prevent bad things from happening when using
d_open/d_close. tested by many, ok jsing, thib, krw
Diffstat (limited to 'sys/dev/softraid_raid6.c')
-rw-r--r--sys/dev/softraid_raid6.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/softraid_raid6.c b/sys/dev/softraid_raid6.c
index 63a02580c95..657c5725724 100644
--- a/sys/dev/softraid_raid6.c
+++ b/sys/dev/softraid_raid6.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: softraid_raid6.c,v 1.3 2009/08/06 22:39:40 jordan Exp $ */
+/* $OpenBSD: softraid_raid6.c,v 1.4 2009/08/09 14:12:25 marco Exp $ */
/*
* Copyright (c) 2009 Marco Peereboom <marco@peereboom.us>
* Copyright (c) 2009 Jordan Hargrave <jordan@openbsd.org>
@@ -936,7 +936,9 @@ sr_raid6_addio(struct sr_workunit *wu, int dsk, daddr64_t blk, daddr64_t len,
ccb->ccb_buf.b_error = 0;
ccb->ccb_buf.b_proc = curproc;
ccb->ccb_buf.b_dev = sd->sd_vol.sv_chunks[dsk]->src_dev_mm;
- ccb->ccb_buf.b_vp = NULL;
+ ccb->ccb_buf.b_vp = sd->sd_vol.sv_chunks[dsk]->src_vn;
+ if ((ccb->ccb_buf.b_flags & B_READ) == 0)
+ ccb->ccb_buf.b_vp->v_numoutput++;
ccb->ccb_wu = wu;
ccb->ccb_target = dsk;