+
+/** 640K ought to be enough for everybody ;) */
+#define FILTER_MAX_PENDING (640 * 1024)
+
+int prepare_filter_node(struct btr_node *btrn, size_t min_len)
+{
+ size_t iqs;
+
+ if (btr_eof(btrn))
+ return -E_FC_EOF;
+ if (btr_bytes_pending(btrn) > FILTER_MAX_PENDING)
+ return 0;
+ iqs = btr_get_input_queue_size(btrn);
+ if (iqs < min_len && !btr_no_parent(btrn))
+ return 0;
+ assert(iqs != 0);
+ /* avoid "buffer too small" errors from the decoder */
+ btr_merge(btrn, min_len);
+ return 1;
+}