Fix fill_device with queue depth higher than 1
[fio.git] / fio.c
diff --git a/fio.c b/fio.c
index 76c6ebd73b25e0eefb1b093ef5914530ee5b9389..5ea1a2c32fc3d44edda83d910c8d11f8015cc1c9 100644 (file)
--- a/fio.c
+++ b/fio.c
@@ -180,7 +180,7 @@ static void set_sig_handlers(void)
  * Check if we are above the minimum rate given.
  */
 static int __check_min_rate(struct thread_data *td, struct timeval *now,
-                           enum td_ddir ddir)
+                           enum fio_ddir ddir)
 {
        unsigned long long bytes = 0;
        unsigned long iops = 0;
@@ -760,8 +760,11 @@ sync_done:
                struct fio_file *f;
 
                i = td->cur_depth;
-               if (i)
+               if (i) {
                        ret = io_u_queued_complete(td, i, NULL);
+                       if (td->o.fill_device && td->error == ENOSPC)
+                               td->error = 0;
+               }
 
                if (should_fsync(td) && td->o.end_fsync) {
                        td_set_runstate(td, TD_FSYNCING);