diff options
author | alfred <alfred@FreeBSD.org> | 2002-05-06 19:31:28 +0000 |
---|---|---|
committer | alfred <alfred@FreeBSD.org> | 2002-05-06 19:31:28 +0000 |
commit | d1e340364b9883eebdfb4928891b438172fe13fb (patch) | |
tree | 2b65f57e5ea93f67973ae506e853d0b56f0f9adc /sys/kern/kern_exit.c | |
parent | 06d090201082aed150ddddb16d8da5721b05c296 (diff) | |
download | FreeBSD-src-d1e340364b9883eebdfb4928891b438172fe13fb.zip FreeBSD-src-d1e340364b9883eebdfb4928891b438172fe13fb.tar.gz |
Make funsetown() take a 'struct sigio **' so that the locking can
be done internally.
Ensure that no one can fsetown() to a dying process/pgrp. We need
to check the process for P_WEXIT to see if it's exiting. Process
groups are already safe because there is no such thing as a pgrp
zombie, therefore the proctree lock completely protects the pgrp
from having sigio structures associated with it after it runs
funsetownlst.
Add sigio lock to witness list under proctree and allproc, but over
proc and pgrp.
Seigo Tanimura helped with this.
Diffstat (limited to 'sys/kern/kern_exit.c')
-rw-r--r-- | sys/kern/kern_exit.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/sys/kern/kern_exit.c b/sys/kern/kern_exit.c index f23c756..ecaed6f 100644 --- a/sys/kern/kern_exit.c +++ b/sys/kern/kern_exit.c @@ -192,11 +192,7 @@ exit1(td, rv) * Reset any sigio structures pointing to us as a result of * F_SETOWN with our pid. */ - SIGIO_LOCK(); - PROC_LOCK(p); funsetownlst(&p->p_sigiolst); - PROC_UNLOCK(p); - SIGIO_UNLOCK(); /* * Close open files and release open-file table. |