#include <linux/falloc.h>
#endif
-static int root_warn;
-
static FLIST_HEAD(filename_list);
/*
ret = td->io_ops->invalidate(td, f);
if (ret < 0)
errval = -ret;
+ } else if (td_ioengine_flagged(td, FIO_DISKLESSIO)) {
+ dprint(FD_IO, "invalidate not supported by ioengine %s\n",
+ td->io_ops->name);
+ ret = 0;
} else if (f->filetype == FIO_TYPE_FILE) {
dprint(FD_IO, "declare unneeded cache %s: %llu/%llu\n",
f->file_name, off, len);
ret = blockdev_invalidate_cache(f);
}
if (ret < 0 && errno == EACCES && geteuid()) {
- if (!root_warn) {
+ if (!fio_did_warn(FIO_WARN_ROOT_FLUSH)) {
log_err("fio: only root may flush block "
"devices. Cache flush bypassed!\n");
- root_warn = 1;
}
ret = 0;
}
if (f->io_size == -1ULL)
total_size = -1ULL;
else {
- if (o->size_percent) {
+ if (o->size_percent && o->size_percent != 100) {
uint64_t file_size;
file_size = f->io_size + f->file_offset;
if (td_ioengine_flagged(td, FIO_NOFILEHASH))
f = calloc(1, sizeof(*f));
else
- f = smalloc(sizeof(*f));
+ f = scalloc(1, sizeof(*f));
if (!f) {
assert(0);
return NULL;