Full readonly check
[fio.git] / ioengines.c
index 8e6fae2267bdc2340fa82453ef65bab3335615ab..cf8c2f148ca8df611c2817e854cf43ace609f56a 100644 (file)
@@ -157,6 +157,8 @@ void close_ioengine(struct thread_data *td)
 
 int td_io_prep(struct thread_data *td, struct io_u *io_u)
 {
 
 int td_io_prep(struct thread_data *td, struct io_u *io_u)
 {
+       fio_ro_check(td, io_u);
+
        if (td->io_ops->prep)
                return td->io_ops->prep(td, io_u);
 
        if (td->io_ops->prep)
                return td->io_ops->prep(td, io_u);
 
@@ -182,13 +184,13 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u)
 {
        int ret;
 
 {
        int ret;
 
+       fio_ro_check(td, io_u);
+
        assert((io_u->flags & IO_U_F_FLIGHT) == 0);
        io_u->flags |= IO_U_F_FLIGHT;
 
        assert(io_u->file->flags & FIO_FILE_OPEN);
 
        assert((io_u->flags & IO_U_F_FLIGHT) == 0);
        io_u->flags |= IO_U_F_FLIGHT;
 
        assert(io_u->file->flags & FIO_FILE_OPEN);
 
-       assert(!(io_u->ddir == DDIR_WRITE && !td_write(td)));
-
        io_u->error = 0;
        io_u->resid = 0;
 
        io_u->error = 0;
        io_u->resid = 0;