audit: cleanup prune_tree_thread
We can use kthread_run instead of kthread_create+wake_up_process for creating the thread. We do not need to set the task state to TASK_RUNNING after schedule(), the process is in that state already. And we do not need to set the state to TASK_INTERRUPTIBLE when not doing schedule() as we set the state to TASK_RUNNING immediately afterwards. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Cc: Paul Moore <paul@paul-moore.com> Cc: Eric Paris <eparis@redhat.com> Cc: <linux-audit@redhat.com> Signed-off-by: Paul Moore <paul@paul-moore.com>
This commit is contained in:
parent
b562e44f50
commit
0bf676d1fd
1 changed files with 5 additions and 7 deletions
|
@ -661,10 +661,10 @@ static int tag_mount(struct vfsmount *mnt, void *arg)
|
|||
static int prune_tree_thread(void *unused)
|
||||
{
|
||||
for (;;) {
|
||||
set_current_state(TASK_INTERRUPTIBLE);
|
||||
if (list_empty(&prune_list))
|
||||
if (list_empty(&prune_list)) {
|
||||
set_current_state(TASK_INTERRUPTIBLE);
|
||||
schedule();
|
||||
__set_current_state(TASK_RUNNING);
|
||||
}
|
||||
|
||||
mutex_lock(&audit_cmd_mutex);
|
||||
mutex_lock(&audit_filter_mutex);
|
||||
|
@ -693,16 +693,14 @@ static int audit_launch_prune(void)
|
|||
{
|
||||
if (prune_thread)
|
||||
return 0;
|
||||
prune_thread = kthread_create(prune_tree_thread, NULL,
|
||||
prune_thread = kthread_run(prune_tree_thread, NULL,
|
||||
"audit_prune_tree");
|
||||
if (IS_ERR(prune_thread)) {
|
||||
pr_err("cannot start thread audit_prune_tree");
|
||||
prune_thread = NULL;
|
||||
return -ENOMEM;
|
||||
} else {
|
||||
wake_up_process(prune_thread);
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* called with audit_filter_mutex */
|
||||
|
|
Loading…
Reference in a new issue