CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: "Matthew Wilcox (Oracle)" <[email protected]>

tree:   git://git.infradead.org/users/willy/pagecache for-next
head:   00da6d4b7219d455e5f7e8870e4f93aaef4fc0d2
commit: 09869d256e32daa8e71a45af97ba8bfcf84a597c [61/69] ocfs2: Convert ocfs2 
to read_folio
:::::: branch date: 12 hours ago
:::::: commit date: 12 hours ago
config: nios2-randconfig-m031-20220428 
(https://download.01.org/0day-ci/archive/20220430/[email protected]/config)
compiler: nios2-linux-gcc (GCC) 11.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

New smatch warnings:
fs/ocfs2/aops.c:287 ocfs2_read_folio() warn: variable dereferenced before check 
'page' (see line 281)

Old smatch warnings:
arch/nios2/include/asm/thread_info.h:62 current_thread_info() error: 
uninitialized symbol 'sp'.

vim +/page +287 fs/ocfs2/aops.c

6798d35a31c413 Mark Fasheh             2007-09-07  277  
09869d256e32da Matthew Wilcox (Oracle  2022-04-29  278) static int 
ocfs2_read_folio(struct file *file, struct folio *folio)
ccd979bdbce9fb Mark Fasheh             2005-12-15  279  {
09869d256e32da Matthew Wilcox (Oracle  2022-04-29  280)         struct page 
*page = &folio->page;
ccd979bdbce9fb Mark Fasheh             2005-12-15 @281          struct inode 
*inode = page->mapping->host;
6798d35a31c413 Mark Fasheh             2007-09-07  282          struct 
ocfs2_inode_info *oi = OCFS2_I(inode);
09cbfeaf1a5a67 Kirill A. Shutemov      2016-04-01  283          loff_t start = 
(loff_t)page->index << PAGE_SHIFT;
ccd979bdbce9fb Mark Fasheh             2005-12-15  284          int ret, unlock 
= 1;
ccd979bdbce9fb Mark Fasheh             2005-12-15  285  
9558156bcf8e47 Tao Ma                  2011-02-22  286          
trace_ocfs2_readpage((unsigned long long)oi->ip_blkno,
9558156bcf8e47 Tao Ma                  2011-02-22 @287                          
     (page ? page->index : 0));
ccd979bdbce9fb Mark Fasheh             2005-12-15  288  
e63aecb651ba73 Mark Fasheh             2007-10-18  289          ret = 
ocfs2_inode_lock_with_page(inode, NULL, 0, page);
ccd979bdbce9fb Mark Fasheh             2005-12-15  290          if (ret != 0) {
ccd979bdbce9fb Mark Fasheh             2005-12-15  291                  if (ret 
== AOP_TRUNCATED_PAGE)
ccd979bdbce9fb Mark Fasheh             2005-12-15  292                          
unlock = 0;
ccd979bdbce9fb Mark Fasheh             2005-12-15  293                  
mlog_errno(ret);
ccd979bdbce9fb Mark Fasheh             2005-12-15  294                  goto 
out;
ccd979bdbce9fb Mark Fasheh             2005-12-15  295          }
ccd979bdbce9fb Mark Fasheh             2005-12-15  296  
6798d35a31c413 Mark Fasheh             2007-09-07  297          if 
(down_read_trylock(&oi->ip_alloc_sem) == 0) {
c7e25e6e0b0486 Jan Kara                2011-06-23  298                  /*
c7e25e6e0b0486 Jan Kara                2011-06-23  299                   * 
Unlock the page and cycle ip_alloc_sem so that we don't
c7e25e6e0b0486 Jan Kara                2011-06-23  300                   * 
busyloop waiting for ip_alloc_sem to unlock
c7e25e6e0b0486 Jan Kara                2011-06-23  301                   */
e9dfc0b2bc4276 Mark Fasheh             2007-05-14  302                  ret = 
AOP_TRUNCATED_PAGE;
c7e25e6e0b0486 Jan Kara                2011-06-23  303                  
unlock_page(page);
c7e25e6e0b0486 Jan Kara                2011-06-23  304                  unlock 
= 0;
c7e25e6e0b0486 Jan Kara                2011-06-23  305                  
down_read(&oi->ip_alloc_sem);
c7e25e6e0b0486 Jan Kara                2011-06-23  306                  
up_read(&oi->ip_alloc_sem);
e63aecb651ba73 Mark Fasheh             2007-10-18  307                  goto 
out_inode_unlock;
e9dfc0b2bc4276 Mark Fasheh             2007-05-14  308          }
ccd979bdbce9fb Mark Fasheh             2005-12-15  309  
ccd979bdbce9fb Mark Fasheh             2005-12-15  310          /*
ccd979bdbce9fb Mark Fasheh             2005-12-15  311           * i_size might 
have just been updated as we grabed the meta lock.  We
ccd979bdbce9fb Mark Fasheh             2005-12-15  312           * might now be 
discovering a truncate that hit on another node.
352198e3bea3ed Matthew Wilcox (Oracle  2022-04-29  313)          * 
block_read_full_folio->get_block freaks out if it is asked to read
ccd979bdbce9fb Mark Fasheh             2005-12-15  314           * beyond the 
end of a file, so we check here.  Callers
54cb8821de07f2 Nicholas Piggin         2007-07-19  315           * 
(generic_file_read, vm_ops->fault) are clever enough to check i_size
ccd979bdbce9fb Mark Fasheh             2005-12-15  316           * and notice 
that the page they just read isn't needed.
ccd979bdbce9fb Mark Fasheh             2005-12-15  317           *
ccd979bdbce9fb Mark Fasheh             2005-12-15  318           * XXX 
sys_readahead() seems to get that wrong?
ccd979bdbce9fb Mark Fasheh             2005-12-15  319           */
ccd979bdbce9fb Mark Fasheh             2005-12-15  320          if (start >= 
i_size_read(inode)) {
eebd2aa355692a Christoph Lameter       2008-02-04  321                  
zero_user(page, 0, PAGE_SIZE);
ccd979bdbce9fb Mark Fasheh             2005-12-15  322                  
SetPageUptodate(page);
ccd979bdbce9fb Mark Fasheh             2005-12-15  323                  ret = 0;
ccd979bdbce9fb Mark Fasheh             2005-12-15  324                  goto 
out_alloc;
ccd979bdbce9fb Mark Fasheh             2005-12-15  325          }
ccd979bdbce9fb Mark Fasheh             2005-12-15  326  
6798d35a31c413 Mark Fasheh             2007-09-07  327          if 
(oi->ip_dyn_features & OCFS2_INLINE_DATA_FL)
6798d35a31c413 Mark Fasheh             2007-09-07  328                  ret = 
ocfs2_readpage_inline(inode, page);
6798d35a31c413 Mark Fasheh             2007-09-07  329          else
352198e3bea3ed Matthew Wilcox (Oracle  2022-04-29  330)                 ret = 
block_read_full_folio(page_folio(page), ocfs2_get_block);
ccd979bdbce9fb Mark Fasheh             2005-12-15  331          unlock = 0;
ccd979bdbce9fb Mark Fasheh             2005-12-15  332  
ccd979bdbce9fb Mark Fasheh             2005-12-15  333  out_alloc:
d324cd4c80b9cb piaojun                 2018-04-05  334          
up_read(&oi->ip_alloc_sem);
e63aecb651ba73 Mark Fasheh             2007-10-18  335  out_inode_unlock:
e63aecb651ba73 Mark Fasheh             2007-10-18  336          
ocfs2_inode_unlock(inode, 0);
ccd979bdbce9fb Mark Fasheh             2005-12-15  337  out:
ccd979bdbce9fb Mark Fasheh             2005-12-15  338          if (unlock)
ccd979bdbce9fb Mark Fasheh             2005-12-15  339                  
unlock_page(page);
ccd979bdbce9fb Mark Fasheh             2005-12-15  340          return ret;
ccd979bdbce9fb Mark Fasheh             2005-12-15  341  }
ccd979bdbce9fb Mark Fasheh             2005-12-15  342  

:::::: The code at line 287 was first introduced by commit
:::::: 9558156bcf8e4750d20034e941213273743ed86a ocfs2: Remove mlog(0) from 
fs/ocfs2/aops.c

:::::: TO: Tao Ma <[email protected]>
:::::: CC: Tao Ma <[email protected]>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to