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

jbd2,ocfs2: move jbd2_journal_submit_inode_data_buffers to ocfs2

jbd2_journal_submit_inode_data_buffers is only used by ocfs2, so move it
there to prepare for removing generic_writepages.

Link: https://lkml.kernel.org/r/20221229161031.391878-5-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Cc: Jan Kara <jack@suse.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Joseph Qi <joseph.qi@linux.alibaba.com>
Cc: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Cc: Mark Fasheh <mark@fasheh.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

Christoph Hellwig and committed by
Andrew Morton
cff61bbc 25a89826

+15 -29
-25
fs/jbd2/commit.c
··· 177 177 return ret; 178 178 } 179 179 180 - /* 181 - * write the filemap data using writepage() address_space_operations. 182 - * We don't do block allocation here even for delalloc. We don't 183 - * use writepages() because with delayed allocation we may be doing 184 - * block allocation in writepages(). 185 - */ 186 - int jbd2_journal_submit_inode_data_buffers(struct jbd2_inode *jinode) 187 - { 188 - struct address_space *mapping = jinode->i_vfs_inode->i_mapping; 189 - struct writeback_control wbc = { 190 - .sync_mode = WB_SYNC_ALL, 191 - .nr_to_write = mapping->nrpages * 2, 192 - .range_start = jinode->i_dirty_start, 193 - .range_end = jinode->i_dirty_end, 194 - }; 195 - 196 - /* 197 - * submit the inode data buffers. We use writepage 198 - * instead of writepages. Because writepages can do 199 - * block allocation with delalloc. We need to write 200 - * only allocated blocks here. 201 - */ 202 - return generic_writepages(mapping, &wbc); 203 - } 204 - 205 180 /* Send all the data buffers related to an inode */ 206 181 int jbd2_submit_inode_data(journal_t *journal, struct jbd2_inode *jinode) 207 182 {
-1
fs/jbd2/journal.c
··· 89 89 EXPORT_SYMBOL(jbd2_journal_force_commit); 90 90 EXPORT_SYMBOL(jbd2_journal_inode_ranged_write); 91 91 EXPORT_SYMBOL(jbd2_journal_inode_ranged_wait); 92 - EXPORT_SYMBOL(jbd2_journal_submit_inode_data_buffers); 93 92 EXPORT_SYMBOL(jbd2_journal_finish_inode_data_buffers); 94 93 EXPORT_SYMBOL(jbd2_journal_init_jbd_inode); 95 94 EXPORT_SYMBOL(jbd2_journal_release_jbd_inode);
+15 -1
fs/ocfs2/journal.c
··· 15 15 #include <linux/time.h> 16 16 #include <linux/random.h> 17 17 #include <linux/delay.h> 18 + #include <linux/writeback.h> 18 19 19 20 #include <cluster/masklog.h> 20 21 ··· 842 841 return status; 843 842 } 844 843 844 + static int ocfs2_journal_submit_inode_data_buffers(struct jbd2_inode *jinode) 845 + { 846 + struct address_space *mapping = jinode->i_vfs_inode->i_mapping; 847 + struct writeback_control wbc = { 848 + .sync_mode = WB_SYNC_ALL, 849 + .nr_to_write = mapping->nrpages * 2, 850 + .range_start = jinode->i_dirty_start, 851 + .range_end = jinode->i_dirty_end, 852 + }; 853 + 854 + return generic_writepages(mapping, &wbc); 855 + } 856 + 845 857 int ocfs2_journal_init(struct ocfs2_super *osb, int *dirty) 846 858 { 847 859 int status = -1; ··· 924 910 925 911 journal->j_journal = j_journal; 926 912 journal->j_journal->j_submit_inode_data_buffers = 927 - jbd2_journal_submit_inode_data_buffers; 913 + ocfs2_journal_submit_inode_data_buffers; 928 914 journal->j_journal->j_finish_inode_data_buffers = 929 915 jbd2_journal_finish_inode_data_buffers; 930 916 journal->j_inode = inode;
-2
include/linux/jbd2.h
··· 1570 1570 extern int jbd2_journal_inode_ranged_wait(handle_t *handle, 1571 1571 struct jbd2_inode *inode, loff_t start_byte, 1572 1572 loff_t length); 1573 - extern int jbd2_journal_submit_inode_data_buffers( 1574 - struct jbd2_inode *jinode); 1575 1573 extern int jbd2_journal_finish_inode_data_buffers( 1576 1574 struct jbd2_inode *jinode); 1577 1575 extern int jbd2_journal_begin_ordered_truncate(journal_t *journal,