summary refs log tree commit diff
path: root/fs/9p
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2006-12-12 15:26:07 -0700
committerEric Van Hensbergen <ericvh@gmail.com>2007-02-18 10:16:10 -0600
commit2c0463a9ae8751547c39302aeb31c6cef16b5df4 (patch)
treec79b99835f4b6ad9a47a58dab465f26908ba00ae /fs/9p
parent8a03d9a498eaf02c8a118752050a5154852c13bf (diff)
downloadlinux-2c0463a9ae8751547c39302aeb31c6cef16b5df4.tar.gz
9p: Use kthread_stop instead of sending a SIGKILL.
Since the kthread api does not bump the reference count on
processes that tracked it is not safe allow user space to
kill the threads, as I still retain a pointer to the task_struct.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Acked-by: Eric Van Hensbergen <ericvh@gmail.com>
Diffstat (limited to 'fs/9p')
-rw-r--r--fs/9p/mux.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/fs/9p/mux.c b/fs/9p/mux.c
index 147ceef8e537..c783874a9caf 100644
--- a/fs/9p/mux.c
+++ b/fs/9p/mux.c
@@ -256,7 +256,7 @@ static void v9fs_mux_poll_stop(struct v9fs_mux_data *m)
 	vpt->muxnum--;
 	if (!vpt->muxnum) {
 		dprintk(DEBUG_MUX, "destroy proc %p\n", vpt);
-		send_sig(SIGKILL, vpt->task, 1);
+		kthread_stop(vpt->task);
 		vpt->task = NULL;
 		v9fs_mux_poll_task_num--;
 	}
@@ -438,11 +438,8 @@ static int v9fs_poll_proc(void *a)
 
 	vpt = a;
 	dprintk(DEBUG_MUX, "start %p %p\n", current, vpt);
-	allow_signal(SIGKILL);
 	while (!kthread_should_stop()) {
 		set_current_state(TASK_INTERRUPTIBLE);
-		if (signal_pending(current))
-			break;
 
 		list_for_each_entry_safe(m, mtmp, &vpt->mux_list, mux_list) {
 			v9fs_poll_mux(m);