All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Sandeen <sandeen@redhat.com>
To: "Theodore Ts'o" <tytso@mit.edu>
Cc: Ext4 Developers List <linux-ext4@vger.kernel.org>
Subject: Re: [PATCH] ext4: remove EXT4_MB_{BITMAP,BUDDY} macros
Date: Mon, 20 Feb 2012 18:24:21 -0600	[thread overview]
Message-ID: <4F42E435.603@redhat.com> (raw)
In-Reply-To: <1329778699-1839-1-git-send-email-tytso@mit.edu>

On 2/20/12 4:58 PM, Theodore Ts'o wrote:
> The EXT4_MB_BITMAP and EXT4_MB_BUDDY macros obfuscate more than they
> provide any abstraction.   So remove them.
> 
> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

Yeah, I like that.

Reviewed-by: Eric Sandeen <sandeen@redhat.com>

> ---
>  fs/ext4/mballoc.c |   32 ++++++++++++++++----------------
>  fs/ext4/mballoc.h |    2 --
>  2 files changed, 16 insertions(+), 18 deletions(-)
> 
> diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
> index 8e01214..7e6fab9 100644
> --- a/fs/ext4/mballoc.c
> +++ b/fs/ext4/mballoc.c
> @@ -427,7 +427,7 @@ static void *mb_find_buddy(struct ext4_buddy *e4b, int order, int *max)
>  {
>  	char *bb;
>  
> -	BUG_ON(EXT4_MB_BITMAP(e4b) == EXT4_MB_BUDDY(e4b));
> +	BUG_ON(e4b->bd_bitmap == e4b->bd_buddy);
>  	BUG_ON(max == NULL);
>  
>  	if (order > e4b->bd_blkbits + 1) {
> @@ -438,10 +438,10 @@ static void *mb_find_buddy(struct ext4_buddy *e4b, int order, int *max)
>  	/* at order 0 we see each particular block */
>  	if (order == 0) {
>  		*max = 1 << (e4b->bd_blkbits + 3);
> -		return EXT4_MB_BITMAP(e4b);
> +		return e4b->bd_bitmap;
>  	}
>  
> -	bb = EXT4_MB_BUDDY(e4b) + EXT4_SB(e4b->bd_sb)->s_mb_offsets[order];
> +	bb = e4b->bd_buddy + EXT4_SB(e4b->bd_sb)->s_mb_offsets[order];
>  	*max = EXT4_SB(e4b->bd_sb)->s_mb_maxs[order];
>  
>  	return bb;
> @@ -590,7 +590,7 @@ static int __mb_check_buddy(struct ext4_buddy *e4b, char *file,
>  			for (j = 0; j < (1 << order); j++) {
>  				k = (i * (1 << order)) + j;
>  				MB_CHECK_ASSERT(
> -					!mb_test_bit(k, EXT4_MB_BITMAP(e4b)));
> +					!mb_test_bit(k, e4b->bd_bitmap));
>  			}
>  			count++;
>  		}
> @@ -1203,10 +1203,10 @@ static int mb_find_order_for_block(struct ext4_buddy *e4b, int block)
>  	int order = 1;
>  	void *bb;
>  
> -	BUG_ON(EXT4_MB_BITMAP(e4b) == EXT4_MB_BUDDY(e4b));
> +	BUG_ON(e4b->bd_bitmap == e4b->bd_buddy);
>  	BUG_ON(block >= (1 << (e4b->bd_blkbits + 3)));
>  
> -	bb = EXT4_MB_BUDDY(e4b);
> +	bb = e4b->bd_buddy;
>  	while (order <= e4b->bd_blkbits + 1) {
>  		block = block >> 1;
>  		if (!mb_test_bit(block, bb)) {
> @@ -1276,9 +1276,9 @@ static void mb_free_blocks(struct inode *inode, struct ext4_buddy *e4b,
>  
>  	/* let's maintain fragments counter */
>  	if (first != 0)
> -		block = !mb_test_bit(first - 1, EXT4_MB_BITMAP(e4b));
> +		block = !mb_test_bit(first - 1, e4b->bd_bitmap);
>  	if (first + count < EXT4_SB(sb)->s_mb_maxs[0])
> -		max = !mb_test_bit(first + count, EXT4_MB_BITMAP(e4b));
> +		max = !mb_test_bit(first + count, e4b->bd_bitmap);
>  	if (block && max)
>  		e4b->bd_info->bb_fragments--;
>  	else if (!block && !max)
> @@ -1289,7 +1289,7 @@ static void mb_free_blocks(struct inode *inode, struct ext4_buddy *e4b,
>  		block = first++;
>  		order = 0;
>  
> -		if (!mb_test_bit(block, EXT4_MB_BITMAP(e4b))) {
> +		if (!mb_test_bit(block, e4b->bd_bitmap)) {
>  			ext4_fsblk_t blocknr;
>  
>  			blocknr = ext4_group_first_block_no(sb, e4b->bd_group);
> @@ -1300,7 +1300,7 @@ static void mb_free_blocks(struct inode *inode, struct ext4_buddy *e4b,
>  					      "freeing already freed block "
>  					      "(bit %u)", block);
>  		}
> -		mb_clear_bit(block, EXT4_MB_BITMAP(e4b));
> +		mb_clear_bit(block, e4b->bd_bitmap);
>  		e4b->bd_info->bb_counters[order]++;
>  
>  		/* start of the buddy */
> @@ -1382,7 +1382,7 @@ static int mb_find_extent(struct ext4_buddy *e4b, int order, int block,
>  			break;
>  
>  		next = (block + 1) * (1 << order);
> -		if (mb_test_bit(next, EXT4_MB_BITMAP(e4b)))
> +		if (mb_test_bit(next, e4b->bd_bitmap))
>  			break;
>  
>  		order = mb_find_order_for_block(e4b, next);
> @@ -1419,9 +1419,9 @@ static int mb_mark_used(struct ext4_buddy *e4b, struct ext4_free_extent *ex)
>  
>  	/* let's maintain fragments counter */
>  	if (start != 0)
> -		mlen = !mb_test_bit(start - 1, EXT4_MB_BITMAP(e4b));
> +		mlen = !mb_test_bit(start - 1, e4b->bd_bitmap);
>  	if (start + len < EXT4_SB(e4b->bd_sb)->s_mb_maxs[0])
> -		max = !mb_test_bit(start + len, EXT4_MB_BITMAP(e4b));
> +		max = !mb_test_bit(start + len, e4b->bd_bitmap);
>  	if (mlen && max)
>  		e4b->bd_info->bb_fragments++;
>  	else if (!mlen && !max)
> @@ -1464,7 +1464,7 @@ static int mb_mark_used(struct ext4_buddy *e4b, struct ext4_free_extent *ex)
>  	}
>  	mb_set_largest_free_order(e4b->bd_sb, e4b->bd_info);
>  
> -	ext4_set_bits(EXT4_MB_BITMAP(e4b), ex->fe_start, len0);
> +	ext4_set_bits(e4b->bd_bitmap, ex->fe_start, len0);
>  	mb_check_buddy(e4b);
>  
>  	return ret;
> @@ -1763,7 +1763,7 @@ void ext4_mb_complex_scan_group(struct ext4_allocation_context *ac,
>  					struct ext4_buddy *e4b)
>  {
>  	struct super_block *sb = ac->ac_sb;
> -	void *bitmap = EXT4_MB_BITMAP(e4b);
> +	void *bitmap = e4b->bd_bitmap;
>  	struct ext4_free_extent ex;
>  	int i;
>  	int free;
> @@ -1823,7 +1823,7 @@ void ext4_mb_scan_aligned(struct ext4_allocation_context *ac,
>  {
>  	struct super_block *sb = ac->ac_sb;
>  	struct ext4_sb_info *sbi = EXT4_SB(sb);
> -	void *bitmap = EXT4_MB_BITMAP(e4b);
> +	void *bitmap = e4b->bd_bitmap;
>  	struct ext4_free_extent ex;
>  	ext4_fsblk_t first_group_block;
>  	ext4_fsblk_t a;
> diff --git a/fs/ext4/mballoc.h b/fs/ext4/mballoc.h
> index 7128f46..c070618 100644
> --- a/fs/ext4/mballoc.h
> +++ b/fs/ext4/mballoc.h
> @@ -212,8 +212,6 @@ struct ext4_buddy {
>  	__u16 bd_blkbits;
>  	ext4_group_t bd_group;
>  };
> -#define EXT4_MB_BITMAP(e4b)	((e4b)->bd_bitmap)
> -#define EXT4_MB_BUDDY(e4b)	((e4b)->bd_buddy)
>  
>  static inline ext4_fsblk_t ext4_grp_offs_to_block(struct super_block *sb,
>  					struct ext4_free_extent *fex)


      reply	other threads:[~2012-02-21  0:24 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-20 22:58 [PATCH] ext4: remove EXT4_MB_{BITMAP,BUDDY} macros Theodore Ts'o
2012-02-21  0:24 ` Eric Sandeen [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4F42E435.603@redhat.com \
    --to=sandeen@redhat.com \
    --cc=linux-ext4@vger.kernel.org \
    --cc=tytso@mit.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.