Damien Le Moal <dlemoal@xxxxxxxxxx> wrote: > > + if (len > 0) { > > + ret = filemap_splice_read(in, ppos, pipe, len, flags); > > + if (ret == -EIO) > > Is -EIO the only error that filemap_splice_read() may return ? There are other > IO error codes that we could get from the block layer, e.g. -ETIMEDOUT etc. So > "if (ret < 0)" may be better here ? It can return -ENOMEM, -EINTR and -EAGAIN at least, none of which really count as I/O errors. I based the splice function on what zonefs_file_read_iter() does: } else { ret = generic_file_read_iter(iocb, to); if (ret == -EIO) zonefs_io_error(inode, false); } David