[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