diff mbox series

[v1,2/5] fs/buffer.c: convert block_commit_write to return void

Message ID 20230618213250.694110-3-beanhuo@iokpp.de
State Superseded
Headers show
Series clean up block_commit_write | expand

Commit Message

Bean Huo June 18, 2023, 9:32 p.m. UTC
From: Bean Huo <beanhuo@micron.com>

block_commit_write() always returns 0, this patch changes it to
return void.

Signed-off-by: Bean Huo <beanhuo@micron.com>
---
 fs/buffer.c                 | 11 +++++------
 include/linux/buffer_head.h |  2 +-
 2 files changed, 6 insertions(+), 7 deletions(-)

Comments

kernel test robot June 18, 2023, 11:35 p.m. UTC | #1
Hi Bean,

kernel test robot noticed the following build errors:

[auto build test ERROR on tytso-ext4/dev]
[also build test ERROR on vfs-idmapping/for-next linus/master v6.4-rc6]
[cannot apply to akpm-mm/mm-everything next-20230616]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Bean-Huo/fs-buffer-clean-up-block_commit_write/20230619-053759
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git dev
patch link:    https://lore.kernel.org/r/20230618213250.694110-3-beanhuo%40iokpp.de
patch subject: [PATCH v1 2/5] fs/buffer.c: convert block_commit_write to return void
config: i386-defconfig (https://download.01.org/0day-ci/archive/20230619/202306190729.oETrBjGU-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20230619/202306190729.oETrBjGU-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202306190729.oETrBjGU-lkp@intel.com/

All errors (new ones prefixed by >>):

   fs/ext4/move_extent.c: In function 'move_extent_per_page':
>> fs/ext4/move_extent.c:399:22: error: void value not ignored as it ought to be
     399 |                 *err = block_commit_write(&folio[0]->page, from, from + replaced_size);
         |                      ^


vim +399 fs/ext4/move_extent.c

bb5574880574fe Dmitry Monakhov       2012-09-26  234  
748de6736c1e48 Akira Fujita          2009-06-17  235  /**
748de6736c1e48 Akira Fujita          2009-06-17  236   * move_extent_per_page - Move extent data per page
748de6736c1e48 Akira Fujita          2009-06-17  237   *
748de6736c1e48 Akira Fujita          2009-06-17  238   * @o_filp:			file structure of original file
748de6736c1e48 Akira Fujita          2009-06-17  239   * @donor_inode:		donor inode
748de6736c1e48 Akira Fujita          2009-06-17  240   * @orig_page_offset:		page index on original file
65dd8327eb055a Xiaoguang Wang        2014-10-11  241   * @donor_page_offset:		page index on donor file
748de6736c1e48 Akira Fujita          2009-06-17  242   * @data_offset_in_page:	block index where data swapping starts
748de6736c1e48 Akira Fujita          2009-06-17  243   * @block_len_in_page:		the number of blocks to be swapped
556615dcbf38b0 Lukas Czerner         2014-04-20  244   * @unwritten:			orig extent is unwritten or not
f868a48d06f888 Akira Fujita          2009-11-23  245   * @err:			pointer to save return value
748de6736c1e48 Akira Fujita          2009-06-17  246   *
748de6736c1e48 Akira Fujita          2009-06-17  247   * Save the data in original inode blocks and replace original inode extents
65dd8327eb055a Xiaoguang Wang        2014-10-11  248   * with donor inode extents by calling ext4_swap_extents().
f868a48d06f888 Akira Fujita          2009-11-23  249   * Finally, write out the saved data in new original inode blocks. Return
f868a48d06f888 Akira Fujita          2009-11-23  250   * replaced block count.
748de6736c1e48 Akira Fujita          2009-06-17  251   */
748de6736c1e48 Akira Fujita          2009-06-17  252  static int
44fc48f7048ab9 Akira Fujita          2009-09-05  253  move_extent_per_page(struct file *o_filp, struct inode *donor_inode,
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  254  		     pgoff_t orig_page_offset, pgoff_t donor_page_offset,
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  255  		     int data_offset_in_page,
556615dcbf38b0 Lukas Czerner         2014-04-20  256  		     int block_len_in_page, int unwritten, int *err)
748de6736c1e48 Akira Fujita          2009-06-17  257  {
496ad9aa8ef448 Al Viro               2013-01-23  258  	struct inode *orig_inode = file_inode(o_filp);
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  259) 	struct folio *folio[2] = {NULL, NULL};
748de6736c1e48 Akira Fujita          2009-06-17  260  	handle_t *handle;
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  261  	ext4_lblk_t orig_blk_offset, donor_blk_offset;
748de6736c1e48 Akira Fujita          2009-06-17  262  	unsigned long blocksize = orig_inode->i_sb->s_blocksize;
f868a48d06f888 Akira Fujita          2009-11-23  263  	unsigned int tmp_data_size, data_size, replaced_size;
bcff24887d00bc Eryu Guan             2016-02-12  264  	int i, err2, jblocks, retries = 0;
f868a48d06f888 Akira Fujita          2009-11-23  265  	int replaced_count = 0;
bb5574880574fe Dmitry Monakhov       2012-09-26  266  	int from = data_offset_in_page << orig_inode->i_blkbits;
09cbfeaf1a5a67 Kirill A. Shutemov    2016-04-01  267  	int blocks_per_page = PAGE_SIZE >> orig_inode->i_blkbits;
88c6b61ff1cfb4 Dmitry Monakhov       2014-11-05  268  	struct super_block *sb = orig_inode->i_sb;
bcff24887d00bc Eryu Guan             2016-02-12  269  	struct buffer_head *bh = NULL;
748de6736c1e48 Akira Fujita          2009-06-17  270  
748de6736c1e48 Akira Fujita          2009-06-17  271  	/*
748de6736c1e48 Akira Fujita          2009-06-17  272  	 * It needs twice the amount of ordinary journal buffers because
748de6736c1e48 Akira Fujita          2009-06-17  273  	 * inode and donor_inode may change each different metadata blocks.
748de6736c1e48 Akira Fujita          2009-06-17  274  	 */
bb5574880574fe Dmitry Monakhov       2012-09-26  275  again:
bb5574880574fe Dmitry Monakhov       2012-09-26  276  	*err = 0;
748de6736c1e48 Akira Fujita          2009-06-17  277  	jblocks = ext4_writepage_trans_blocks(orig_inode) * 2;
9924a92a8c2175 Theodore Ts'o         2013-02-08  278  	handle = ext4_journal_start(orig_inode, EXT4_HT_MOVE_EXTENTS, jblocks);
748de6736c1e48 Akira Fujita          2009-06-17  279  	if (IS_ERR(handle)) {
f868a48d06f888 Akira Fujita          2009-11-23  280  		*err = PTR_ERR(handle);
f868a48d06f888 Akira Fujita          2009-11-23  281  		return 0;
748de6736c1e48 Akira Fujita          2009-06-17  282  	}
748de6736c1e48 Akira Fujita          2009-06-17  283  
748de6736c1e48 Akira Fujita          2009-06-17  284  	orig_blk_offset = orig_page_offset * blocks_per_page +
748de6736c1e48 Akira Fujita          2009-06-17  285  		data_offset_in_page;
748de6736c1e48 Akira Fujita          2009-06-17  286  
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  287  	donor_blk_offset = donor_page_offset * blocks_per_page +
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  288  		data_offset_in_page;
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  289  
f868a48d06f888 Akira Fujita          2009-11-23  290  	/* Calculate data_size */
748de6736c1e48 Akira Fujita          2009-06-17  291  	if ((orig_blk_offset + block_len_in_page - 1) ==
748de6736c1e48 Akira Fujita          2009-06-17  292  	    ((orig_inode->i_size - 1) >> orig_inode->i_blkbits)) {
748de6736c1e48 Akira Fujita          2009-06-17  293  		/* Replace the last block */
f868a48d06f888 Akira Fujita          2009-11-23  294  		tmp_data_size = orig_inode->i_size & (blocksize - 1);
748de6736c1e48 Akira Fujita          2009-06-17  295  		/*
f868a48d06f888 Akira Fujita          2009-11-23  296  		 * If data_size equal zero, it shows data_size is multiples of
748de6736c1e48 Akira Fujita          2009-06-17  297  		 * blocksize. So we set appropriate value.
748de6736c1e48 Akira Fujita          2009-06-17  298  		 */
f868a48d06f888 Akira Fujita          2009-11-23  299  		if (tmp_data_size == 0)
f868a48d06f888 Akira Fujita          2009-11-23  300  			tmp_data_size = blocksize;
748de6736c1e48 Akira Fujita          2009-06-17  301  
f868a48d06f888 Akira Fujita          2009-11-23  302  		data_size = tmp_data_size +
748de6736c1e48 Akira Fujita          2009-06-17  303  			((block_len_in_page - 1) << orig_inode->i_blkbits);
f868a48d06f888 Akira Fujita          2009-11-23  304  	} else
f868a48d06f888 Akira Fujita          2009-11-23  305  		data_size = block_len_in_page << orig_inode->i_blkbits;
f868a48d06f888 Akira Fujita          2009-11-23  306  
f868a48d06f888 Akira Fujita          2009-11-23  307  	replaced_size = data_size;
748de6736c1e48 Akira Fujita          2009-06-17  308  
e8dfc854eef20a Vishal Moola (Oracle  2022-12-07  309) 	*err = mext_folio_double_lock(orig_inode, donor_inode, orig_page_offset,
e8dfc854eef20a Vishal Moola (Oracle  2022-12-07  310) 				     donor_page_offset, folio);
f868a48d06f888 Akira Fujita          2009-11-23  311  	if (unlikely(*err < 0))
bb5574880574fe Dmitry Monakhov       2012-09-26  312  		goto stop_journal;
8c854473917354 Dmitry Monakhov       2012-09-26  313  	/*
556615dcbf38b0 Lukas Czerner         2014-04-20  314  	 * If orig extent was unwritten it can become initialized
8c854473917354 Dmitry Monakhov       2012-09-26  315  	 * at any time after i_data_sem was dropped, in order to
8c854473917354 Dmitry Monakhov       2012-09-26  316  	 * serialize with delalloc we have recheck extent while we
8c854473917354 Dmitry Monakhov       2012-09-26  317  	 * hold page's lock, if it is still the case data copy is not
8c854473917354 Dmitry Monakhov       2012-09-26  318  	 * necessary, just swap data blocks between orig and donor.
8c854473917354 Dmitry Monakhov       2012-09-26  319  	 */
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  320) 
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  321) 	VM_BUG_ON_FOLIO(folio_test_large(folio[0]), folio[0]);
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  322) 	VM_BUG_ON_FOLIO(folio_test_large(folio[1]), folio[1]);
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  323) 	VM_BUG_ON_FOLIO(folio_nr_pages(folio[0]) != folio_nr_pages(folio[1]), folio[1]);
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  324) 
556615dcbf38b0 Lukas Czerner         2014-04-20  325  	if (unwritten) {
393d1d1d769338 Dr. Tilmann Bubeck    2013-04-08  326  		ext4_double_down_write_data_sem(orig_inode, donor_inode);
8c854473917354 Dmitry Monakhov       2012-09-26  327  		/* If any of extents in range became initialized we have to
8c854473917354 Dmitry Monakhov       2012-09-26  328  		 * fallback to data copying */
556615dcbf38b0 Lukas Czerner         2014-04-20  329  		unwritten = mext_check_coverage(orig_inode, orig_blk_offset,
8c854473917354 Dmitry Monakhov       2012-09-26  330  						block_len_in_page, 1, err);
8c854473917354 Dmitry Monakhov       2012-09-26  331  		if (*err)
8c854473917354 Dmitry Monakhov       2012-09-26  332  			goto drop_data_sem;
8c854473917354 Dmitry Monakhov       2012-09-26  333  
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  334  		unwritten &= mext_check_coverage(donor_inode, donor_blk_offset,
8c854473917354 Dmitry Monakhov       2012-09-26  335  						 block_len_in_page, 1, err);
8c854473917354 Dmitry Monakhov       2012-09-26  336  		if (*err)
8c854473917354 Dmitry Monakhov       2012-09-26  337  			goto drop_data_sem;
748de6736c1e48 Akira Fujita          2009-06-17  338  
556615dcbf38b0 Lukas Czerner         2014-04-20  339  		if (!unwritten) {
393d1d1d769338 Dr. Tilmann Bubeck    2013-04-08  340  			ext4_double_up_write_data_sem(orig_inode, donor_inode);
8c854473917354 Dmitry Monakhov       2012-09-26  341  			goto data_copy;
8c854473917354 Dmitry Monakhov       2012-09-26  342  		}
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  343) 		if ((folio_has_private(folio[0]) &&
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  344) 		     !filemap_release_folio(folio[0], 0)) ||
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  345) 		    (folio_has_private(folio[1]) &&
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  346) 		     !filemap_release_folio(folio[1], 0))) {
8c854473917354 Dmitry Monakhov       2012-09-26  347  			*err = -EBUSY;
8c854473917354 Dmitry Monakhov       2012-09-26  348  			goto drop_data_sem;
8c854473917354 Dmitry Monakhov       2012-09-26  349  		}
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  350  		replaced_count = ext4_swap_extents(handle, orig_inode,
8c854473917354 Dmitry Monakhov       2012-09-26  351  						   donor_inode, orig_blk_offset,
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  352  						   donor_blk_offset,
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  353  						   block_len_in_page, 1, err);
8c854473917354 Dmitry Monakhov       2012-09-26  354  	drop_data_sem:
393d1d1d769338 Dr. Tilmann Bubeck    2013-04-08  355  		ext4_double_up_write_data_sem(orig_inode, donor_inode);
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  356) 		goto unlock_folios;
8c854473917354 Dmitry Monakhov       2012-09-26  357  	}
8c854473917354 Dmitry Monakhov       2012-09-26  358  data_copy:
3060b6ef05603c Matthew Wilcox        2023-03-24  359  	*err = mext_page_mkuptodate(folio[0], from, from + replaced_size);
bb5574880574fe Dmitry Monakhov       2012-09-26  360  	if (*err)
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  361) 		goto unlock_folios;
748de6736c1e48 Akira Fujita          2009-06-17  362  
bb5574880574fe Dmitry Monakhov       2012-09-26  363  	/* At this point all buffers in range are uptodate, old mapping layout
bb5574880574fe Dmitry Monakhov       2012-09-26  364  	 * is no longer required, try to drop it now. */
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  365) 	if ((folio_has_private(folio[0]) &&
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  366) 		!filemap_release_folio(folio[0], 0)) ||
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  367) 	    (folio_has_private(folio[1]) &&
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  368) 		!filemap_release_folio(folio[1], 0))) {
bb5574880574fe Dmitry Monakhov       2012-09-26  369  		*err = -EBUSY;
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  370) 		goto unlock_folios;
bb5574880574fe Dmitry Monakhov       2012-09-26  371  	}
6e2631463f3a2c Dmitry Monakhov       2014-07-27  372  	ext4_double_down_write_data_sem(orig_inode, donor_inode);
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  373  	replaced_count = ext4_swap_extents(handle, orig_inode, donor_inode,
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  374  					       orig_blk_offset, donor_blk_offset,
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  375  					   block_len_in_page, 1, err);
6e2631463f3a2c Dmitry Monakhov       2014-07-27  376  	ext4_double_up_write_data_sem(orig_inode, donor_inode);
bb5574880574fe Dmitry Monakhov       2012-09-26  377  	if (*err) {
f868a48d06f888 Akira Fujita          2009-11-23  378  		if (replaced_count) {
f868a48d06f888 Akira Fujita          2009-11-23  379  			block_len_in_page = replaced_count;
f868a48d06f888 Akira Fujita          2009-11-23  380  			replaced_size =
f868a48d06f888 Akira Fujita          2009-11-23  381  				block_len_in_page << orig_inode->i_blkbits;
ac48b0a1d06888 Akira Fujita          2009-11-24  382  		} else
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  383) 			goto unlock_folios;
748de6736c1e48 Akira Fujita          2009-06-17  384  	}
bb5574880574fe Dmitry Monakhov       2012-09-26  385  	/* Perform all necessary steps similar write_begin()/write_end()
bb5574880574fe Dmitry Monakhov       2012-09-26  386  	 * but keeping in mind that i_size will not change */
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  387) 	if (!folio_buffers(folio[0]))
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  388) 		create_empty_buffers(&folio[0]->page, 1 << orig_inode->i_blkbits, 0);
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  389) 	bh = folio_buffers(folio[0]);
bcff24887d00bc Eryu Guan             2016-02-12  390  	for (i = 0; i < data_offset_in_page; i++)
bcff24887d00bc Eryu Guan             2016-02-12  391  		bh = bh->b_this_page;
bcff24887d00bc Eryu Guan             2016-02-12  392  	for (i = 0; i < block_len_in_page; i++) {
bcff24887d00bc Eryu Guan             2016-02-12  393  		*err = ext4_get_block(orig_inode, orig_blk_offset + i, bh, 0);
bcff24887d00bc Eryu Guan             2016-02-12  394  		if (*err < 0)
bcff24887d00bc Eryu Guan             2016-02-12  395  			break;
6ffe77bad545f4 Eryu Guan             2016-02-21  396  		bh = bh->b_this_page;
bcff24887d00bc Eryu Guan             2016-02-12  397  	}
bb5574880574fe Dmitry Monakhov       2012-09-26  398  	if (!*err)
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17 @399) 		*err = block_commit_write(&folio[0]->page, from, from + replaced_size);
748de6736c1e48 Akira Fujita          2009-06-17  400  
bb5574880574fe Dmitry Monakhov       2012-09-26  401  	if (unlikely(*err < 0))
bb5574880574fe Dmitry Monakhov       2012-09-26  402  		goto repair_branches;
bb5574880574fe Dmitry Monakhov       2012-09-26  403  
bb5574880574fe Dmitry Monakhov       2012-09-26  404  	/* Even in case of data=writeback it is reasonable to pin
bb5574880574fe Dmitry Monakhov       2012-09-26  405  	 * inode to transaction, to prevent unexpected data loss */
73131fbb003b36 Ross Zwisler          2019-06-20  406  	*err = ext4_jbd2_inode_add_write(handle, orig_inode,
73131fbb003b36 Ross Zwisler          2019-06-20  407  			(loff_t)orig_page_offset << PAGE_SHIFT, replaced_size);
bb5574880574fe Dmitry Monakhov       2012-09-26  408  
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  409) unlock_folios:
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  410) 	folio_unlock(folio[0]);
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  411) 	folio_put(folio[0]);
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  412) 	folio_unlock(folio[1]);
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  413) 	folio_put(folio[1]);
bb5574880574fe Dmitry Monakhov       2012-09-26  414  stop_journal:
748de6736c1e48 Akira Fujita          2009-06-17  415  	ext4_journal_stop(handle);
88c6b61ff1cfb4 Dmitry Monakhov       2014-11-05  416  	if (*err == -ENOSPC &&
88c6b61ff1cfb4 Dmitry Monakhov       2014-11-05  417  	    ext4_should_retry_alloc(sb, &retries))
88c6b61ff1cfb4 Dmitry Monakhov       2014-11-05  418  		goto again;
bb5574880574fe Dmitry Monakhov       2012-09-26  419  	/* Buffer was busy because probably is pinned to journal transaction,
bb5574880574fe Dmitry Monakhov       2012-09-26  420  	 * force transaction commit may help to free it. */
88c6b61ff1cfb4 Dmitry Monakhov       2014-11-05  421  	if (*err == -EBUSY && retries++ < 4 && EXT4_SB(sb)->s_journal &&
88c6b61ff1cfb4 Dmitry Monakhov       2014-11-05  422  	    jbd2_journal_force_commit_nested(EXT4_SB(sb)->s_journal))
bb5574880574fe Dmitry Monakhov       2012-09-26  423  		goto again;
f868a48d06f888 Akira Fujita          2009-11-23  424  	return replaced_count;
bb5574880574fe Dmitry Monakhov       2012-09-26  425  
bb5574880574fe Dmitry Monakhov       2012-09-26  426  repair_branches:
bb5574880574fe Dmitry Monakhov       2012-09-26  427  	/*
bb5574880574fe Dmitry Monakhov       2012-09-26  428  	 * This should never ever happen!
bb5574880574fe Dmitry Monakhov       2012-09-26  429  	 * Extents are swapped already, but we are not able to copy data.
bb5574880574fe Dmitry Monakhov       2012-09-26  430  	 * Try to swap extents to it's original places
bb5574880574fe Dmitry Monakhov       2012-09-26  431  	 */
393d1d1d769338 Dr. Tilmann Bubeck    2013-04-08  432  	ext4_double_down_write_data_sem(orig_inode, donor_inode);
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  433  	replaced_count = ext4_swap_extents(handle, donor_inode, orig_inode,
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  434  					       orig_blk_offset, donor_blk_offset,
fcf6b1b729bcd2 Dmitry Monakhov       2014-08-30  435  					   block_len_in_page, 0, &err2);
393d1d1d769338 Dr. Tilmann Bubeck    2013-04-08  436  	ext4_double_up_write_data_sem(orig_inode, donor_inode);
bb5574880574fe Dmitry Monakhov       2012-09-26  437  	if (replaced_count != block_len_in_page) {
54d3adbc29f0c7 Theodore Ts'o         2020-03-28  438  		ext4_error_inode_block(orig_inode, (sector_t)(orig_blk_offset),
54d3adbc29f0c7 Theodore Ts'o         2020-03-28  439  				       EIO, "Unable to copy data block,"
bb5574880574fe Dmitry Monakhov       2012-09-26  440  				       " data will be lost.");
bb5574880574fe Dmitry Monakhov       2012-09-26  441  		*err = -EIO;
bb5574880574fe Dmitry Monakhov       2012-09-26  442  	}
bb5574880574fe Dmitry Monakhov       2012-09-26  443  	replaced_count = 0;
6dd8fe86fa8472 Vishal Moola (Oracle  2022-11-17  444) 	goto unlock_folios;
748de6736c1e48 Akira Fujita          2009-06-17  445  }
748de6736c1e48 Akira Fujita          2009-06-17  446
Jan Kara June 19, 2023, 9:56 a.m. UTC | #2
On Sun 18-06-23 23:32:47, Bean Huo wrote:
> From: Bean Huo <beanhuo@micron.com>
> 
> block_commit_write() always returns 0, this patch changes it to
> return void.
> 
> Signed-off-by: Bean Huo <beanhuo@micron.com>

