X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=grab_client.c;h=39e9547139da99951c2bef013051d962705bfe17;hb=74c88020bd325865fe26ed25ea8ad0ace0924136;hp=a800b70b2be4b4c0d4a9ff637768686ec2aa73e6;hpb=3879481ddabc38236b9eee979a090c2a9bfa74d3;p=paraslash.git diff --git a/grab_client.c b/grab_client.c index a800b70b..39e95471 100644 --- a/grab_client.c +++ b/grab_client.c @@ -108,7 +108,7 @@ static void gc_pre_select(struct sched *s, struct task *t) * We need this forward declaration as post_select() needs * activate_grab_client and vice versa. */ -static void gc_post_select(struct sched *s, struct task *t); +static int gc_post_select(struct sched *s, struct task *t); /** * Move a grab client to the active list and start it. @@ -130,7 +130,7 @@ static void gc_activate(struct grab_client *gc, struct sched *s) gc->btrn = btr_new_node(&(struct btr_node_description) EMBRACE(.name = name, .parent = parent)); gc->task.pre_select = gc_pre_select; - gc->task.post_select = gc_post_select; + gc->task.new_post_select = gc_post_select; snprintf(gc->task.status, sizeof(gc->task.status) - 1, "%s", name); gc->task.status[sizeof(gc->task.status) - 1] = '\0'; gc->task.error = 0; @@ -184,7 +184,7 @@ static int gc_close(struct grab_client *gc, int err) return 0; } -static void gc_post_select(__a_unused struct sched *s, struct task *t) +static int gc_post_select(__a_unused struct sched *s, struct task *t) { struct grab_client *gc = container_of(t, struct grab_client, task); struct btr_node *btrn = gc->btrn; @@ -192,10 +192,9 @@ static void gc_post_select(__a_unused struct sched *s, struct task *t) size_t sz; char *buf; - t->error = 0; ret = btr_node_status(btrn, 0, BTR_NT_LEAF); if (ret == 0) - return; + return 0; if (ret < 0) goto err; sz = btr_next_buffer(btrn, &buf); @@ -205,10 +204,10 @@ static void gc_post_select(__a_unused struct sched *s, struct task *t) goto err; if (ret > 0) btr_consume(btrn, ret); - return; + return 0; err: gc_close(gc, ret); - t->error = ret; + return ret; } static int gc_check_args(int argc, char **argv, struct grab_client *gc)