X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=filesetup.c;h=fb9219199e31ca378a24b2662f246167abe6a3fe;hp=0abce8cbfe5b685d67518690eb3fcc8c675f4d96;hb=7e0e25c924d51f23196b3e0ea83b79178fc46823;hpb=1d56dfee7857b91d1805d90396f36d62ad30e186 diff --git a/filesetup.c b/filesetup.c index 0abce8cb..fb921919 100644 --- a/filesetup.c +++ b/filesetup.c @@ -344,9 +344,13 @@ int file_invalidate_cache(struct thread_data *td, struct fio_file *f) ret = madvise(f->mmap, f->file_size, MADV_DONTNEED); else if (f->filetype == FIO_TYPE_FILE) ret = fadvise(f->fd, f->file_offset, f->file_size, POSIX_FADV_DONTNEED); - else if (f->filetype == FIO_TYPE_BD) + else if (f->filetype == FIO_TYPE_BD) { ret = blockdev_invalidate_cache(f->fd); - else if (f->filetype == FIO_TYPE_CHAR) + if (ret < 0 && errno == EACCES && geteuid()) { + log_err("fio: only root may flush block devices. Cache flush bypassed!\n"); + ret = 0; + } + } else if (f->filetype == FIO_TYPE_CHAR) ret = 0; if (ret < 0) {