Use sector_div() rather than defining own version. [Christophe Saout] --- diff/drivers/md/dm-stripe.c 2003-06-30 10:07:21.000000000 +0100 +++ source/drivers/md/dm-stripe.c 2003-08-01 10:00:22.000000000 +0100 @@ -64,30 +64,6 @@ } /* - * FIXME: Nasty function, only present because we can't link - * against __moddi3 and __divdi3. - * - * returns a == b * n - */ -static int multiple(sector_t a, sector_t b, sector_t *n) -{ - sector_t acc, prev, i; - - *n = 0; - while (a >= b) { - for (acc = b, prev = 0, i = 1; - acc <= a; - prev = acc, acc <<= 1, i <<= 1) - ; - - a -= prev; - *n += i >> 1; - } - - return a == 0; -} - -/* * Construct a striped mapping. * [ ]+ */ @@ -126,7 +102,8 @@ return -EINVAL; } - if (!multiple(ti->len, stripes, &width)) { + width = ti->len; + if (sector_div(width, stripes)) { ti->error = "dm-stripe: Target length not divisable by " "number of stripes"; return -EINVAL;