PERFORCE change 161798 for review

Marko Zec zec at FreeBSD.org
Sat May 9 01:25:07 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=161798

Change 161798 by zec at zec_tpx32 on 2009/05/09 01:24:23

	Add an exception to allow for a process running in one vimage
	to receive signals from processes running in child vimages that
	it is waiting on, but only when the processes in the child
	vimage is exiting.

Affected files ...

.. //depot/projects/vimage-commit2/src/sys/kern/kern_prot.c#9 edit
.. //depot/projects/vimage-commit2/src/sys/kern/kern_vimage.c#34 edit
.. //depot/projects/vimage-commit2/src/sys/sys/vimage.h#58 edit

Differences ...

==== //depot/projects/vimage-commit2/src/sys/kern/kern_prot.c#9 (text+ko) ====

@@ -1756,7 +1756,11 @@
 
 	KASSERT(td == curthread, ("%s: td not curthread", __func__));
 	PROC_LOCK_ASSERT(p, MA_OWNED);
-	if ((error = prison_check(td->td_ucred, p->p_ucred)))
+	if (
+#ifdef VIMAGE
+	    !vi_child_of(TD_TO_VIMAGE(td), P_TO_VIMAGE(p)) &&
+#endif
+	    (error = prison_check(td->td_ucred, p->p_ucred)))
 		return (error);
 #ifdef MAC
 	if ((error = mac_proc_check_wait(td->td_ucred, p)))

==== //depot/projects/vimage-commit2/src/sys/kern/kern_vimage.c#34 (text+ko) ====

@@ -101,7 +101,7 @@
  * Userspace interfaces.
  */
 
-static int
+int
 vi_child_of(struct vimage *parent, struct vimage *child)
 {
 	if (child == parent)

==== //depot/projects/vimage-commit2/src/sys/sys/vimage.h#58 (text+ko) ====

@@ -158,6 +158,7 @@
 int	vi_symlookup(struct kld_sym_lookup *, char *);
 int	vi_td_ioctl(u_long, struct vi_req *, struct thread *);
 int	vi_if_move(struct vi_req *, struct ifnet *, struct vimage *);
+int	vi_child_of(struct vimage *, struct vimage *);
 void	if_reassign_common(struct ifnet *, struct vnet *, const char *);
 void	vnet_mod_register(const struct vnet_modinfo *);
 void	vnet_mod_register_multi(const struct vnet_modinfo *, void *, char *);


More information about the p4-projects mailing list