PERFORCE change 187257 for review
Edward Tomasz Napierala
trasz at FreeBSD.org
Tue Dec 28 17:54:42 UTC 2010
http://p4web.freebsd.org/@@187257?ac=10
Change 187257 by trasz at trasz_victim on 2010/12/28 17:54:17
Jail-related fixes.
Affected files ...
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#100 edit
.. //depot/projects/soc2009/trasz_limits/usr.bin/userstat/userstat.sh#2 edit
Differences ...
==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#100 (text+ko) ====
@@ -590,7 +590,6 @@
case HRL_SUBJECT_TYPE_JAIL:
if (rule->hr_subject.hs_prison != NULL) {
prison_free(rule->hr_subject.hs_prison);
- sx_xunlock(&allprison_lock);
}
break;
default:
@@ -766,13 +765,17 @@
rule->hr_subject.hs_loginclass = loginclass_find(subject_idstr);
break;
case HRL_SUBJECT_TYPE_JAIL:
- sx_xlock(&allprison_lock);
+ sx_slock(&allprison_lock);
rule->hr_subject.hs_prison = prison_find(id);
if (rule->hr_subject.hs_prison == NULL) {
- sx_xunlock(&allprison_lock);
+ sx_sunlock(&allprison_lock);
error = ESRCH;
goto out;
}
+ prison_hold_locked(rule->hr_subject.hs_prison);
+ /* prison_find() returns with mutex held. */
+ mtx_unlock(&rule->hr_subject.hs_prison->pr_mtx);
+ sx_sunlock(&allprison_lock);
break;
default:
panic("hrl_rule_from_string: unknown subject type %d",
==== //depot/projects/soc2009/trasz_limits/usr.bin/userstat/userstat.sh#2 (text+ko) ====
@@ -56,10 +56,10 @@
n=0
while :; do
if [ "`basename $0`" = "jailstat" ]; then
- jails="`ps ax -o jid= | sort -u`"
+ jails="`ps ax -o jid= | sort -u | sed 1d`"
printf "JID\t%%CPU\tRSS\tVSIZE\tSWAP\n"
for jail in $jails; do
- printf "$jid\t"
+ printf "$jail\t"
hrl $hflag -u j:$jail | format_stats
done
More information about the p4-projects
mailing list