diff options
author | 2009-06-12 16:00:25 +0000 | |
---|---|---|
committer | 2009-06-12 16:00:25 +0000 | |
commit | f166cfe8d0e9f37b77a4b4981d9245dee3b0dca6 (patch) | |
tree | 6af82539753d5c6ea35e2433684d2536d38de44f /sys/dev/softraid.c | |
parent | rework pool_get() a bit so that if you call if with a constructor set (diff) | |
download | wireguard-openbsd-f166cfe8d0e9f37b77a4b4981d9245dee3b0dca6.tar.xz wireguard-openbsd-f166cfe8d0e9f37b77a4b4981d9245dee3b0dca6.zip |
Allow chunks marked as offline to be used for rebuild (ie. once disk has
been replaced).
ok marco@
Diffstat (limited to 'sys/dev/softraid.c')
-rw-r--r-- | sys/dev/softraid.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/softraid.c b/sys/dev/softraid.c index 0c681a11e49..be0f31dcfad 100644 --- a/sys/dev/softraid.c +++ b/sys/dev/softraid.c @@ -1,4 +1,4 @@ -/* $OpenBSD: softraid.c,v 1.148 2009/06/11 19:42:59 marco Exp $ */ +/* $OpenBSD: softraid.c,v 1.149 2009/06/12 16:00:25 jsing Exp $ */ /* * Copyright (c) 2007 Marco Peereboom <marco@peereboom.us> * Copyright (c) 2008 Chris Kuethe <ckuethe@openbsd.org> @@ -1975,7 +1975,9 @@ sr_ioctl_setstate(struct sr_softc *sc, struct bioc_setstate *bs) continue; sw = sc->sc_dis[i]; for (c = 0; c < sw->sd_meta->ssdi.ssd_chunk_no; c++) - if (sw->sd_vol.sv_chunks[c]->src_dev_mm == dev) { + if (sw->sd_vol.sv_chunks[c]->src_dev_mm == dev && + sd->sd_vol.sv_chunks[c]->src_meta.scm_status != + BIOC_SDOFFLINE) { printf("%s: %s chunk already in use\n", DEVNAME(sc), devname); goto done; |