}
b = malloc(td->o.max_bs[DDIR_WRITE]);
- memset(b, 0, td->o.max_bs[DDIR_WRITE]);
left = f->real_file_size;
while (left && !td->terminate) {
if (bs > left)
bs = left;
+ fill_io_buffer(td, b, bs, bs);
+
r = write(f->fd, b, bs);
if (r > 0) {
if (f->file_offset > f->real_file_size) {
log_err("%s: offset extends end (%llu > %llu)\n", td->o.name,
- f->file_offset, f->real_file_size);
+ (unsigned long long) f->file_offset,
+ (unsigned long long) f->real_file_size);
return 1;
}
if (f->mmap_ptr) {
ret = posix_madvise(f->mmap_ptr, f->mmap_sz, POSIX_MADV_DONTNEED);
#ifdef FIO_MADV_FREE
- (void) posix_madvise(f->mmap_ptr, f->mmap_sz, FIO_MADV_FREE);
+ if (f->filetype == FIO_TYPE_BD)
+ (void) posix_madvise(f->mmap_ptr, f->mmap_sz, FIO_MADV_FREE);
#endif
} else if (f->filetype == FIO_TYPE_FILE) {
ret = posix_fadvise(f->fd, off, len, POSIX_FADV_DONTNEED);
f->shadow_fd = -1;
}
+ f->engine_data = 0;
return ret;
}
* work-around a "feature" on Linux, where a close of
* an fd that has been opened for write will trigger
* udev to call blkid to check partitions, fs id, etc.
- * That polutes the device cache, which can slow down
+ * That pollutes the device cache, which can slow down
* unbuffered accesses.
*/
if (f->shadow_fd == -1)