projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix ITER_PIPE interaction with direct_IO
[cascardo/linux.git]
/
mm
/
filemap.c
diff --git
a/mm/filemap.c
b/mm/filemap.c
index
3083ded
..
6b965ef
100644
(file)
--- a/
mm/filemap.c
+++ b/
mm/filemap.c
@@
-887,9
+887,9
@@
EXPORT_SYMBOL(end_page_writeback);
* After completing I/O on a page, call this routine to update the page
* flags appropriately
*/
* After completing I/O on a page, call this routine to update the page
* flags appropriately
*/
-void page_endio(struct page *page,
int rw
, int err)
+void page_endio(struct page *page,
bool is_write
, int err)
{
{
- if (
rw == READ
) {
+ if (
!is_write
) {
if (!err) {
SetPageUptodate(page);
} else {
if (!err) {
SetPageUptodate(page);
} else {
@@
-897,7
+897,7
@@
void page_endio(struct page *page, int rw, int err)
SetPageError(page);
}
unlock_page(page);
SetPageError(page);
}
unlock_page(page);
- } else {
/* rw == WRITE */
+ } else {
if (err) {
SetPageError(page);
if (page->mapping)
if (err) {
SetPageError(page);
if (page->mapping)
@@
-1920,7
+1920,7
@@
generic_file_read_iter(struct kiocb *iocb, struct iov_iter *iter)
retval = mapping->a_ops->direct_IO(iocb, &data);
}
retval = mapping->a_ops->direct_IO(iocb, &data);
}
- if (retval > 0) {
+ if (retval >
=
0) {
iocb->ki_pos += retval;
iov_iter_advance(iter, retval);
}
iocb->ki_pos += retval;
iov_iter_advance(iter, retval);
}