audit: cleanup prune_tree_thread
[cascardo/linux.git] / kernel / audit_tree.c
index 5efe9b2..2577247 100644 (file)
@@ -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 */