diff options
author | Akinobu Mita <akinobu.mita@gmail.com> | 2011-07-26 02:13:38 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-07-26 05:57:17 +0200 |
commit | 9d6bf5aa177ee7ffdcee2a590ef8a1bf9e8ade87 (patch) | |
tree | 563a7b08688ba07ebdbdfc5e1d13ab89e2ed8062 /fs | |
parent | reiserfs: use proper little-endian bitops (diff) | |
download | linux-9d6bf5aa177ee7ffdcee2a590ef8a1bf9e8ade87.tar.xz linux-9d6bf5aa177ee7ffdcee2a590ef8a1bf9e8ade87.zip |
reiserfs: use hweight_long()
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>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/reiserfs/bitmap.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/fs/reiserfs/bitmap.c b/fs/reiserfs/bitmap.c index 567385aa7813..d1aca1df4f92 100644 --- a/fs/reiserfs/bitmap.c +++ b/fs/reiserfs/bitmap.c @@ -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); } } |