summaryrefslogtreecommitdiffstats
path: root/sys/dev/vinum
diff options
context:
space:
mode:
authorgrog <grog@FreeBSD.org>2002-01-27 04:20:52 +0000
committergrog <grog@FreeBSD.org>2002-01-27 04:20:52 +0000
commitebd9d88d03e32643faaeb985a9602f7d8cc8bd81 (patch)
treef7ea455638009ce29ad657a97813cd4b23577304 /sys/dev/vinum
parent666d94f4b0dc4af9878e64ef74fde409444b400b (diff)
downloadFreeBSD-src-ebd9d88d03e32643faaeb985a9602f7d8cc8bd81.zip
FreeBSD-src-ebd9d88d03e32643faaeb985a9602f7d8cc8bd81.tar.gz
vinumioctl: Fix a double fault caused by calling setjmp() without holding the config lock. The call was in fact superfluous.
Diffstat (limited to 'sys/dev/vinum')
-rw-r--r--sys/dev/vinum/vinumconfig.c2
-rw-r--r--sys/dev/vinum/vinumioctl.c3
2 files changed, 2 insertions, 3 deletions
diff --git a/sys/dev/vinum/vinumconfig.c b/sys/dev/vinum/vinumconfig.c
index fea3c2f..e1d7d0e 100644
--- a/sys/dev/vinum/vinumconfig.c
+++ b/sys/dev/vinum/vinumconfig.c
@@ -99,6 +99,8 @@ throw_rude_remark(int error, char *msg,...)
static int finishing; /* don't recurse */
int was_finishing;
+ if ((vinum_conf.flags & VF_LOCKED) == 0) /* bug catcher */
+ panic ("throw_rude_remark: called without config lock");
va_start(ap, msg);
if ((ioctl_reply != NULL) /* we're called from the user */
&&(!(vinum_conf.flags & VF_READING_CONFIG))) { /* and not reading from disk: return msg */
diff --git a/sys/dev/vinum/vinumioctl.c b/sys/dev/vinum/vinumioctl.c
index 7abfe11..94a9790 100644
--- a/sys/dev/vinum/vinumioctl.c
+++ b/sys/dev/vinum/vinumioctl.c
@@ -82,9 +82,6 @@ vinumioctl(dev_t dev,
switch (DEVTYPE(dev)) {
case VINUM_SUPERDEV_TYPE: /* ordinary super device */
ioctl_reply = (struct _ioctl_reply *) data; /* save the address to reply to */
- error = setjmp(command_fail); /* come back here on error */
- if (error) /* bombed out */
- return 0; /* the reply will contain meaningful info */
switch (cmd) {
#ifdef VINUMDEBUG
case VINUM_DEBUG:
OpenPOWER on IntegriCloud