diff options
author | pjd <pjd@FreeBSD.org> | 2004-11-08 20:23:53 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2004-11-08 20:23:53 +0000 |
commit | b9bb54bcb83e7a613ae54ba74db70da262ce3cb0 (patch) | |
tree | dcdfca47eb6b85da4cd51a76fe3d4880217570d5 /sys/geom/raid3 | |
parent | 672110b0db77692a23277caad71149699ccb4639 (diff) | |
download | FreeBSD-src-b9bb54bcb83e7a613ae54ba74db70da262ce3cb0.zip FreeBSD-src-b9bb54bcb83e7a613ae54ba74db70da262ce3cb0.tar.gz |
If device is marked as beeing destroyed, deny all access requests.
Diffstat (limited to 'sys/geom/raid3')
-rw-r--r-- | sys/geom/raid3/g_raid3.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/geom/raid3/g_raid3.c b/sys/geom/raid3/g_raid3.c index 446c282..a041a0e 100644 --- a/sys/geom/raid3/g_raid3.c +++ b/sys/geom/raid3/g_raid3.c @@ -2656,7 +2656,8 @@ g_raid3_access(struct g_provider *pp, int acr, int acw, int ace) sc = pp->geom->softc; if (sc == NULL || - g_raid3_ndisks(sc, G_RAID3_DISK_STATE_ACTIVE) < sc->sc_ndisks - 1) { + g_raid3_ndisks(sc, G_RAID3_DISK_STATE_ACTIVE) < sc->sc_ndisks - 1 || + (sc->sc_flags & G_RAID3_DEVICE_FLAG_DESTROY) != 0) { if (acr <= 0 && acw <= 0 && ace <= 0) return (0); else |