Your patch does fix the segfaults. But now I'm really confused about the I/O pattern realized when using randwrite and a non-zero offset. The I/O trace shows multiple opens/closes anad the same block being written over multiple times. Here's what I got:
fio version 2 iolog
/dev/sdf add
/dev/sdf open
/dev/sdf write 68719411200 65536
/dev/sdf write 131072 65536
/dev/sdf write 196608 0
/dev/sdf close
/dev/sdf open
/dev/sdf write 68719411200 65536
/dev/sdf write 131072 65536
/dev/sdf write 196608 0
/dev/sdf close
/dev/sdf open
/dev/sdf write 68719411200 65536
/dev/sdf write 2164391936 65536
/dev/sdf write 196608 0
/dev/sdf close
/dev/sdf open
/dev/sdf write 68719411200 65536
/dev/sdf write 62356848640 65536
/dev/sdf write 131072 65536
/dev/sdf write 38256377856 65536
/dev/sdf write 57294323712 65536
/dev/sdf write 196608 0
/dev/sdf close
/dev/sdf open
/dev/sdf write 68719411200 65536
/dev/sdf write 131072 65536
/dev/sdf write 196608 0
/dev/sdf close
/dev/sdf open
...
Received on Tue Feb 19 2008 - 19:11:20 CET
This archive was generated by hypermail 2.2.0 : Tue Feb 19 2008 - 19:30:01 CET