]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - compress_filter.c
vss: Update offset directly when setting the REPOS flag.
[paraslash.git] / compress_filter.c
index b17549c3a24b51d74e96c9caa63a30851e4e0094..a0b53bde61a093b7c9a07595df6af51a8cc1cb65 100644 (file)
@@ -103,12 +103,17 @@ static void compress_post_select(__a_unused struct sched *s, struct task *t)
        //inplace = false;
 next_buffer:
        t->error = 0;
-       ret = prepare_filter_node(fn);
+       ret = btr_node_status(btrn, fn->min_iqs, BTR_NT_INTERNAL);
        if (ret < 0)
                goto err;
        if (ret == 0)
                return;
+       btr_merge(btrn, fn->min_iqs);
        length = btr_next_buffer(btrn, &inbuf) & ~(size_t)1;
+       if (length == 0) { /* eof and 1 byte available */
+               ret = -E_COMPRESS_EOF;
+               goto err;
+       }
        ip = (int16_t *)inbuf;
        if (inplace)
                op = ip;
@@ -149,9 +154,8 @@ next_buffer:
        goto next_buffer;
 err:
        assert(ret < 0);
-       close_compress(fn);
        t->error = ret;
-       btr_del_node(btrn);
+       btr_remove_node(btrn);
 }
 
 /** TODO: Add sanity checks */