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

fs: Make wbc_to_tag() inline and use it in fs.

The logic in wbc_to_tag() is widely used in file systems, so modify this
function to be inline and use it in file systems.

This patch has only passed compilation tests, but it should be fine.

Signed-off-by: Julian Sun <sunjunchao@bytedance.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Christian Brauner <brauner@kernel.org>

authored by

Julian Sun and committed by
Christian Brauner
4952f35f 891bea75

+12 -27
+1 -4
fs/btrfs/extent_io.c
··· 2460 2460 &BTRFS_I(inode)->runtime_flags)) 2461 2461 wbc->tagged_writepages = 1; 2462 2462 2463 - if (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages) 2464 - tag = PAGECACHE_TAG_TOWRITE; 2465 - else 2466 - tag = PAGECACHE_TAG_DIRTY; 2463 + tag = wbc_to_tag(wbc); 2467 2464 retry: 2468 2465 if (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages) 2469 2466 tag_pages_for_writeback(mapping, index, end);
+1 -5
fs/ceph/addr.c
··· 1045 1045 ceph_wbc->index = ceph_wbc->start_index; 1046 1046 ceph_wbc->end = -1; 1047 1047 1048 - if (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages) { 1049 - ceph_wbc->tag = PAGECACHE_TAG_TOWRITE; 1050 - } else { 1051 - ceph_wbc->tag = PAGECACHE_TAG_DIRTY; 1052 - } 1048 + ceph_wbc->tag = wbc_to_tag(wbc); 1053 1049 1054 1050 ceph_wbc->op_idx = -1; 1055 1051 ceph_wbc->num_ops = 0;
+1 -4
fs/ext4/inode.c
··· 2619 2619 handle_t *handle = NULL; 2620 2620 int bpp = ext4_journal_blocks_per_folio(mpd->inode); 2621 2621 2622 - if (mpd->wbc->sync_mode == WB_SYNC_ALL || mpd->wbc->tagged_writepages) 2623 - tag = PAGECACHE_TAG_TOWRITE; 2624 - else 2625 - tag = PAGECACHE_TAG_DIRTY; 2622 + tag = wbc_to_tag(mpd->wbc); 2626 2623 2627 2624 mpd->map.m_len = 0; 2628 2625 mpd->next_pos = mpd->start_pos;
+1 -4
fs/f2fs/data.c
··· 2986 2986 if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX) 2987 2987 range_whole = 1; 2988 2988 } 2989 - if (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages) 2990 - tag = PAGECACHE_TAG_TOWRITE; 2991 - else 2992 - tag = PAGECACHE_TAG_DIRTY; 2989 + tag = wbc_to_tag(wbc); 2993 2990 retry: 2994 2991 retry = 0; 2995 2992 if (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages)
+1 -4
fs/gfs2/aops.c
··· 311 311 range_whole = 1; 312 312 cycled = 1; /* ignore range_cyclic tests */ 313 313 } 314 - if (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages) 315 - tag = PAGECACHE_TAG_TOWRITE; 316 - else 317 - tag = PAGECACHE_TAG_DIRTY; 314 + tag = wbc_to_tag(wbc); 318 315 319 316 retry: 320 317 if (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages)
+7
include/linux/writeback.h
··· 196 196 !(READ_ONCE(inode->i_state) & I_NEW)); 197 197 } 198 198 199 + static inline xa_mark_t wbc_to_tag(struct writeback_control *wbc) 200 + { 201 + if (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages) 202 + return PAGECACHE_TAG_TOWRITE; 203 + return PAGECACHE_TAG_DIRTY; 204 + } 205 + 199 206 #ifdef CONFIG_CGROUP_WRITEBACK 200 207 201 208 #include <linux/cgroup.h>
-6
mm/page-writeback.c
··· 2434 2434 return true; 2435 2435 } 2436 2436 2437 - static xa_mark_t wbc_to_tag(struct writeback_control *wbc) 2438 - { 2439 - if (wbc->sync_mode == WB_SYNC_ALL || wbc->tagged_writepages) 2440 - return PAGECACHE_TAG_TOWRITE; 2441 - return PAGECACHE_TAG_DIRTY; 2442 - } 2443 2437 2444 2438 static pgoff_t wbc_end(struct writeback_control *wbc) 2445 2439 {