Math is wrong if range requested is less or equals to block size
xfs_io -c 'pwrite -b 4k 8k 4k -R' \
-c 'pread -b 4k 4k 4k -R' -f file
Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
*total = 0;
while (count > 0) {
- off = ((offset + (random() % range)) / buffersize) * buffersize;
+ if (range)
+ off = ((offset + (random() % range)) / buffersize) *
+ buffersize;
+ else
+ off = offset;
bytes = do_pread(fd, off, buffersize, buffersize);
if (bytes == 0)
break;
*total = 0;
while (count > 0) {
- off = ((offset + (random() % range)) / buffersize) * buffersize;
+ if (range)
+ off = ((offset + (random() % range)) / buffersize) *
+ buffersize;
+ else
+ off = offset;
bytes = do_pwrite(file->fd, off, buffersize, buffersize);
if (bytes == 0)
break;