mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-18 22:33:39 +00:00
vinumioctl: Fix a double fault caused by calling setjmp() without holding the config lock. The call was in fact superfluous.
This commit is contained in:
parent
3bf31598f8
commit
98912ee8cc
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=89842
|
@ -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 */
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue