From: NeilBrown Date: Thu, 4 Oct 2012 06:34:21 +0000 (+1000) Subject: Split 'GCD' out into a separate function. X-Git-Tag: mdadm-3.3-rc1~193 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b48e2e25c4abce2874aa1f81e001a8047d3319ea;p=thirdparty%2Fmdadm.git Split 'GCD' out into a separate function. It is neater that way. Signed-off-by: NeilBrown --- diff --git a/Grow.c b/Grow.c index f6fe1683..ba00f275 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;