struct private_oss_write_data *powd = wn->private_data;
int ret = btr_node_status(wn->btrn, wn->min_iqs, BTR_NT_LEAF);
- t->error = 0;
- if (ret < 0)
- sched_min_delay(s);
- else if (ret > 0)
- para_fd_set(powd->fd, &s->wfds, &s->max_fileno);
+ if (ret == 0)
+ return;
+ if (ret < 0 || powd->fd < 0)
+ return sched_min_delay(s);
+ para_fd_set(powd->fd, &s->wfds, &s->max_fileno);
}
static void oss_close(struct writer_node *wn)
btr_remove_node(btrn);
}
-static int oss_open(struct writer_node *wn)
+static void oss_open(struct writer_node *wn)
{
- struct private_oss_write_data *powd;
+ struct private_oss_write_data *powd = para_calloc(sizeof(*powd));
- powd = para_calloc(sizeof(*powd));
- wn->private_data = powd;
powd->fd = -1;
- return 1;
+ wn->private_data = powd;
}
__malloc static void *oss_parse_config_or_die(const char *options)