writers: Unify ->pre_select().
[paraslash.git] / file_write.c
index 7bc1e437ea8975a2e97221754a85b00577e4bef4..e6a3229e7303c459e4fa05807c17dd1aa405087e 100644 (file)
@@ -88,14 +88,13 @@ static void file_write_pre_select(struct sched *s, struct task *t)
 {
        struct writer_node *wn = container_of(t, struct writer_node, task);
        struct private_file_write_data *pfwd = wn->private_data;
-       int ret;
+       int ret = btr_node_status(wn->btrn, wn->min_iqs, BTR_NT_LEAF);
 
-       t->error = 0;
-       ret = btr_node_status(wn->btrn, wn->min_iqs, BTR_NT_LEAF);
-       if (ret > 0 && pfwd->fd >= 0)
-               para_fd_set(pfwd->fd, &s->wfds, &s->max_fileno);
-       else if (ret != 0) /* error or bos and fd not yet open */
-               sched_min_delay(s);
+       if (ret == 0)
+               return;
+       if (ret < 0 || pfwd->fd < 0)
+               return sched_min_delay(s);
+       para_fd_set(pfwd->fd, &s->wfds, &s->max_fileno);
 }
 
 static void file_write_close(struct writer_node *wn)