reiserfs: use hweight_long()
authorAkinobu Mita <akinobu.mita@gmail.com>
Tue, 26 Jul 2011 00:13:38 +0000 (17:13 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 26 Jul 2011 03:57:17 +0000 (20:57 -0700)
Use hweight_long() to count free bits in the bitmap.

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/reiserfs/bitmap.c

index 567385aa7813f114c4a9cc64bf8aa59e4b7e4c2c..d1aca1df4f9208ec706d1b7228b68ae32c17ce96 100644 (file)
@@ -1222,15 +1222,11 @@ void reiserfs_cache_bitmap_metadata(struct super_block *sb,
        info->free_count = 0;
 
        while (--cur >= (unsigned long *)bh->b_data) {
-               int i;
-
                /* 0 and ~0 are special, we can optimize for them */
                if (*cur == 0)
                        info->free_count += BITS_PER_LONG;
                else if (*cur != ~0L)   /* A mix, investigate */
-                       for (i = BITS_PER_LONG - 1; i >= 0; i--)
-                               if (!reiserfs_test_le_bit(i, cur))
-                                       info->free_count++;
+                       info->free_count += BITS_PER_LONG - hweight_long(*cur);
        }
 }