From b48e2e25c4abce2874aa1f81e001a8047d3319ea Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Thu, 4 Oct 2012 16:34:21 +1000 Subject: [PATCH] Split 'GCD' out into a separate function. It is neater that way. Signed-off-by: NeilBrown --- Grow.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/Grow.c b/Grow.c index f6fe168..ba00f27 100644 --- a/Grow.c +++ b/Grow.c @@ -938,6 +938,17 @@ int reshape_open_backup_file(char *backup_file, return 1; } +unsigned long GCD(unsigned long a, unsigned long b) +{ + while (a != b) { + if (a < b) + b -= a; + if (b < a) + a -= b; + } + return a; +} + unsigned long compute_backup_blocks(int nchunk, int ochunk, unsigned int ndata, unsigned int odata) { @@ -950,12 +961,7 @@ unsigned long compute_backup_blocks(int nchunk, int ochunk, a = (ochunk/512) * odata; b = (nchunk/512) * ndata; /* Find GCD */ - while (a != b) { - if (a < b) - b -= a; - if (b < a) - a -= b; - } + a = GCD(a, b); /* LCM == product / GCD */ blocks = (ochunk/512) * (nchunk/512) * odata * ndata / a;