From eb12fefc3570c56802a22267d21da4b936c064b6 Mon Sep 17 00:00:00 2001 From: le Date: Wed, 19 Jan 2005 13:57:09 +0000 Subject: Reset object flags after killing off an object's worker thread. --- sys/geom/vinum/geom_vinum_subr.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'sys/geom/vinum') diff --git a/sys/geom/vinum/geom_vinum_subr.c b/sys/geom/vinum/geom_vinum_subr.c index 0df59c3..ff91196 100644 --- a/sys/geom/vinum/geom_vinum_subr.c +++ b/sys/geom/vinum/geom_vinum_subr.c @@ -790,6 +790,8 @@ gv_kill_drive_thread(struct gv_drive *d) while (!(d->flags & GV_DRIVE_THREAD_DEAD)) tsleep(d, PRIBIO, "gv_die", hz); d->flags &= ~GV_DRIVE_THREAD_ACTIVE; + d->flags &= ~GV_DRIVE_THREAD_DIE; + d->flags &= ~GV_DRIVE_THREAD_DEAD; mtx_destroy(&d->bqueue_mtx); } } @@ -803,6 +805,8 @@ gv_kill_plex_thread(struct gv_plex *p) while (!(p->flags & GV_PLEX_THREAD_DEAD)) tsleep(p, PRIBIO, "gv_die", hz); p->flags &= ~GV_PLEX_THREAD_ACTIVE; + p->flags &= ~GV_PLEX_THREAD_DIE; + p->flags &= ~GV_PLEX_THREAD_DEAD; mtx_destroy(&p->bqueue_mtx); } } @@ -816,6 +820,8 @@ gv_kill_vol_thread(struct gv_volume *v) while (!(v->flags & GV_VOL_THREAD_DEAD)) tsleep(v, PRIBIO, "gv_die", hz); v->flags &= ~GV_VOL_THREAD_ACTIVE; + v->flags &= ~GV_VOL_THREAD_DIE; + v->flags &= ~GV_VOL_THREAD_DEAD; mtx_destroy(&v->bqueue_mtx); } } -- cgit v1.1