]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - afs.c
Merge branch 't/afh_receiver'
[paraslash.git] / afs.c
diff --git a/afs.c b/afs.c
index f1e28f14982779ee0fff694ddf95a97c3e6bf318..1f3fafacec1c757b47659c77d2bf2da1062e3cbf 100644 (file)
--- a/afs.c
+++ b/afs.c
@@ -744,7 +744,7 @@ static void afs_signal_post_select(struct sched *s, struct task *t)
        }
        PARA_EMERG_LOG("terminating on signal %d\n", signum);
 shutdown:
-       sched_shutdown(s);
+       task_notify_all(s, E_AFS_SIGNAL);
        t->error = -E_AFS_SIGNAL;
 }
 
@@ -921,10 +921,16 @@ static void command_post_select(struct sched *s, struct task *t)
        struct afs_client *client, *tmp;
        int fd, ret;
 
+       ret = task_get_notification(t);
+       if (ret < 0) {
+               t->error = ret;
+               return;
+       }
        ret = execute_server_command(&s->rfds);
        if (ret < 0) {
                PARA_EMERG_LOG("%s\n", para_strerror(-ret));
-               sched_shutdown(s);
+               task_notify_all(s, -ret);
+               t->error = ret;
                return;
        }
        /* Check the list of connected clients. */