From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Mon, 2 May 2016 18:31:06 +0100 Subject: [Cluster-devel] [GFS2 PATCH] GFS2: Refactor gfs2_remove_from_journal In-Reply-To: <1758106949.60585354.1462208306033.JavaMail.zimbra@redhat.com> References: <1758106949.60585354.1462208306033.JavaMail.zimbra@redhat.com> Message-ID: <57278EDA.3070907@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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 Looks good to me. Acked-by: Steven Whitehouse 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); >