Re: [PATCH 3.16 51/63] xfs: catch inode allocation state mismatch corruption

From: Dave Chinner
Date: Sat Sep 22 2018 - 01:29:53 EST


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 <dchinner@xxxxxxxxxx>
>
> commit ee457001ed6c6f31ddad69c24c1da8f377d8472d upstream.
>
> We recently came across a V4 filesystem causing memory corruption
> due to a newly allocated inode being setup twice and being added to
> the superblock inode list twice. From code inspection, the only way
> this could happen is if a newly allocated inode was not marked as
> free on disk (i.e. di_mode wasn't zero).
....
> Signed-Off-By: Dave Chinner <dchinner@xxxxxxxxxx>
> Reviewed-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx>
> Tested-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx>
> Reviewed-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> [bwh: Backported to 3.16:
> - Look up mode in XFS inode, not VFS inode
> - Use positive error codes, and EIO instead of EFSCORRUPTED]

Why EIO?

Cheers,

Dave.
--
Dave Chinner
dchinner@xxxxxxxxxx