aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/bitmap.c
diff options
context:
space:
mode:
authorPaul Clements <paul.clements@steeleye.com>2006-10-03 04:16:01 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-03 11:04:18 -0400
commita638b2dc951c4cafea31b34a1db1c3d94809649e (patch)
tree73c1c2135a117290308b5807b6ede21389e3264c /drivers/md/bitmap.c
parent14f50b49fdab8f4c9fc87b55d3631e3bf1ffd385 (diff)
[PATCH] md: use ffz instead of find_first_set to convert multiplier to shift
find_first_set doesn't find the least-significant bit on bigendian machines, so it is really wrong to use it. ffs is closer, but takes an 'int' and we have a 'unsigned long'. So use ffz(~X) to convert a chunksize into a chunkshift. Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/md/bitmap.c')
-rw-r--r--drivers/md/bitmap.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index 0a44298fb353..8e67634e79a0 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -1444,8 +1444,7 @@ int bitmap_create(mddev_t *mddev)
1444 if (err) 1444 if (err)
1445 goto error; 1445 goto error;
1446 1446
1447 bitmap->chunkshift = find_first_bit(&bitmap->chunksize, 1447 bitmap->chunkshift = ffz(~bitmap->chunksize);
1448 sizeof(bitmap->chunksize));
1449 1448
1450 /* now that chunksize and chunkshift are set, we can use these macros */ 1449 /* now that chunksize and chunkshift are set, we can use these macros */
1451 chunks = (blocks + CHUNK_BLOCK_RATIO(bitmap) - 1) / 1450 chunks = (blocks + CHUNK_BLOCK_RATIO(bitmap) - 1) /