Re: [PATCH 6/9] xfs: disable swap extents ioctl on CRC enabled filesystems

Ben Myers
2013-05-28T21:49:32Z

On Mon, May 27, 2013 at 04:38:24PM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
>
> Currently, swapping extents from one inode to another is a simple
> act of switching data and attribute forks from one inode to another.
> This, unfortunately in no longer so simple with CRC enabled
> filesystems as there is owner information embedded into the BMBT
> blocks that are swapped between inodes. Hence swapping the forks
> between inodes results in the inodes having mapping blocks that
> point to the wrong owner and hence are considered corrupt.
>
> To fix this we need an extent tree block or record based swap
> algorithm so that the BMBT block owner information can be updated
> atomically in the swap transaction. This is a significant piece of
> new work, so for the moment simply don't allow swap extent
> operations to succeed on CRC enabled filesystems.
>
> Signed-off-by: Dave Chinner <dchinner@redhat.com>

I believe we do want to have functional swap extents for crc enabled
filesystems. But this is fine as long as it is temporary. Thanks Eric for
pointing this out on IRC. Looks fine.

Reviewed-by: Ben Myers <bpm@sgi.com>