- je->nr_running = cpu_to_le32(je->nr_running);
- je->nr_ramp = cpu_to_le32(je->nr_ramp);
- je->nr_pending = cpu_to_le32(je->nr_pending);
- je->nr_setting_up = cpu_to_le32(je->nr_setting_up);
- je->files_open = cpu_to_le32(je->files_open);
+ /*
+ * Fake ETA return if we don't have a local one, otherwise the client
+ * will end up timing out waiting for a response to the ETA request
+ */
+ je = get_jobs_eta(1, &size);
+ if (!je)
+ je = calloc(1, sizeof(*je));
+ else {
+ je->nr_running = cpu_to_le32(je->nr_running);
+ je->nr_ramp = cpu_to_le32(je->nr_ramp);
+ je->nr_pending = cpu_to_le32(je->nr_pending);
+ je->nr_setting_up = cpu_to_le32(je->nr_setting_up);
+ je->files_open = cpu_to_le32(je->files_open);
+
+ for (i = 0; i < DDIR_RWDIR_CNT; i++) {
+ je->m_rate[i] = cpu_to_le32(je->m_rate[i]);
+ je->t_rate[i] = cpu_to_le32(je->t_rate[i]);
+ je->m_iops[i] = cpu_to_le32(je->m_iops[i]);
+ je->t_iops[i] = cpu_to_le32(je->t_iops[i]);
+ je->rate[i] = cpu_to_le32(je->rate[i]);
+ je->iops[i] = cpu_to_le32(je->iops[i]);
+ }