On Fri, May 01, 2020 at 11:57:24AM -0400, Brian Foster wrote: > > if (!XFS_IFORK_PTR(ip, XFS_ATTR_FORK)) > > - return __this_address; > > - return xfs_attr_shortform_verify(ip); > > + fa = __this_address; > > + else > > + fa = xfs_attr_shortform_verify(ip); > > + > > + if (fa) { > > + xfs_inode_verifier_error(ip, -EFSCORRUPTED, "attr fork", > > + ip->i_afp->if_u1.if_data, ip->i_afp->if_bytes, fa); > > + return -EFSCORRUPTED; > > This explicitly makes !ip->i_afp one of the handled corruption cases for > XFS_DINODE_FMT_LOCAL, but then attempts to access it anyways. Otherwise > seems Ok modulo the comments on the previous patch... No, it keeps the existing bogus behavior, just making the bug more obvious by moving the bits closer together :( That being said this is getting fixed later in the series.