size_t iqs = btr_get_input_queue_size(btrn);
struct private_prebuffer_data *ppd = fn->private_data;
uint32_t size = FILTER_CMD_OPT_UINT32_VAL(PREBUFFER, SIZE, fn->lpr);
+ int ret;
+ ret = task_get_notification(fn->task);
+ if (ret < 0)
+ goto fail;
+ ret = btr_node_status(btrn, size, BTR_NT_INTERNAL);
+ if (ret < 0)
+ goto fail;
if (ppd->barrier.tv_sec == 0)
return 0;
if (tv_diff(now, &ppd->barrier, NULL) < 0)
return 0;
btr_splice_out_node(&fn->btrn);
return -E_PREBUFFER_SUCCESS;
+fail:
+ btr_remove_node(&fn->btrn);
+ return ret;
}
static void prebuffer_open(struct filter_node *fn)