diff options
author | jhb <jhb@FreeBSD.org> | 2003-04-17 22:38:27 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2003-04-17 22:38:27 +0000 |
commit | 5adc19ca856300e64baa903f2cf77e83c4c63470 (patch) | |
tree | cae1662a26a21acb695e0cee3e40bfdba76c4937 /sys/vm | |
parent | e1dd224437698f1eca740d7a6ba15189c97ccf2b (diff) | |
download | FreeBSD-src-5adc19ca856300e64baa903f2cf77e83c4c63470.zip FreeBSD-src-5adc19ca856300e64baa903f2cf77e83c4c63470.tar.gz |
suser() does not need the proc lock, just the setting of P_PROTECTED in
p_flag needs the lock.
Diffstat (limited to 'sys/vm')
-rw-r--r-- | sys/vm/vm_mmap.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c index d20756f..e414a50 100644 --- a/sys/vm/vm_mmap.c +++ b/sys/vm/vm_mmap.c @@ -760,12 +760,13 @@ madvise(td, uap) * "immortal." */ if (uap->behav == MADV_PROTECT) { - p = td->td_proc; - PROC_LOCK(p); error = suser(td); - if (error == 0) + if (error == 0) { + p = td->td_proc; + PROC_LOCK(p); p->p_flag |= P_PROTECTED; - PROC_UNLOCK(p); + PROC_UNLOCK(p); + } return (error); } /* |