Messages in this thread | | | Date | Mon, 24 Aug 2020 15:15:30 +0300 | From | Dan Carpenter <> | Subject | Re: [PATCHv2 1/3] ext4: Refactor ext4_overwrite_io() to take ext4_map_blocks as argument |
| |
Hi Ritesh,
I love your patch! Perhaps something to improve:
[auto build test WARNING on v5.9-rc1] [cannot apply to ext4/dev next-20200821] [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]
url: https://github.com/0day-ci/linux/commits/Ritesh-Harjani/Optimize-ext4-DAX-overwrites/20200822-193615 base: 9123e3a74ec7b934a4a099e98af6a61c2f80bbf5 config: i386-randconfig-m021-20200822 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings: fs/ext4/file.c:194 ext4_overwrite_io() warn: should '(map->m_lblk + map->m_len) << blkbits' be a 64 bit type?
Old smatch warnings: include/linux/fs.h:867 i_size_write() warn: statement has no effect 31 fs/ext4/file.c:585 ext4_dio_write_iter() warn: inconsistent returns 'inode->i_rwsem'.
# https://github.com/0day-ci/linux/commit/5d171d1d87ee0aca0a992b6843d154b41466e5e5 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Ritesh-Harjani/Optimize-ext4-DAX-overwrites/20200822-193615 git checkout 5d171d1d87ee0aca0a992b6843d154b41466e5e5 vim +194 fs/ext4/file.c
e9e3bcecf44c04 Eric Sandeen 2011-02-12 189 213bcd9ccbf04b Jan Kara 2016-11-20 190 /* Is IO overwriting allocated and initialized blocks? */ 5d171d1d87ee0a Ritesh Harjani 2020-08-22 191 static bool ext4_overwrite_io(struct inode *inode, struct ext4_map_blocks *map) 213bcd9ccbf04b Jan Kara 2016-11-20 192 { 213bcd9ccbf04b Jan Kara 2016-11-20 193 unsigned int blkbits = inode->i_blkbits; 5d171d1d87ee0a Ritesh Harjani 2020-08-22 @194 loff_t end = (map->m_lblk + map->m_len) << blkbits; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ potential shift wrap?
5d171d1d87ee0a Ritesh Harjani 2020-08-22 195 int err, blklen = map->m_len; 213bcd9ccbf04b Jan Kara 2016-11-20 196 5d171d1d87ee0a Ritesh Harjani 2020-08-22 197 if (end > i_size_read(inode)) 213bcd9ccbf04b Jan Kara 2016-11-20 198 return false; 213bcd9ccbf04b Jan Kara 2016-11-20 199 5d171d1d87ee0a Ritesh Harjani 2020-08-22 200 err = ext4_map_blocks(NULL, inode, map, 0); 213bcd9ccbf04b Jan Kara 2016-11-20 201 /* 213bcd9ccbf04b Jan Kara 2016-11-20 202 * 'err==len' means that all of the blocks have been preallocated, 213bcd9ccbf04b Jan Kara 2016-11-20 203 * regardless of whether they have been initialized or not. To exclude 213bcd9ccbf04b Jan Kara 2016-11-20 204 * unwritten extents, we need to check m_flags. 213bcd9ccbf04b Jan Kara 2016-11-20 205 */ 5d171d1d87ee0a Ritesh Harjani 2020-08-22 206 return err == blklen && (map->m_flags & EXT4_MAP_MAPPED); 213bcd9ccbf04b Jan Kara 2016-11-20 207 } 213bcd9ccbf04b Jan Kara 2016-11-20 208
--- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [unhandled content-type:application/gzip] | |