lkml.org 
[lkml]   [2012]   [May]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 05/10] affs: use memweight()
    Date
    Use memweight() to count the total number of bits set in memory area.

    Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
    Cc: linux-fsdevel@vger.kernel.org
    ---
    fs/affs/bitmap.c | 28 ++--------------------------
    1 files changed, 2 insertions(+), 26 deletions(-)

    diff --git a/fs/affs/bitmap.c b/fs/affs/bitmap.c
    index 3e26271..3dfdcd2 100644
    --- a/fs/affs/bitmap.c
    +++ b/fs/affs/bitmap.c
    @@ -10,30 +10,6 @@
    #include <linux/slab.h>
    #include "affs.h"

    -/* This is, of course, shamelessly stolen from fs/minix */
    -
    -static const int nibblemap[] = { 0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4 };
    -
    -static u32
    -affs_count_free_bits(u32 blocksize, const void *data)
    -{
    - const u32 *map;
    - u32 free;
    - u32 tmp;
    -
    - map = data;
    - free = 0;
    - for (blocksize /= 4; blocksize > 0; blocksize--) {
    - tmp = *map++;
    - while (tmp) {
    - free += nibblemap[tmp & 0xf];
    - tmp >>= 4;
    - }
    - }
    -
    - return free;
    -}
    -
    u32
    affs_count_free_blocks(struct super_block *sb)
    {
    @@ -317,7 +293,7 @@ int affs_init_bitmap(struct super_block *sb, int *flags)
    goto out;
    }
    pr_debug("AFFS: read bitmap block %d: %d\n", blk, bm->bm_key);
    - bm->bm_free = affs_count_free_bits(sb->s_blocksize - 4, bh->b_data + 4);
    + bm->bm_free = memweight(bh->b_data + 4, sb->s_blocksize - 4);

    /* Don't try read the extension if this is the last block,
    * but we also need the right bm pointer below
    @@ -367,7 +343,7 @@ int affs_init_bitmap(struct super_block *sb, int *flags)

    /* recalculate bitmap count for last block */
    bm--;
    - bm->bm_free = affs_count_free_bits(sb->s_blocksize - 4, bh->b_data + 4);
    + bm->bm_free = memweight(bh->b_data + 4, sb->s_blocksize - 4);

    out:
    affs_brelse(bh);
    --
    1.7.7.6


    \
     
     \ /
      Last update: 2012-05-20 15:41    [W:0.028 / U:0.344 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site