Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

gfs2: Move gfs2_remove_from_journal to log.c

Move gfs2_remove_from_journal() from meta_io.c to log.c and fix a minor
indentation glitch.

With that, gfs2_remove_from_ail() is now only used inside log.c, so it
can be made static.

Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>

+37 -38
+36 -1
fs/gfs2/log.c
··· 72 72 * 73 73 */ 74 74 75 - void gfs2_remove_from_ail(struct gfs2_bufdata *bd) 75 + static void gfs2_remove_from_ail(struct gfs2_bufdata *bd) 76 76 { 77 77 bd->bd_tr = NULL; 78 78 list_del_init(&bd->bd_ail_st_list); ··· 1015 1015 gfs2_remove_from_ail(bd); 1016 1016 kmem_cache_free(gfs2_bufdata_cachep, bd); 1017 1017 } 1018 + } 1019 + 1020 + void gfs2_remove_from_journal(struct buffer_head *bh, int meta) 1021 + { 1022 + struct address_space *mapping = bh->b_folio->mapping; 1023 + struct gfs2_sbd *sdp = gfs2_mapping2sbd(mapping); 1024 + struct gfs2_bufdata *bd = bh->b_private; 1025 + struct gfs2_trans *tr = current->journal_info; 1026 + int was_pinned = 0; 1027 + 1028 + if (test_clear_buffer_pinned(bh)) { 1029 + trace_gfs2_pin(bd, 0); 1030 + atomic_dec(&sdp->sd_log_pinned); 1031 + list_del_init(&bd->bd_list); 1032 + if (meta == REMOVE_META) 1033 + tr->tr_num_buf_rm++; 1034 + else 1035 + tr->tr_num_databuf_rm++; 1036 + set_bit(TR_TOUCHED, &tr->tr_flags); 1037 + was_pinned = 1; 1038 + brelse(bh); 1039 + } 1040 + if (bd) { 1041 + if (bd->bd_tr) { 1042 + gfs2_trans_add_revoke(sdp, bd); 1043 + } else if (was_pinned) { 1044 + bh->b_private = NULL; 1045 + kmem_cache_free(gfs2_bufdata_cachep, bd); 1046 + } else if (!list_empty(&bd->bd_ail_st_list) && 1047 + !list_empty(&bd->bd_ail_gl_list)) { 1048 + gfs2_remove_from_ail(bd); 1049 + } 1050 + } 1051 + clear_buffer_dirty(bh); 1052 + clear_buffer_uptodate(bh); 1018 1053 } 1019 1054 1020 1055 /**
+1 -1
fs/gfs2/log.h
··· 37 37 38 38 void gfs2_ordered_del_inode(struct gfs2_inode *ip); 39 39 unsigned int gfs2_struct2blk(struct gfs2_sbd *sdp, unsigned int nstruct); 40 - void gfs2_remove_from_ail(struct gfs2_bufdata *bd); 41 40 bool gfs2_log_is_empty(struct gfs2_sbd *sdp); 42 41 void gfs2_log_release_revokes(struct gfs2_sbd *sdp, unsigned int revokes); 43 42 void gfs2_log_release(struct gfs2_sbd *sdp, unsigned int blks); ··· 47 48 void gfs2_write_log_header(struct gfs2_sbd *sdp, struct gfs2_jdesc *jd, 48 49 u64 seq, u32 tail, u32 lblock, u32 flags, 49 50 blk_opf_t op_flags); 51 + void gfs2_remove_from_journal(struct buffer_head *bh, int meta); 50 52 void gfs2_log_flush(struct gfs2_sbd *sdp, struct gfs2_glock *gl, 51 53 u32 type); 52 54 void gfs2_log_commit(struct gfs2_sbd *sdp, struct gfs2_trans *trans);
-35
fs/gfs2/meta_io.c
··· 338 338 return 0; 339 339 } 340 340 341 - void gfs2_remove_from_journal(struct buffer_head *bh, int meta) 342 - { 343 - struct address_space *mapping = bh->b_folio->mapping; 344 - struct gfs2_sbd *sdp = gfs2_mapping2sbd(mapping); 345 - struct gfs2_bufdata *bd = bh->b_private; 346 - struct gfs2_trans *tr = current->journal_info; 347 - int was_pinned = 0; 348 - 349 - if (test_clear_buffer_pinned(bh)) { 350 - trace_gfs2_pin(bd, 0); 351 - atomic_dec(&sdp->sd_log_pinned); 352 - list_del_init(&bd->bd_list); 353 - if (meta == REMOVE_META) 354 - tr->tr_num_buf_rm++; 355 - else 356 - tr->tr_num_databuf_rm++; 357 - set_bit(TR_TOUCHED, &tr->tr_flags); 358 - was_pinned = 1; 359 - brelse(bh); 360 - } 361 - if (bd) { 362 - if (bd->bd_tr) { 363 - gfs2_trans_add_revoke(sdp, bd); 364 - } else if (was_pinned) { 365 - bh->b_private = NULL; 366 - kmem_cache_free(gfs2_bufdata_cachep, bd); 367 - } else if (!list_empty(&bd->bd_ail_st_list) && 368 - !list_empty(&bd->bd_ail_gl_list)) { 369 - gfs2_remove_from_ail(bd); 370 - } 371 - } 372 - clear_buffer_dirty(bh); 373 - clear_buffer_uptodate(bh); 374 - } 375 - 376 341 /** 377 342 * gfs2_ail1_wipe - remove deleted/freed buffers from the ail1 list 378 343 * @sdp: superblock
-1
fs/gfs2/meta_io.h
··· 59 59 REMOVE_META = 1, 60 60 }; 61 61 62 - void gfs2_remove_from_journal(struct buffer_head *bh, int meta); 63 62 void gfs2_journal_wipe(struct gfs2_inode *ip, u64 bstart, u32 blen); 64 63 int gfs2_meta_buffer(struct gfs2_inode *ip, u32 mtype, u64 num, 65 64 struct buffer_head **bhp);