Free memory of all allocated threads.

This pach fixes memory leak which appeared due to commit d483951ebe.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
This commit is contained in:
Michal Mielewczyk 2020-01-08 10:02:25 -05:00
parent 4acc7fb328
commit 4ec277433d

View File

@ -52,8 +52,10 @@ static int _cas_io_queue_thread(void *data)
/* If we get here, then thread was signalled to terminate.
* So, let's free memory and exit.
*/
wait_for_completion(&info->compl);
printk(KERN_DEBUG "Thread %s stopped\n", info->name);
kfree(info);
do_exit(0);
return 0;
}
@ -112,7 +114,9 @@ static int _cas_cleaner_thread(void *data)
}
} while (true);
complete_and_exit(&info->compl, 0);
wait_for_completion(&info->compl);
kfree(info);
do_exit(0);
return 0;
}
@ -144,7 +148,9 @@ static int _cas_metadata_updater_thread(void *data)
atomic_read(&info->kicked));
} while (true);
complete_and_exit(&info->compl, 0);
wait_for_completion(&info->compl);
kfree(info);
do_exit(0);
return 0;
}
@ -202,8 +208,10 @@ static void _cas_start_thread(struct cas_thread_info *info)
static void _cas_stop_thread(struct cas_thread_info *info)
{
if (info->running && info->thread) {
reinit_completion(&info->compl);
atomic_set(&info->stop, 1);
wake_up(&info->wq);
complete(&info->compl);
}
}