diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2006-12-12 22:26:07 (GMT) |
---|---|---|
committer | Eric Van Hensbergen <ericvh@gmail.com> | 2007-02-18 16:16:10 (GMT) |
commit | 2c0463a9ae8751547c39302aeb31c6cef16b5df4 (patch) | |
tree | c79b99835f4b6ad9a47a58dab465f26908ba00ae | |
parent | 8a03d9a498eaf02c8a118752050a5154852c13bf (diff) | |
download | linux-2c0463a9ae8751547c39302aeb31c6cef16b5df4.tar.xz |
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>
-rw-r--r-- | fs/9p/mux.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/fs/9p/mux.c b/fs/9p/mux.c index 147ceef..c783874 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); |