--- x/mm/filemap.c +++ y/mm/filemap.c @@ -2800,7 +2800,7 @@ generic_file_read_iter(struct kiocb *ioc iocb->ki_pos += retval; count -= retval; } - if (retval != -EIOCBQUEUED) + else if (retval != -EIOCBQUEUED) iov_iter_revert(iter, count - iov_iter_count(iter)); /*