ret = task_get_notification(fn->task);
if (ret < 0)
- return ret;
+ 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)