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/xfs/xfs_inode.c:3034 xfs_break_layouts() error: uninitialized symbol 'error'. fs/xfs/xfs_inode.c 3009 int 3010 xfs_break_layouts( 3011 struct inode *inode, 3012 uint *iolock, 3013 enum layout_break_reason reason) 3014 { 3015 bool retry; 3016 int error; 3017 3018 xfs_assert_ilocked(XFS_I(inode), XFS_IOLOCK_SHARED | XFS_IOLOCK_EXCL); 3019 3020 do { 3021 retry = false; 3022 switch (reason) { 3023 case BREAK_UNMAP: 3024 if (xfs_break_dax_layouts(inode)) 3025 break; What about if we hit this break on the first iteration? 3026 fallthrough; 3027 case BREAK_WRITE: 3028 error = xfs_break_leased_layouts(inode, iolock, &retry); 3029 break; 3030 default: 3031 WARN_ON_ONCE(1); 3032 error = -EINVAL; 3033 } --> 3034 } while (error == 0 && retry); 3035 3036 return error; 3037 } regards, dan carpenter