X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=engines%2Fmmap.c;h=604f8b0902e75d9c0af70eca7ad8996b4c77f57d;hb=163f849eea2b0ce443825fa510a1cb311092a234;hp=da6906947764ba099c377be51bae7c231b070ee6;hpb=7bb48f84ac78cac1f90e3e04d0220d90d6a64a6b;p=fio.git diff --git a/engines/mmap.c b/engines/mmap.c index da690694..604f8b09 100644 --- a/engines/mmap.c +++ b/engines/mmap.c @@ -13,13 +13,14 @@ #include #include "../fio.h" -#include "../os.h" static int fio_mmapio_queue(struct thread_data *td, struct io_u *io_u) { struct fio_file *f = io_u->file; unsigned long long real_off = io_u->offset - f->file_offset; + fio_ro_check(td, io_u); + if (io_u->ddir == DDIR_READ) memcpy(io_u->xfer_buf, f->mmap + real_off, io_u->xfer_buflen); else if (io_u->ddir == DDIR_WRITE) @@ -61,6 +62,12 @@ static int fio_mmapio_open(struct thread_data *td, struct fio_file *f) if (ret) return ret; + /* + * for size checkup, don't mmap anything. + */ + if (!f->io_size) + return 0; + if (td_rw(td)) flags = PROT_READ | PROT_WRITE; else if (td_write(td)) {