diff options
| author | John Sonnenschein <johns@joyent.com> | 2012-05-07 05:39:48 +0000 |
|---|---|---|
| committer | John Sonnenschein <johns@joyent.com> | 2012-05-07 05:39:48 +0000 |
| commit | f9b92b874c7e2b0a97203e8b3e370a82027fee42 (patch) | |
| tree | 5b0afcf9f17c210b1248494d7039b477f403793f /usr/src/uts/common/syscall/uadmin.c | |
| parent | 99ab767f0b40b10adde1dc9ceaf6bb39d2be5d69 (diff) | |
| parent | 435bba8aa5d73ccd0b9ec7c79e28bec795904992 (diff) | |
| download | illumos-joyent-f9b92b874c7e2b0a97203e8b3e370a82027fee42.tar.gz | |
illumos sync
Diffstat (limited to 'usr/src/uts/common/syscall/uadmin.c')
| -rw-r--r-- | usr/src/uts/common/syscall/uadmin.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/usr/src/uts/common/syscall/uadmin.c b/usr/src/uts/common/syscall/uadmin.c index 1bdfbbfd0b..dbff1b637c 100644 --- a/usr/src/uts/common/syscall/uadmin.c +++ b/usr/src/uts/common/syscall/uadmin.c @@ -22,6 +22,7 @@ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * Copyright 2011 Joyent, Inc. All rights reserved. */ #include <sys/param.h> @@ -76,7 +77,7 @@ volatile int fastreboot_dryrun = 0; * system with many zones. */ void -killall(zoneid_t zoneid) +killall(zoneid_t zoneid, boolean_t force) { proc_t *p; @@ -106,7 +107,7 @@ killall(zoneid_t zoneid) p->p_stat != SIDL && p->p_stat != SZOMB) { mutex_enter(&p->p_lock); - if (sigismember(&p->p_sig, SIGKILL)) { + if (!force && sigismember(&p->p_sig, SIGKILL)) { mutex_exit(&p->p_lock); p = p->p_next; } else { @@ -243,7 +244,7 @@ kadmin(int cmd, int fcn, void *mdep, cred_t *credp) */ zone_shutdown_global(); - killall(ALL_ZONES); + killall(ALL_ZONES, B_FALSE); /* * If we are calling kadmin() from a kernel context then we * do not release these resources. |
