Hello Alistair Popple,

Commit 738ec092051b ("fs/dax: create a common implementation to break
DAX layouts") from Jan 7, 2025 (linux-next), leads to the following
Smatch static checker warning:

        fs/dax.c:966 dax_break_mapping()
        error: uninitialized symbol 'error'.

fs/dax.c
   946  int dax_break_mapping(struct inode *inode, loff_t start, loff_t end,
   947                  void (cb)(struct inode *))
   948  {
   949          struct page *page;
   950          int error;
   951  
   952          if (!dax_mapping(inode->i_mapping))
   953                  return 0;
   954  
   955          do {
   956                  page = dax_layout_busy_page_range(inode->i_mapping, 
start, end);
   957                  if (!page)

error is uninitialized if dax_layout_busy_page_range() returns NULL on
first iteration.

   958                          break;
   959  
   960                  error = wait_page_idle(page, cb, inode);
   961          } while (error == 0);
   962  
   963          if (!page)
   964                  dax_delete_mapping_range(inode->i_mapping, start, end);
   965  
   966          return error;
   967  }


regards,
dan carpenter

Reply via email to