infra: fix memleak when brick is not killable

This commit is contained in:
Thomas Schoebel-Theuer 2013-01-05 06:11:07 +01:00
parent 31374c81ab
commit 531e4def99
1 changed files with 5 additions and 5 deletions

View File

@ -1131,6 +1131,11 @@ int mars_kill_brick(struct mars_brick *brick)
MARS_DBG("===> killing brick %s path = '%s' name = '%s'\n", brick->type ? SAFE_STR(brick->type->type_name) : "undef", SAFE_STR(brick->brick_path), SAFE_STR(brick->brick_name));
if (unlikely(brick->nr_outputs > 0 && brick->outputs[0] && brick->outputs[0]->nr_connected)) {
MARS_ERR("sorry, output is in use '%s'\n", SAFE_STR(brick->brick_path));
goto done;
}
if (global) {
down_write(&global->brick_mutex);
list_del_init(&brick->global_brick_link);
@ -1142,11 +1147,6 @@ int mars_kill_brick(struct mars_brick *brick)
brick->show_status(brick, true);
}
if (unlikely(brick->nr_outputs > 0 && brick->outputs[0] && brick->outputs[0]->nr_connected)) {
MARS_ERR("sorry, output is in use '%s'\n", SAFE_STR(brick->brick_path));
goto done;
}
// start shutdown
status = set_recursive_button((void*)brick, BR_FREE_ONE, 0);