left -= bs;
continue;
} else {
- printf("r=%d\n", r);
td_verror(td, EIO, "pre_read");
break;
}
{
int ret = 0;
- if (len == -1ULL)
+ if (len == -1ULL) {
len = f->io_size;
+ if (len == -1ULL && td->o.fill_device)
+ return 0;
+ }
if (off == -1ULL)
off = f->file_offset;
/*
* FIXME: add blockdev flushing too
*/
- if (f->mmap)
- ret = madvise(f->mmap, len, MADV_DONTNEED);
+ if (f->mmap_ptr)
+ ret = madvise(f->mmap_ptr, f->mmap_sz, MADV_DONTNEED);
else if (f->filetype == FIO_TYPE_FILE) {
ret = fadvise(f->fd, off, len, POSIX_FADV_DONTNEED);
} else if (f->filetype == FIO_TYPE_BD) {