Skip to contentSkip to conversation

GFS2: Refactor gfs2_remove_from_journal

PATCH New Bob Peterson 2 participants 2 messages May 2, 2016 1 message not in the archive GFS2 file system

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

#1 lore raw

PATCH 1/1 GFS2: Refactor gfs2_remove_from_journal

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.

---

fs/gfs2/aops.c +1 -1
index 58dd006..e21a931 100644
@@ -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);
fs/gfs2/meta_io.c +4 -3
index e137d96..8f3f1b8 100644
@@ -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);
fs/gfs2/meta_io.h +6 -2
index c5086c8..ffdf6aa 100644
@@ -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);
#2 lore raw

PATCH 1/1 GFS2: Refactor gfs2_remove_from_journal

Hi,

Quoted 9 lines · Bob Peterson

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.

Looks good to me.

Steve.

Quoted 69 lines

---

fs/gfs2/aops.c +1 -1
index 58dd006..e21a931 100644
@@ -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);
fs/gfs2/meta_io.c +4 -3
index e137d96..8f3f1b8 100644
@@ -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);
fs/gfs2/meta_io.h +6 -2
index c5086c8..ffdf6aa 100644
@@ -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);