summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ioctl.c
diff options
context:
space:
mode:
authorJosef Bacik2011-04-08 17:51:18 +0200
committerChris Mason2011-04-12 02:25:06 +0200
commita1b75f7d961955e697ec377f90115e3517df98f9 (patch)
treeae7fe104dc20222f05be528d85f3c4fa40aa9331 /fs/btrfs/ioctl.c
parentbtrfs: properly handle overlapping areas in memmove_extent_buffer (diff)
downloadkernel-qcow2-linux-a1b75f7d961955e697ec377f90115e3517df98f9.tar.gz
kernel-qcow2-linux-a1b75f7d961955e697ec377f90115e3517df98f9.tar.xz
kernel-qcow2-linux-a1b75f7d961955e697ec377f90115e3517df98f9.zip
Btrfs: check for duplicate iov_base's when doing dio reads
Apparently it is ok to submit a read to an IDE device with the same target page for different offsets. This is what Windows does under qemu. The problem is under DIO we expect them to be different buffers for checksumming reasons, and so this sort of thing will result in checksum errors, when in reality the file is fine. So when reading, check to make sure that all iov bases are different, and if they aren't fall back to buffered mode, since that will work out right. Thanks, Signed-off-by: Josef Bacik <josef@redhat.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/ioctl.c')
0 files changed, 0 insertions, 0 deletions