[Cluster-devel] [GFS2 PATCH] GFS2: Combine func meta_prep_new with its only caller

Steven Whitehouse swhiteho at redhat.com
Mon May 22 15:11:36 UTC 2017


Hi,


On 22/05/17 16:00, Bob Peterson wrote:
> Hi,
>
> Before this patch function meta_prep_new was only called in one
> place, function gfs2_meta_new which is only a couple lines long.
> This patch combines them for readability.
>
> Signed-off-by: Bob Peterson <rpeterso at redhat.com>
That is a good plan. If you look at the callers of gfs2_meta_new then 
you'll see that there is a common pattern there too (aside from the two 
callers from log.c) and it would be good to merge back some of that into 
this function too, to reduce duplication of code.

It is a bit odd that we unlock the buffer before setting the magic 
number, and also that we do that before adding the buffer to a 
transaction. Worth a quick check there just to see if there is something 
not quite right,

Steve.

> ---
> diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c
> index 663ffc1..bbd9411 100644
> --- a/fs/gfs2/meta_io.c
> +++ b/fs/gfs2/meta_io.c
> @@ -158,18 +158,6 @@ struct buffer_head *gfs2_getbuf(struct gfs2_glock *gl, u64 blkno, int create)
>   	return bh;
>   }
>   
> -static void meta_prep_new(struct buffer_head *bh)
> -{
> -	struct gfs2_meta_header *mh = (struct gfs2_meta_header *)bh->b_data;
> -
> -	lock_buffer(bh);
> -	clear_buffer_dirty(bh);
> -	set_buffer_uptodate(bh);
> -	unlock_buffer(bh);
> -
> -	mh->mh_magic = cpu_to_be32(GFS2_MAGIC);
> -}
> -
>   /**
>    * gfs2_meta_new - Get a block
>    * @gl: The glock associated with this block
> @@ -180,9 +168,15 @@ static void meta_prep_new(struct buffer_head *bh)
>   
>   struct buffer_head *gfs2_meta_new(struct gfs2_glock *gl, u64 blkno)
>   {
> -	struct buffer_head *bh;
> -	bh = gfs2_getbuf(gl, blkno, CREATE);
> -	meta_prep_new(bh);
> +	struct buffer_head *bh = gfs2_getbuf(gl, blkno, CREATE);
> +	struct gfs2_meta_header *mh = (struct gfs2_meta_header *)bh->b_data;
> +
> +	lock_buffer(bh);
> +	clear_buffer_dirty(bh);
> +	set_buffer_uptodate(bh);
> +	unlock_buffer(bh);
> +
> +	mh->mh_magic = cpu_to_be32(GFS2_MAGIC);
>   	return bh;
>   }
>   
>




More information about the Cluster-devel mailing list