Looks good to me but you'll need to reorder this patch at the end of the
patch series to avoid breaking compilation in the middle of the series.
Otherwise feel free to add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> ---
>  fs/buffer.c                 | 11 +++++------
>  include/linux/buffer_head.h |  2 +-
>  2 files changed, 6 insertions(+), 7 deletions(-)
> 
> diff --git a/fs/buffer.c b/fs/buffer.c
> index b88bb7ec38be..fa09cf94f771 100644
> --- a/fs/buffer.c
> +++ b/fs/buffer.c
> @@ -2116,7 +2116,7 @@ int __block_write_begin(struct page *page, loff_t pos, unsigned len,
>  }
>  EXPORT_SYMBOL(__block_write_begin);
>  
> -int block_commit_write(struct page *page, unsigned int from, unsigned int to)
> +void block_commit_write(struct page *page, unsigned int from, unsigned int to)
>  {
>  	unsigned block_start, block_end;
>  	int partial = 0;
> @@ -2151,7 +2151,6 @@ int block_commit_write(struct page *page, unsigned int from, unsigned int to)
>  	 */
>  	if (!partial)
>  		SetPageUptodate(page);
> -	return 0;
>  }
>  EXPORT_SYMBOL(block_commit_write);
>  
> @@ -2577,11 +2576,11 @@ int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
>  		end = PAGE_SIZE;
>  
>  	ret = __block_write_begin(page, 0, end, get_block);
> -	if (!ret)
> -		ret = block_commit_write(page, 0, end);
> -
> -	if (unlikely(ret < 0))
> +	if (unlikely(ret))
>  		goto out_unlock;
> +
> +	block_commit_write(page, 0, end);
> +
>  	set_page_dirty(page);
>  	wait_for_stable_page(page);
>  	return 0;
> diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
> index 1520793c72da..873653d2f1aa 100644
> --- a/include/linux/buffer_head.h
> +++ b/include/linux/buffer_head.h
> @@ -284,7 +284,7 @@ int cont_write_begin(struct file *, struct address_space *, loff_t,
>  			unsigned, struct page **, void **,
>  			get_block_t *, loff_t *);
>  int generic_cont_expand_simple(struct inode *inode, loff_t size);
> -int block_commit_write(struct page *page, unsigned from, unsigned to);
> +void block_commit_write(struct page *page, unsigned int from, unsigned int to);
>  int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
>  				get_block_t get_block);
>  /* Convert errno to return value from ->page_mkwrite() call */
> -- 
> 2.34.1
>
Bean Huo June 19, 2023, 10:42 a.m. UTC | #3
On Mon, 2023-06-19 at 11:56 +0200, Jan Kara wrote:
> Looks good to me but you'll need to reorder this patch at the end of
> the
> patch series to avoid breaking compilation in the middle of the
> series.
> Otherwise feel free to add:
> 
> Reviewed-by: Jan Kara <jack@suse.cz>
> 
>                                                                 Honza
thanks Jan, I will reorder it in the v2.

