summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorgrog <grog@FreeBSD.org>1999-03-28 08:52:33 +0000
committergrog <grog@FreeBSD.org>1999-03-28 08:52:33 +0000
commit27e0e9777ffe33d43180b6c6ca92c75ebfe4fcbc (patch)
treed28e035d53c89199f9e8ad0e6b1037843f73da37 /sys
parentfe2c874b37c495ac8b2df274a7ea54a5d2c10c2b (diff)
downloadFreeBSD-src-27e0e9777ffe33d43180b6c6ca92c75ebfe4fcbc.zip
FreeBSD-src-27e0e9777ffe33d43180b6c6ca92c75ebfe4fcbc.tar.gz
Remove longjmp declaration.
free_vinum: Put a timeout on waiting for the daemon to die.
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/vinum/vinum.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/sys/dev/vinum/vinum.c b/sys/dev/vinum/vinum.c
index ac38daf..4f87075 100644
--- a/sys/dev/vinum/vinum.c
+++ b/sys/dev/vinum/vinum.c
@@ -33,7 +33,7 @@
* otherwise) arising in any way out of the use of this software, even if
* advised of the possibility of such damage.
*
- * $Id: vinum.c,v 1.23 1999/01/15 05:03:15 grog Exp grog $
+ * $Id: vinum.c,v 1.24 1999/03/19 05:35:25 grog Exp grog $
*/
#define STATIC static /* nothing while we're testing XXX */
@@ -64,12 +64,6 @@ STATIC void vinumattach(void *);
STATIC int vinum_modevent(module_t mod, modeventtype_t type, void *unused);
#endif
-/* Why aren't these declared anywhere? XXX */
-int setjmp(jmp_buf);
-void longjmp(jmp_buf, int);
-
-extern jmp_buf command_fail; /* return here if config fails */
-
struct _vinum_conf vinum_conf; /* configuration information */
/*
@@ -195,8 +189,11 @@ free_vinum(int cleardrive)
}
while ((vinum_conf.flags & (VF_STOPPING | VF_DAEMONOPEN))
== (VF_STOPPING | VF_DAEMONOPEN)) { /* at least one daemon open, we're stopping */
- queue_daemon_request(daemonrq_return, (union daemoninfo) NULL); /* stop the daemon */
- tsleep(&vinumclose, PUSER, "vstop", 0); /* and wait for it */
+ int timeout = 1;
+ while (timeout) { /* until the daemon sees sense */
+ queue_daemon_request(daemonrq_return, (union daemoninfo) NULL); /* stop the daemon */
+ timeout = tsleep(&vinumclose, PUSER, "vstop", 1); /* and wait for it */
+ }
}
if (SD != NULL)
Free(SD);
OpenPOWER on IntegriCloud