xfstests 240: test non-aligned AIO hole-filling
authorEric Sandeen <sandeen@redhat.com>
Fri, 23 Jul 2010 16:18:59 +0000 (11:18 -0500)
committerEric Sandeen <sandeen@redhat.com>
Fri, 23 Jul 2010 16:18:59 +0000 (11:18 -0500)
commitb05ae2d65379ccf92eb3fe8360325dd2287bf766
treeb46f5e105b69a89f64ccc3e1d73f33ecd8d936b7
parent034110b37da3da694b0056a23c5a280f7715e804
xfstests 240: test non-aligned AIO hole-filling

This replicates file corruption we've seen with qemu-kvm when
we use if=virtio,cache=none,aio=native for IO to a sparse
ext4- or xfs-hosted file, and the partitions/filesystems
within that file image are not block-aligned.  (think sector
63 here...)  This results in AIO IOs not aligned to the
filesystem blocks.

This test modifies aiodio_sparse2.c to add an option to start
the file IO at an offset.

When we do 4k writes to a 16k file in 2 threads, starting
at offset 512, we get 0s interspersed in the file where they
should not be:

00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200  01 01 01 01 01 01 01 01  01 01 01 01 01 01 01 01  |................|
*
00001000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00001200  01 01 01 01 01 01 01 01  01 01 01 01 01 01 01 01  |................|
....

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
240 [new file with mode: 0644]
240.out [new file with mode: 0644]
group
src/aio-dio-regress/aiodio_sparse2.c