All of lore.kernel.org
 help / color / mirror / Atom feed
* [hch-xfs:xfs-zoned 36/65] fs/iomap/buffered-io.c:2127 iomap_rewrite_range() error: uninitialized symbol 'folio_end'.
@ 2023-11-27  8:17 Dan Carpenter
  2023-11-27  9:27 ` Christoph Hellwig
  0 siblings, 1 reply; 3+ messages in thread
From: Dan Carpenter @ 2023-11-27  8:17 UTC (permalink / raw)
  To: oe-kbuild, Christoph Hellwig; +Cc: lkp, oe-kbuild-all

tree:   git://git.infradead.org/users/hch/xfs xfs-zoned
head:   f5b3c0ffa575a5035e6d607b616c05638ed48937
commit: cc4a639e3052fefb385f63a0db5dfe07db4e9d58 [36/65] iomap: add a iomap_rewrite_range helper
config: x86_64-randconfig-161-20231125 (https://download.01.org/0day-ci/archive/20231125/202311252130.sO3YytsF-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231125/202311252130.sO3YytsF-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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202311252130.sO3YytsF-lkp@intel.com/

New smatch warnings:
fs/iomap/buffered-io.c:2127 iomap_rewrite_range() error: uninitialized symbol 'folio_end'.

vim +/folio_end +2127 fs/iomap/buffered-io.c

cc4a639e3052fe Christoph Hellwig 2023-11-24  2075  int
cc4a639e3052fe Christoph Hellwig 2023-11-24  2076  iomap_rewrite_range(struct address_space *mapping, loff_t pos, size_t len,
cc4a639e3052fe Christoph Hellwig 2023-11-24  2077  		struct iomap_writepage_ctx *wpc)
cc4a639e3052fe Christoph Hellwig 2023-11-24  2078  {
cc4a639e3052fe Christoph Hellwig 2023-11-24  2079  	struct inode *inode = mapping->host;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2080  	u64 end_pos = pos + len;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2081  	int error = 0;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2082  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2083  	inode_attach_wb(inode, NULL);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2084  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2085  	while (pos < end_pos) {
cc4a639e3052fe Christoph Hellwig 2023-11-24  2086  		struct folio *folio;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2087  		unsigned count = 0;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2088  		u64 folio_end;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2089  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2090  		folio = iomap_read_mapping_page(mapping, pos, end_pos);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2091  		if (IS_ERR(folio)) {
cc4a639e3052fe Christoph Hellwig 2023-11-24  2092  			error = PTR_ERR(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2093  			break;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2094  		}
cc4a639e3052fe Christoph Hellwig 2023-11-24  2095  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2096  		folio_lock(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2097  		if (folio->mapping != mapping) {
cc4a639e3052fe Christoph Hellwig 2023-11-24  2098  			folio_unlock(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2099  			goto folio_put;

folio_end not initialize here.  error is zero.

cc4a639e3052fe Christoph Hellwig 2023-11-24  2100  		}
cc4a639e3052fe Christoph Hellwig 2023-11-24  2101  		folio_end = folio_pos(folio) + folio_size(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2102  		len = min(folio_end, end_pos) - pos;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2103  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2104  		folio_wait_writeback(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2105  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2106  		/*
cc4a639e3052fe Christoph Hellwig 2023-11-24  2107  		 * If we're writing out the whole folio, clear the dirty bit.
cc4a639e3052fe Christoph Hellwig 2023-11-24  2108  		 */
cc4a639e3052fe Christoph Hellwig 2023-11-24  2109  		if (folio_test_dirty(folio) &&
cc4a639e3052fe Christoph Hellwig 2023-11-24  2110  		    folio_pos(folio) == pos && folio_end == end_pos)
cc4a639e3052fe Christoph Hellwig 2023-11-24  2111  			folio_clear_dirty(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2112  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2113  		iomap_start_writeback(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2114  		error = iomap_writepage_map_blocks(wpc, NULL, inode, folio, pos,
cc4a639e3052fe Christoph Hellwig 2023-11-24  2115  				len, &count);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2116  		if (count)
cc4a639e3052fe Christoph Hellwig 2023-11-24  2117  			wpc->nr_folios++;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2118  		if (!error) {
cc4a639e3052fe Christoph Hellwig 2023-11-24  2119  			iomap_clear_range_dirty(folio,
cc4a639e3052fe Christoph Hellwig 2023-11-24  2120  				offset_in_folio(folio, pos), len);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2121  		}
cc4a639e3052fe Christoph Hellwig 2023-11-24  2122  		iomap_end_writeback(folio, count);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2123  folio_put:
cc4a639e3052fe Christoph Hellwig 2023-11-24  2124  		folio_put(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2125  		if (error)
cc4a639e3052fe Christoph Hellwig 2023-11-24  2126  			break;
cc4a639e3052fe Christoph Hellwig 2023-11-24 @2127  		pos = folio_end;
                                                                      ^^^^^^^^^

cc4a639e3052fe Christoph Hellwig 2023-11-24  2128  	}
cc4a639e3052fe Christoph Hellwig 2023-11-24  2129  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2130  	return iomap_submit_ioend(wpc, error);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2131  }

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 3+ messages in thread
* [hch-xfs:xfs-zoned 36/65] fs/iomap/buffered-io.c:2127 iomap_rewrite_range() error: uninitialized symbol 'folio_end'.
@ 2023-11-25 15:13 kernel test robot
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2023-11-25 15:13 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
TO: Christoph Hellwig <hch@lst.de>

tree:   git://git.infradead.org/users/hch/xfs xfs-zoned
head:   f5b3c0ffa575a5035e6d607b616c05638ed48937
commit: cc4a639e3052fefb385f63a0db5dfe07db4e9d58 [36/65] iomap: add a iomap_rewrite_range helper
:::::: branch date: 9 hours ago
:::::: commit date: 9 hours ago
config: x86_64-randconfig-161-20231125 (https://download.01.org/0day-ci/archive/20231125/202311252130.sO3YytsF-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231125/202311252130.sO3YytsF-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>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202311252130.sO3YytsF-lkp@intel.com/

New smatch warnings:
fs/iomap/buffered-io.c:2127 iomap_rewrite_range() error: uninitialized symbol 'folio_end'.

Old smatch warnings:
fs/iomap/buffered-io.c:1762 iomap_add_to_ioend() error: we previously assumed 'wpc->ioend' could be null (see line 1739)

vim +/folio_end +2127 fs/iomap/buffered-io.c

cc4a639e3052fe Christoph Hellwig 2023-11-24  2074  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2075  int
cc4a639e3052fe Christoph Hellwig 2023-11-24  2076  iomap_rewrite_range(struct address_space *mapping, loff_t pos, size_t len,
cc4a639e3052fe Christoph Hellwig 2023-11-24  2077  		struct iomap_writepage_ctx *wpc)
cc4a639e3052fe Christoph Hellwig 2023-11-24  2078  {
cc4a639e3052fe Christoph Hellwig 2023-11-24  2079  	struct inode *inode = mapping->host;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2080  	u64 end_pos = pos + len;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2081  	int error = 0;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2082  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2083  	inode_attach_wb(inode, NULL);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2084  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2085  	while (pos < end_pos) {
cc4a639e3052fe Christoph Hellwig 2023-11-24  2086  		struct folio *folio;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2087  		unsigned count = 0;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2088  		u64 folio_end;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2089  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2090  		folio = iomap_read_mapping_page(mapping, pos, end_pos);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2091  		if (IS_ERR(folio)) {
cc4a639e3052fe Christoph Hellwig 2023-11-24  2092  			error = PTR_ERR(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2093  			break;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2094  		}
cc4a639e3052fe Christoph Hellwig 2023-11-24  2095  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2096  		folio_lock(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2097  		if (folio->mapping != mapping) {
cc4a639e3052fe Christoph Hellwig 2023-11-24  2098  			folio_unlock(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2099  			goto folio_put;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2100  		}
cc4a639e3052fe Christoph Hellwig 2023-11-24  2101  		folio_end = folio_pos(folio) + folio_size(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2102  		len = min(folio_end, end_pos) - pos;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2103  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2104  		folio_wait_writeback(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2105  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2106  		/*
cc4a639e3052fe Christoph Hellwig 2023-11-24  2107  		 * If we're writing out the whole folio, clear the dirty bit.
cc4a639e3052fe Christoph Hellwig 2023-11-24  2108  		 */
cc4a639e3052fe Christoph Hellwig 2023-11-24  2109  		if (folio_test_dirty(folio) &&
cc4a639e3052fe Christoph Hellwig 2023-11-24  2110  		    folio_pos(folio) == pos && folio_end == end_pos)
cc4a639e3052fe Christoph Hellwig 2023-11-24  2111  			folio_clear_dirty(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2112  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2113  		iomap_start_writeback(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2114  		error = iomap_writepage_map_blocks(wpc, NULL, inode, folio, pos,
cc4a639e3052fe Christoph Hellwig 2023-11-24  2115  				len, &count);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2116  		if (count)
cc4a639e3052fe Christoph Hellwig 2023-11-24  2117  			wpc->nr_folios++;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2118  		if (!error) {
cc4a639e3052fe Christoph Hellwig 2023-11-24  2119  			iomap_clear_range_dirty(folio,
cc4a639e3052fe Christoph Hellwig 2023-11-24  2120  				offset_in_folio(folio, pos), len);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2121  		}
cc4a639e3052fe Christoph Hellwig 2023-11-24  2122  		iomap_end_writeback(folio, count);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2123  folio_put:
cc4a639e3052fe Christoph Hellwig 2023-11-24  2124  		folio_put(folio);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2125  		if (error)
cc4a639e3052fe Christoph Hellwig 2023-11-24  2126  			break;
cc4a639e3052fe Christoph Hellwig 2023-11-24 @2127  		pos = folio_end;
cc4a639e3052fe Christoph Hellwig 2023-11-24  2128  	}
cc4a639e3052fe Christoph Hellwig 2023-11-24  2129  
cc4a639e3052fe Christoph Hellwig 2023-11-24  2130  	return iomap_submit_ioend(wpc, error);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2131  }
cc4a639e3052fe Christoph Hellwig 2023-11-24  2132  EXPORT_SYMBOL_GPL(iomap_rewrite_range);
cc4a639e3052fe Christoph Hellwig 2023-11-24  2133  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-11-27  9:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-27  8:17 [hch-xfs:xfs-zoned 36/65] fs/iomap/buffered-io.c:2127 iomap_rewrite_range() error: uninitialized symbol 'folio_end' Dan Carpenter
2023-11-27  9:27 ` Christoph Hellwig
  -- strict thread matches above, loose matches on Subject: below --
2023-11-25 15:13 kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.