diff options
-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, | |||
1222 | info->free_count = 0; | 1222 | info->free_count = 0; |
1223 | 1223 | ||
1224 | while (--cur >= (unsigned long *)bh->b_data) { | 1224 | while (--cur >= (unsigned long *)bh->b_data) { |
1225 | int i; | ||
1226 | |||
1227 | /* 0 and ~0 are special, we can optimize for them */ | 1225 | /* 0 and ~0 are special, we can optimize for them */ |
1228 | if (*cur == 0) | 1226 | if (*cur == 0) |
1229 | info->free_count += BITS_PER_LONG; | 1227 | info->free_count += BITS_PER_LONG; |
1230 | else if (*cur != ~0L) /* A mix, investigate */ | 1228 | else if (*cur != ~0L) /* A mix, investigate */ |
1231 | for (i = BITS_PER_LONG - 1; i >= 0; i--) | 1229 | info->free_count += BITS_PER_LONG - hweight_long(*cur); |
1232 | if (!reiserfs_test_le_bit(i, cur)) | ||
1233 | info->free_count++; | ||
1234 | } | 1230 | } |
1235 | } | 1231 | } |
1236 | 1232 | ||