From 7e0e25c924d51f23196b3e0ea83b79178fc46823 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Tue, 27 Mar 2007 12:49:56 +0200 Subject: [PATCH] Don't completely fail for block device flushing failure Signed-off-by: Jens Axboe --- filesetup.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) 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) { -- 2.25.1