static int fill_timespec(struct timespec *ts)
{
-#ifdef _POSIX_TIMERS
- if (!clock_gettime(CLOCK_MONOTONIC, ts))
+#ifdef CONFIG_CLOCK_GETTIME
+#ifdef CONFIG_CLOCK_MONOTONIC
+ clockid_t clk = CLOCK_MONOTONIC;
+#else
+ clockid_t clk = CLOCK_REALTIME;
+#endif
+ if (!clock_gettime(clk, ts))
return 0;
perror("clock_gettime");
-#endif
return 1;
+#else
+ struct timeval tv;
+
+ gettimeofday(&tv, NULL);
+ ts->tv_sec = tv.tv_sec;
+ ts->tv_nsec = tv.tv_usec * 1000;
+ return 0;
+#endif
}
static unsigned long long ts_utime_since_now(struct timespec *t)
struct flist_head *entry;
struct timespec start;
int have_timeout = 0;
- int suspend_entries = 0;
+ int suspend_entries;
unsigned int r;
if (t && !fill_timespec(&start))
have_timeout = 1;
+ else
+ memset(&start, 0, sizeof(start));
r = 0;
- memset(suspend_list, 0, sizeof(*suspend_list));
restart:
+ memset(suspend_list, 0, sizeof(*suspend_list));
+ suspend_entries = 0;
flist_for_each(entry, &td->io_u_busylist) {
struct io_u *io_u = flist_entry(entry, struct io_u, list);
int err;