summaryrefslogtreecommitdiff
blob: d9d623ccc799aa9783b020fc8a79e2770ad6dd25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Index: linux-2.6.17/kernel/vserver/signal.c
===================================================================
--- linux-2.6.17.orig/kernel/vserver/signal.c
+++ linux-2.6.17/kernel/vserver/signal.c
@@ -51,8 +51,10 @@ int vx_info_kill(struct vx_info *vxi, in
 	case 1:
 		if (vxi->vx_initpid) {
 			pid = vxi->vx_initpid;
-			/* for now, only SIGINT to non admin init */
-			if (!vx_info_flags(vxi, VXF_STATE_ADMIN, 0))
+			/* for now, only SIGINT to private init ... */
+			if (!vx_info_flags(vxi, VXF_STATE_ADMIN, 0) &&
+				/* ... as long as there are tasks left */
+				(atomic_read(&vxi->vx_tasks) > 1))
 				sig = SIGINT;
 			priv = 1;
 		}