aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ocfs2
diff options
context:
space:
mode:
authorAkinobu Mita <akinobu.mita@gmail.com>2012-07-30 17:41:03 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-07-30 20:25:16 -0400
commita75613ec73ec87726a81fe421385a13c25fdcfc4 (patch)
treece929ce5fd0024483fa6ea3464e95e88a042d86c /fs/ocfs2
parent9a601396e8681d9884a9f429cba7ceb2b2a4d21c (diff)
ocfs2: use memweight()
Use memweight to count the total number of bits set in memory area. Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Cc: Mark Fasheh <mfasheh@suse.com> Cc: Joel Becker <jlbec@evilplan.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/ocfs2')
-rw-r--r--fs/ocfs2/localalloc.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c
index 210c35237548..a9f78c74d687 100644
--- a/fs/ocfs2/localalloc.c
+++ b/fs/ocfs2/localalloc.c
@@ -784,14 +784,10 @@ bail:
784 784
785static u32 ocfs2_local_alloc_count_bits(struct ocfs2_dinode *alloc) 785static u32 ocfs2_local_alloc_count_bits(struct ocfs2_dinode *alloc)
786{ 786{
787 int i; 787 u32 count;
788 u8 *buffer;
789 u32 count = 0;
790 struct ocfs2_local_alloc *la = OCFS2_LOCAL_ALLOC(alloc); 788 struct ocfs2_local_alloc *la = OCFS2_LOCAL_ALLOC(alloc);
791 789
792 buffer = la->la_bitmap; 790 count = memweight(la->la_bitmap, le16_to_cpu(la->la_size));
793 for (i = 0; i < le16_to_cpu(la->la_size); i++)
794 count += hweight8(buffer[i]);
795 791
796 trace_ocfs2_local_alloc_count_bits(count); 792 trace_ocfs2_local_alloc_count_bits(count);
797 return count; 793 return count;