Hi Lukas, [auto build test WARNING on linus/master] [also build test WARNING on v4.12 next-20170713] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Lukas-Czerner/fs-Fix-page-cache-inconsistency-when-mixing-buffered-and-AIO-DIO/20170714-181130 config: x86_64-randconfig-x010-201728 (attached as .config) compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901 reproduce: # save the attached .config to linux build tree make ARCH=x86_64 Note: it may well be a FALSE warning. FWIW you are at least aware of it now. http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings All warnings (new ones prefixed by >>): fs/iomap.c: In function 'iomap_dio_complete': >> fs/iomap.c:629:25: warning: 'ret' may be used uninitialized in this function [-Wmaybe-uninitialized] (offset + dio->size + ret - 1) >> PAGE_SHIFT); ~~~~~~~~~~~~~~~~~~~^~~~~ vim +/ret +629 fs/iomap.c 618 619 static ssize_t iomap_dio_complete(struct iomap_dio *dio) 620 { 621 struct kiocb *iocb = dio->iocb; 622 loff_t offset = iocb->ki_pos; 623 struct inode *inode = file_inode(iocb->ki_filp); 624 ssize_t ret; 625 626 if ((dio->flags & IOMAP_DIO_WRITE) && inode->i_mapping->nrpages) 627 invalidate_inode_pages2_range(inode->i_mapping, 628 offset >> PAGE_SHIFT, > 629 (offset + dio->size + ret - 1) >> PAGE_SHIFT); 630 631 if (dio->end_io) { 632 ret = dio->end_io(iocb, 633 dio->error ? dio->error : dio->size, 634 dio->flags); 635 } else { 636 ret = dio->error; 637 } 638 639 if (likely(!ret)) { 640 ret = dio->size; 641 /* check for short read */ 642 if (iocb->ki_pos + ret > dio->i_size && 643 !(dio->flags & IOMAP_DIO_WRITE)) 644 ret = dio->i_size - iocb->ki_pos; 645 iocb->ki_pos += ret; 646 } 647 648 inode_dio_end(file_inode(iocb->ki_filp)); 649 kfree(dio); 650 651 return ret; 652 } 653 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip