Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
* support aio fsync yet. So return busy for the case where we
* have pending io, to let fio complete those first.
*/
* support aio fsync yet. So return busy for the case where we
* have pending io, to let fio complete those first.
*/
- if (io_u->ddir == DDIR_SYNC) {
+ if (ddir_sync(io_u->ddir)) {
if (ld->iocbs_nr)
return FIO_Q_BUSY;
if (ld->iocbs_nr)
return FIO_Q_BUSY;
- if (fsync(io_u->file->fd) < 0)
- io_u->error = errno;
-
- return FIO_Q_COMPLETED;
- } else if (io_u->ddir == DDIR_DATASYNC) {
- if (ld->iocbs_nr)
- return FIO_Q_BUSY;
- if (fdatasync(io_u->file->fd) < 0)
- io_u->error = errno;
+ do_io_u_sync(td, io_u);
return FIO_Q_COMPLETED;
}
return FIO_Q_COMPLETED;
}
if (pd->queued)
return FIO_Q_BUSY;
if (pd->queued)
return FIO_Q_BUSY;
- if (fsync(io_u->file->fd) < 0)
- io_u->error = errno;
-
+ do_io_u_sync(td, io_u);
return FIO_Q_COMPLETED;
#endif
}
return FIO_Q_COMPLETED;
#endif
}
} else if (io_u->ddir == DDIR_WRITE)
ret = fio_splice_write(td, io_u);
else
} else if (io_u->ddir == DDIR_WRITE)
ret = fio_splice_write(td, io_u);
else
- ret = fsync(io_u->file->fd);
+ ret = do_io_u_sync(td, io_u);
if (ret != (int) io_u->xfer_buflen) {
if (ret >= 0) {
if (ret != (int) io_u->xfer_buflen) {
if (ret >= 0) {