On Fri, Jan 20, 2023 at 04:47:04PM +0300, Dan Carpenter wrote: > Hello Dave Chinner, > > The patch d7b64041164c: "iomap: write iomap validity checks" from Nov > 29, 2022, leads to the following Smatch static checker warning: > > fs/iomap/buffered-io.c:829 iomap_write_iter() > error: uninitialized symbol 'folio'. > > fs/iomap/buffered-io.c > 818 if (unlikely(fault_in_iov_iter_readable(i, bytes) == bytes)) { > 819 status = -EFAULT; > 820 break; > 821 } > 822 > 823 status = iomap_write_begin(iter, pos, bytes, &folio); > ^^^^^^^ > The iomap_write_begin() function can succeed without initializing > *foliop. It's next to the big comment. Yes, but if it does, it sets IOMAP_F_STALE > 824 if (unlikely(status)) > 825 break; > 826 if (iter->iomap.flags & IOMAP_F_STALE) > 827 break; so it breaks out here. Maybe we should return an errno from iomap_write_begin() to make life easier for the static checking tools? > --> 829 page = folio_file_page(folio, pos >> PAGE_SHIFT); > ^^^^^ > > 830 if (mapping_writably_mapped(mapping)) > 831 flush_dcache_page(page);