]> git.openfabrics.org - ~shefty/rdma-dev.git/blobdiff - fs/reiserfs/bitmap.c
reiserfs: use hweight_long()
[~shefty/rdma-dev.git] / 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);
        }
 }