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

Dave Chinner
2013-05-30T01:07:38Z

On Tue, May 28, 2013 at 04:49:31PM -0500, Ben Myers wrote:
> 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.

Of course.

> But this is fine as long as it is temporary.

It is.

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com