On Sat, 2018-09-22 at 15:26 +1000, Dave Chinner wrote: > On Sat, Sep 22, 2018 at 01:15:42AM +0100, Ben Hutchings wrote: > > 3.16.58-rc1 review patch. If anyone has any objections, please let me know. > > > > ------------------ > > > > From: Dave Chinner > > > > commit afca6c5b2595fc44383919fba740c194b0b76aff upstream. > > > > A recent fuzzed filesystem image cached random dcache corruption > > when the reproducer was run. This often showed up as panics in > > lookup_slow() on a null inode->i_ops pointer when doing pathwalks. > > ..... > > [bwh: Backported to 3.16: > > - Look up mode in XFS inode, not VFS inode > > - Use positive error codes, and EIO instead of EFSCORRUPTED] > > Again, why EIO? I'll change this back to EFSCORRUPTED. Ben. > And .... > > Signed-off-by: Ben Hutchings > > --- > > fs/xfs/xfs_icache.c | 73 +++++++++++++++++++++++++++++---------------- > > 1 file changed, 48 insertions(+), 25 deletions(-) > > > > --- a/fs/xfs/xfs_icache.c > > +++ b/fs/xfs/xfs_icache.c > > @@ -133,6 +133,46 @@ xfs_inode_free( > > } > > > > /* > > + * If we are allocating a new inode, then check what was returned is > > + * actually a free, empty inode. If we are not allocating an inode, > > + * then check we didn't find a free inode. > > + * > > + * Returns: > > + * 0 if the inode free state matches the lookup context > > + * ENOENT if the inode is free and we are not allocating > > + * EFSCORRUPTED if there is any state mismatch at all > > You changed the code but not the comment. > > Cheers, > > Dave. -- Ben Hutchings Any sufficiently advanced bug is indistinguishable from a feature.