On Thu, Apr 02, 2020 at 06:57:18AM -0400, Brian Foster wrote: > Qian Cai reports seemingly random buffer read verifier errors during > filesystem writeback. This was isolated to a recent patch that > factored out some inode cluster freeing code and happened to cast an > unsigned inode number type to a signed value. If the inode number > value overflows, we can skip marking in-core inodes associated with > the underlying buffer stale at the time the physical inodes are > freed. If such an inode happens to be dirty, xfsaild will eventually > attempt to write it back over non-inode blocks. The invalidation of > the underlying inode buffer causes writeback to read the buffer from > disk. This fails the read verifier (preventing eventual corruption) > if the buffer no longer looks like an inode cluster. Analysis by > Dave Chinner. > > Fix up the helper to use the proper type for inode number values. > > Fixes: 5806165a6663 ("xfs: factor inode lookup from xfs_ifree_cluster") > Reported-by: Qian Cai <cai@xxxxxx> > Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx> > --- > > Fixes the problem described here[1]. I wasn't sure if we planned on > fixing the original patch in for-next or wanted a separate patch. Feel > free to commit standalone or fold into the original... Looks good: Reviewed-by: Christoph Hellwig <hch@xxxxxx>