Increase aggressiveness of the compress filter.
[paraslash.git] / write_common.c
index b35773f7ff7103fe002e8b23e3be7c128afb9cad..29a5e532698fb9a6e5c2ce9404cd37c1bd98d985 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2007 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2008 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -28,7 +28,7 @@ static void wng_pre_select(__a_unused struct sched *s, struct task *t)
                struct writer_node *wn = &g->writer_nodes[i];
                t->ret = wn->writer->pre_select(s, wn);
                if (t->ret < 0) {
-                       g->eof = 1;
+                       g->error = t->ret;
                        return;
                }
        }
@@ -44,7 +44,7 @@ static void wng_post_select(struct sched *s, struct task *t)
                struct writer_node *wn = &g->writer_nodes[i];
                t->ret = wn->writer->post_select(s, wn);
                if (t->ret < 0) {
-                       g->eof = 1;
+                       g->error = t->ret;
                        return;
                }
                if (!i)
@@ -58,9 +58,9 @@ static void wng_post_select(struct sched *s, struct task *t)
                FOR_EACH_WRITER_NODE(i, g)
                        g->writer_nodes[i].written -= min_written;
        }
-       if (!*g->loaded && *g->input_eof) {
-               g->eof = 1;
-               t->ret = -E_WNG_EOF;
+       if (!*g->loaded && *g->input_error) {
+               g->error = *g->input_error;
+               t->ret = g->error;
                return;
        }
        t->ret = 1;
@@ -96,17 +96,17 @@ int wng_open(struct writer_node_group *g)
                g->max_chunk_bytes = PARA_MAX(g->max_chunk_bytes, ret);
        }
        sprintf(g->task.status, "%s", "writer node group");
-       g->eof = 0;
+       g->error = 0;
        return 1;
 err_out:
-       PARA_ERROR_LOG("%s\n", PARA_STRERROR(-ret));
+       PARA_ERROR_LOG("%s\n", para_strerror(-ret));
        unregister_task(&g->task);
        while (i > 0) {
                struct writer_node *wn = &g->writer_nodes[--i];
                wn->writer->close(wn);
        }
        g->num_writers = 0;
-       g->eof = 1;
+       g->error = ret;
        return ret;
 }
 
@@ -119,7 +119,6 @@ err_out:
 void wng_unregister(struct writer_node_group *g)
 {
        unregister_task(&g->task);
-       g->eof = 1;
 }
 
 /**
@@ -210,7 +209,7 @@ void *check_writer_arg(const char *wa, int *writer_num)
                *writer_num = i;
                return writers[i].parse_config(c? wa + len + 1 : "");
        }
-       PARA_ERROR_LOG("%s", "writer not found\n");
+       PARA_ERROR_LOG("writer not found\n");
        return NULL;
 }