Move setup_rate() out of log.c

Dunno why it ended up in there, doesn't make any sense.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/init.c b/init.c
index 15e96aa..b044e28 100644
--- a/init.c
+++ b/init.c
@@ -131,6 +131,38 @@
 	thread_number--;
 }
 
+static int setup_rate(struct thread_data *td)
+{
+	unsigned long nr_reads_per_msec;
+	unsigned long long rate;
+	unsigned int bs;
+
+	if (!td->rate && !td->rate_iops)
+		return 0;
+
+	if (td_rw(td))
+		bs = td->rw_min_bs;
+	else if (td_read(td))
+		bs = td->min_bs[DDIR_READ];
+	else
+		bs = td->min_bs[DDIR_WRITE];
+
+	if (td->rate) {
+		rate = td->rate;
+		nr_reads_per_msec = (rate * 1024 * 1000LL) / bs;
+	} else
+		nr_reads_per_msec = td->rate_iops * 1000UL;
+
+	if (!nr_reads_per_msec) {
+		log_err("rate lower than supported\n");
+		return -1;
+	}
+
+	td->rate_usec_cycle = 1000000000ULL / nr_reads_per_msec;
+	td->rate_pending_usleep = 0;
+	return 0;
+}
+
 /*
  * Lazy way of fixing up options that depend on each other. We could also
  * define option callback handlers, but this is easier.