Merge branch 'master' of https://github.com/cbwest3/fio
[fio.git] / filesetup.c
index 25ce0c0d88852a162d7afcc1f02952116f7cf842..e548d21daab1dac780940c0ef554b633d67258ff 100644 (file)
@@ -1009,7 +1009,14 @@ int setup_files(struct thread_data *td)
                        total_size = -1ULL;
                else {
                         if (o->size_percent) {
-                               f->io_size = (f->io_size * o->size_percent) / 100;
+                               uint64_t file_size;
+
+                               file_size = f->io_size + f->file_offset;
+                               f->io_size = (file_size *
+                                             o->size_percent) / 100;
+                               if (f->io_size > (file_size - f->file_offset))
+                                       f->io_size = file_size - f->file_offset;
+
                                f->io_size -= (f->io_size % td_min_bs(td));
                        }
                        total_size += f->io_size;