fix ITER_PIPE interaction with direct_IO
[cascardo/linux.git] / mm / filemap.c
index 8a287df..6b965ef 100644 (file)
@@ -1920,7 +1920,7 @@ generic_file_read_iter(struct kiocb *iocb, struct iov_iter *iter)
                        retval = mapping->a_ops->direct_IO(iocb, &data);
                }
 
-               if (retval > 0) {
+               if (retval >= 0) {
                        iocb->ki_pos += retval;
                        iov_iter_advance(iter, retval);
                }