summaryrefslogtreecommitdiffstats
path: root/sys/dev/softraid.c
diff options
context:
space:
mode:
authorjsing <jsing@openbsd.org>2009-07-11 15:42:50 +0000
committerjsing <jsing@openbsd.org>2009-07-11 15:42:50 +0000
commit53d08e575c17e1799b21ec6df116bb37d69e1310 (patch)
tree1fa09c8b00cb792a0abd20230cad76835abb48f0 /sys/dev/softraid.c
parentsynchronize the synopsis and usage of mopa.out(1); mopchk(1) can handle (diff)
downloadwireguard-openbsd-53d08e575c17e1799b21ec6df116bb37d69e1310.tar.xz
wireguard-openbsd-53d08e575c17e1799b21ec6df116bb37d69e1310.zip
Ensure that we hold the appropriate lock before calling
sr_ioctl_createraid(). ok marco@
Diffstat (limited to 'sys/dev/softraid.c')
-rw-r--r--sys/dev/softraid.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/sys/dev/softraid.c b/sys/dev/softraid.c
index 39a357ba39f..55c7dc979a0 100644
--- a/sys/dev/softraid.c
+++ b/sys/dev/softraid.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: softraid.c,v 1.162 2009/07/09 19:24:42 mglocker Exp $ */
+/* $OpenBSD: softraid.c,v 1.163 2009/07/11 15:42:50 jsing Exp $ */
/*
* Copyright (c) 2007 Marco Peereboom <marco@peereboom.us>
* Copyright (c) 2008 Chris Kuethe <ckuethe@openbsd.org>
@@ -1126,7 +1126,10 @@ sr_boot_assembly(struct sr_softc *sc)
bc.bc_dev_list_len = vol->sbv_chunk_no * sizeof(dev_t);
bc.bc_dev_list = devs;
bc.bc_flags = BIOC_SCDEVT;
+
+ rw_enter_write(&sc->sc_lock);
sr_ioctl_createraid(sc, &bc, 0);
+ rw_exit_write(&sc->sc_lock);
rv++;
}