summaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_fsops.c
diff options
context:
space:
mode:
authorDave Chinner2013-05-27 08:38:24 +0200
committerBen Myers2013-05-30 19:55:31 +0200
commit02f75405a75eadfb072609f6bf839e027de6a29a (patch)
tree2ddc9e048874eac38fe92be2a069c30659d1b633 /fs/xfs/xfs_fsops.c
parentxfs: fix split buffer vector log recovery support (diff)
downloadkernel-qcow2-linux-02f75405a75eadfb072609f6bf839e027de6a29a.tar.gz
kernel-qcow2-linux-02f75405a75eadfb072609f6bf839e027de6a29a.tar.xz
kernel-qcow2-linux-02f75405a75eadfb072609f6bf839e027de6a29a.zip
xfs: disable swap extents ioctl on CRC enabled filesystems
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> Reviewed-by: Ben Myers <bpm@sgi.com> Reviewed-by: Brian Foster <bfoster@redhat.com> Signed-off-by: Ben Myers <bpm@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_fsops.c')
0 files changed, 0 insertions, 0 deletions