It eases the error handling in the splice and sync io engine.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
static int fio_spliceio_queue(struct thread_data *td, struct io_u *io_u)
{
struct spliceio_data *sd = td->io_ops->data;
static int fio_spliceio_queue(struct thread_data *td, struct io_u *io_u)
{
struct spliceio_data *sd = td->io_ops->data;
if (io_u->ddir == DDIR_READ)
ret = fio_splice_read(td, io_u);
if (io_u->ddir == DDIR_READ)
ret = fio_splice_read(td, io_u);
else
ret = fsync(io_u->file->fd);
else
ret = fsync(io_u->file->fd);
- if ((unsigned int) ret != io_u->buflen) {
+ if (ret != io_u->buflen) {
if (ret > 0) {
io_u->resid = io_u->buflen - ret;
io_u->error = ENODATA;
if (ret > 0) {
io_u->resid = io_u->buflen - ret;
io_u->error = ENODATA;
{
struct syncio_data *sd = td->io_ops->data;
struct fio_file *f = io_u->file;
{
struct syncio_data *sd = td->io_ops->data;
struct fio_file *f = io_u->file;
if (io_u->ddir == DDIR_READ)
ret = read(f->fd, io_u->buf, io_u->buflen);
if (io_u->ddir == DDIR_READ)
ret = read(f->fd, io_u->buf, io_u->buflen);
- if ((unsigned int) ret != io_u->buflen) {
+ if (ret != io_u->buflen) {
if (ret > 0) {
io_u->resid = io_u->buflen - ret;
io_u->error = EIO;
if (ret > 0) {
io_u->resid = io_u->buflen - ret;
io_u->error = EIO;
if (!queue_full(td)) {
io_u = list_entry(td->io_u_freelist.next, struct io_u, list);
if (!queue_full(td)) {
io_u = list_entry(td->io_u_freelist.next, struct io_u, list);
io_u->error = 0;
io_u->resid = 0;
list_del(&io_u->list);
io_u->error = 0;
io_u->resid = 0;
list_del(&io_u->list);