init: cleaner gcd()
authorJens Axboe <axboe@fb.com>
Thu, 5 Jan 2017 17:38:41 +0000 (10:38 -0700)
committerJens Axboe <axboe@fb.com>
Thu, 5 Jan 2017 17:38:41 +0000 (10:38 -0700)
Signed-off-by: Jens Axboe <axboe@fb.com>
init.c

diff --git a/init.c b/init.c
index 1ba8fe6e5b08f359d92f582ff10b51099d3ef46e..ae20d619018ea9847e8033522513c024375b3e36 100644 (file)
--- a/init.c
+++ b/init.c
@@ -564,22 +564,15 @@ static unsigned long long get_rand_start_delay(struct thread_data *td)
        return delayrange;
 }
 
+/*
+ * <3 Johannes
+ */
 static unsigned int gcd(unsigned int m, unsigned int n)
 {
-       unsigned int r;
-
-       if (!m || !n)
-               return 0;
-
-       do {
-               r = m % n;
-               if (!r)
-                       break;
-               m = n;
-               n = r;
-       } while (1);
+       if (!n)
+               return m;
 
-       return n;
+       return gcd(n, m % n);
 }
 
 /*