PERFORCE change 114132 for review
Divacky Roman
xdivac02 at stud.fit.vutbr.cz
Tue Feb 6 22:50:31 UTC 2007
On Tue, Feb 06, 2007 at 10:43:29PM +0000, Roman Divacky wrote:
> http://perforce.freebsd.org/chv.cgi?CH=114132
>
> Change 114132 by rdivacky at rdivacky_witten on 2007/02/06 22:43:08
>
> Remove forgotten EMUL_UNLOCK in getppid().
>
> Affected files ...
>
> .. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#33 edit
> .. //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#55 edit
>
> Differences ...
>
> ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#33 (text+ko) ====
>
> @@ -168,19 +168,20 @@
>
> /* reparent all procs that are not a thread leader to initproc */
> if (em->shared->group_pid != p->p_pid) {
> - sx_xlock(&proctree_lock);
> - wakeup(initproc);
> + child_clear_tid = em->child_clear_tid;
> + EMUL_UNLOCK(&emul_lock);
> + sx_xlock(&proctree_lock);
> + wakeup(initproc);
> PROC_LOCK(p);
> proc_reparent(p, initproc);
> p->p_sigparent = SIGCHLD;
> PROC_UNLOCK(p);
> - sx_xunlock(&proctree_lock);
> + sx_xunlock(&proctree_lock);
> + } else {
> + child_clear_tid = em->child_clear_tid;
> + EMUL_UNLOCK(&emul_lock);
> }
>
> - child_clear_tid = em->child_clear_tid;
> -
> - EMUL_UNLOCK(&emul_lock);
> -
> EMUL_SHARED_WLOCK(&emul_shared_lock);
> LIST_REMOVE(em, threads);
>
>
grrrr.. I accidentally commited the fix for the LOR caused by holding 2 sx locks
(emul_lock and proctree_lock).
More information about the p4-projects
mailing list