light: fix wrong kill of if_brick

This commit is contained in:
Thomas Schoebel-Theuer 2014-02-03 12:04:18 +01:00
parent 31f3b64ea0
commit 2eb8162a05
1 changed files with 3 additions and 1 deletions

View File

@ -3798,7 +3798,9 @@ static int prepare_delete(void *buf, struct mars_dent *dent)
}
brick = mars_find_brick(global, NULL, dent->new_link);
if (brick && unlikely(brick->nr_outputs > 0 && brick->outputs[0] && brick->outputs[0]->nr_connected)) {
if (brick &&
unlikely((brick->nr_outputs > 0 && brick->outputs[0] && brick->outputs[0]->nr_connected) ||
(brick->type == (void*)&if_brick_type && !brick->power.led_off))) {
MARS_WRN("target '%s' cannot be deleted, its brick '%s' in use\n", dent->new_link, SAFE_STR(brick->brick_name));
goto done;
}