}
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;
}
*
* This function creates a shared memory area large enough to hold
* the content given by \a buf and \a size and sends the identifier
- * of this area to the file descriptor given by \a fd_ptr.
+ * of this area to the file descriptor \a fd.
*
* It is called by the AFS max_size handler as well as directly by the AFS
* command callbacks to send command output to the command handlers.
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. */
}
ret = send_callback_request(create_tables_callback, &query,
afs_cb_result_handler, cc);
- if (ret < 0)
+ if (ret < 0 && !cc->use_sideband)
/* ignore return value */
sc_send_va_buffer(&cc->scc, "%s\n", para_strerror(-ret));
return ret;