[Cluster-devel] [GFS2 PATCH] GFS2: Refactor gfs2_remove_from_journal

Steven Whitehouse swhiteho at redhat.com
Mon May 2 17:31:06 UTC 2016


Hi,

On 02/05/16 17:58, Bob Peterson wrote:
> Hi,
>
> This patch makes two simple changes to function gfs2_remove_from_journal.
> First, it removes the parameter that specifies the transaction.
> Since it's always passed in as current->journal_info, we might as well
> set that in the function rather than passing it in. Second, it changes
> the meta parameter to use an enum to make the code more clear.
>
> Signed-off-by: Bob Peterson <rpeterso at redhat.com>
Looks good to me.

Acked-by: Steven Whitehouse <swhiteho at redhat.com>

Steve.

> ---
> diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c
> index 58dd006..e21a931 100644
> --- a/fs/gfs2/aops.c
> +++ b/fs/gfs2/aops.c
> @@ -977,7 +977,7 @@ static void gfs2_discard(struct gfs2_sbd *sdp, struct buffer_head *bh)
>   		if (!list_empty(&bd->bd_list) && !buffer_pinned(bh))
>   			list_del_init(&bd->bd_list);
>   		else
> -			gfs2_remove_from_journal(bh, current->journal_info, 0);
> +			gfs2_remove_from_journal(bh, REMOVE_JDATA);
>   	}
>   	bh->b_bdev = NULL;
>   	clear_buffer_mapped(bh);
> diff --git a/fs/gfs2/meta_io.c b/fs/gfs2/meta_io.c
> index e137d96..8f3f1b8 100644
> --- a/fs/gfs2/meta_io.c
> +++ b/fs/gfs2/meta_io.c
> @@ -325,18 +325,19 @@ int gfs2_meta_wait(struct gfs2_sbd *sdp, struct buffer_head *bh)
>   	return 0;
>   }
>   
> -void gfs2_remove_from_journal(struct buffer_head *bh, struct gfs2_trans *tr, int meta)
> +void gfs2_remove_from_journal(struct buffer_head *bh, int meta)
>   {
>   	struct address_space *mapping = bh->b_page->mapping;
>   	struct gfs2_sbd *sdp = gfs2_mapping2sbd(mapping);
>   	struct gfs2_bufdata *bd = bh->b_private;
> +	struct gfs2_trans *tr = current->journal_info;
>   	int was_pinned = 0;
>   
>   	if (test_clear_buffer_pinned(bh)) {
>   		trace_gfs2_pin(bd, 0);
>   		atomic_dec(&sdp->sd_log_pinned);
>   		list_del_init(&bd->bd_list);
> -		if (meta)
> +		if (meta == REMOVE_META)
>   			tr->tr_num_buf_rm++;
>   		else
>   			tr->tr_num_databuf_rm++;
> @@ -376,7 +377,7 @@ void gfs2_meta_wipe(struct gfs2_inode *ip, u64 bstart, u32 blen)
>   		if (bh) {
>   			lock_buffer(bh);
>   			gfs2_log_lock(sdp);
> -			gfs2_remove_from_journal(bh, current->journal_info, 1);
> +			gfs2_remove_from_journal(bh, REMOVE_META);
>   			gfs2_log_unlock(sdp);
>   			unlock_buffer(bh);
>   			brelse(bh);
> diff --git a/fs/gfs2/meta_io.h b/fs/gfs2/meta_io.h
> index c5086c8..ffdf6aa 100644
> --- a/fs/gfs2/meta_io.h
> +++ b/fs/gfs2/meta_io.h
> @@ -57,8 +57,12 @@ extern int gfs2_meta_read(struct gfs2_glock *gl, u64 blkno, int flags,
>   extern int gfs2_meta_wait(struct gfs2_sbd *sdp, struct buffer_head *bh);
>   extern struct buffer_head *gfs2_getbuf(struct gfs2_glock *gl, u64 blkno,
>   				       int create);
> -extern void gfs2_remove_from_journal(struct buffer_head *bh,
> -				     struct gfs2_trans *tr, int meta);
> +enum {
> +	REMOVE_JDATA = 0,
> +	REMOVE_META = 1,
> +};
> +
> +extern void gfs2_remove_from_journal(struct buffer_head *bh, int meta);
>   extern void gfs2_meta_wipe(struct gfs2_inode *ip, u64 bstart, u32 blen);
>   extern int gfs2_meta_indirect_buffer(struct gfs2_inode *ip, int height, u64 num,
>   				     struct buffer_head **bhp);
>




More information about the Cluster-devel mailing list