Kind regards,
Bean
diff mbox series

Patch

diff --git a/fs/buffer.c b/fs/buffer.c
index b88bb7ec38be..fa09cf94f771 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -2116,7 +2116,7 @@  int __block_write_begin(struct page *page, loff_t pos, unsigned len,
 }
 EXPORT_SYMBOL(__block_write_begin);
 
-int block_commit_write(struct page *page, unsigned int from, unsigned int to)
+void block_commit_write(struct page *page, unsigned int from, unsigned int to)
 {
 	unsigned block_start, block_end;
 	int partial = 0;
@@ -2151,7 +2151,6 @@  int block_commit_write(struct page *page, unsigned int from, unsigned int to)
 	 */
 	if (!partial)
 		SetPageUptodate(page);
-	return 0;
 }
 EXPORT_SYMBOL(block_commit_write);
 
@@ -2577,11 +2576,11 @@  int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
 		end = PAGE_SIZE;
 
 	ret = __block_write_begin(page, 0, end, get_block);
-	if (!ret)
-		ret = block_commit_write(page, 0, end);
-
-	if (unlikely(ret < 0))
+	if (unlikely(ret))
 		goto out_unlock;
+
+	block_commit_write(page, 0, end);
+
 	set_page_dirty(page);
 	wait_for_stable_page(page);
 	return 0;
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
index 1520793c72da..873653d2f1aa 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -284,7 +284,7 @@  int cont_write_begin(struct file *, struct address_space *, loff_t,
 			unsigned, struct page **, void **,
 			get_block_t *, loff_t *);
 int generic_cont_expand_simple(struct inode *inode, loff_t size);
-int block_commit_write(struct page *page, unsigned from, unsigned to);
+void block_commit_write(struct page *page, unsigned int from, unsigned int to);
 int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf,
 				get_block_t get_block);
 /* Convert errno to return value from ->page_mkwrite() call */