lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <20240103095630.jdabiefig4wcyapu@quack3> Date: Wed, 3 Jan 2024 10:56:30 +0100 From: Jan Kara <jack@...e.cz> To: Zhang Yi <yi.zhang@...weicloud.com> Cc: linux-ext4@...r.kernel.org, linux-fsdevel@...r.kernel.org, tytso@....edu, adilger.kernel@...ger.ca, jack@...e.cz, ritesh.list@...il.com, hch@...radead.org, djwong@...nel.org, willy@...radead.org, yi.zhang@...wei.com, chengzhihao1@...wei.com, yukuai3@...wei.com, wangkefeng.wang@...wei.com Subject: Re: [RFC PATCH v2 01/25] ext4: refactor ext4_da_map_blocks() On Tue 02-01-24 20:38:54, Zhang Yi wrote: > From: Zhang Yi <yi.zhang@...wei.com> > > Refactor and cleanup ext4_da_map_blocks(), reduce some unnecessary > parameters and branches, no logic changes. > > Signed-off-by: Zhang Yi <yi.zhang@...wei.com> Looks good. Feel free to add: Reviewed-by: Jan Kara <jack@...e.cz> Honza > --- > fs/ext4/inode.c | 39 +++++++++++++++++---------------------- > 1 file changed, 17 insertions(+), 22 deletions(-) > > diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c > index 61277f7f8722..5b0d3075be12 100644 > --- a/fs/ext4/inode.c > +++ b/fs/ext4/inode.c > @@ -1704,7 +1704,6 @@ static int ext4_da_map_blocks(struct inode *inode, sector_t iblock, > /* Lookup extent status tree firstly */ > if (ext4_es_lookup_extent(inode, iblock, NULL, &es)) { > if (ext4_es_is_hole(&es)) { > - retval = 0; > down_read(&EXT4_I(inode)->i_data_sem); > goto add_delayed; > } > @@ -1749,26 +1748,9 @@ static int ext4_da_map_blocks(struct inode *inode, sector_t iblock, > retval = ext4_ext_map_blocks(NULL, inode, map, 0); > else > retval = ext4_ind_map_blocks(NULL, inode, map, 0); > - > -add_delayed: > - if (retval == 0) { > - int ret; > - > - /* > - * XXX: __block_prepare_write() unmaps passed block, > - * is it OK? > - */ > - > - ret = ext4_insert_delayed_block(inode, map->m_lblk); > - if (ret != 0) { > - retval = ret; > - goto out_unlock; > - } > - > - map_bh(bh, inode->i_sb, invalid_block); > - set_buffer_new(bh); > - set_buffer_delay(bh); > - } else if (retval > 0) { > + if (retval < 0) > + goto out_unlock; > + if (retval > 0) { > unsigned int status; > > if (unlikely(retval != map->m_len)) { > @@ -1783,11 +1765,24 @@ static int ext4_da_map_blocks(struct inode *inode, sector_t iblock, > EXTENT_STATUS_UNWRITTEN : EXTENT_STATUS_WRITTEN; > ext4_es_insert_extent(inode, map->m_lblk, map->m_len, > map->m_pblk, status); > + goto out_unlock; > } > > +add_delayed: > + /* > + * XXX: __block_prepare_write() unmaps passed block, > + * is it OK? > + */ > + retval = ext4_insert_delayed_block(inode, map->m_lblk); > + if (retval) > + goto out_unlock; > + > + map_bh(bh, inode->i_sb, invalid_block); > + set_buffer_new(bh); > + set_buffer_delay(bh); > + > out_unlock: > up_read((&EXT4_I(inode)->i_data_sem)); > - > return retval; > } > > -- > 2.39.2 > -- Jan Kara <jack@...e.com> SUSE Labs, CR
Powered by blists - more mailing lists