projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
kgdb: support for ARCH=arm
[firefly-linux-kernel-4.4.55.git]
/
mm
/
truncate.c
diff --git
a/mm/truncate.c
b/mm/truncate.c
index c35c49e54fb6527eae91cb02177fc2b05a00abad..b8961cb6341401e27f9debffc5832154525fadcb 100644
(file)
--- a/
mm/truncate.c
+++ b/
mm/truncate.c
@@
-134,8
+134,7
@@
invalidate_complete_page(struct address_space *mapping, struct page *page)
}
/**
}
/**
- * truncate_inode_pages - truncate range of pages specified by start and
- * end byte offsets
+ * truncate_inode_pages - truncate range of pages specified by start & end byte offsets
* @mapping: mapping to truncate
* @lstart: offset from which to truncate
* @lend: offset to which to truncate
* @mapping: mapping to truncate
* @lstart: offset from which to truncate
* @lend: offset to which to truncate
@@
-392,6
+391,7
@@
int invalidate_inode_pages2_range(struct address_space *mapping,
pgoff_t next;
int i;
int ret = 0;
pgoff_t next;
int i;
int ret = 0;
+ int ret2 = 0;
int did_range_unmap = 0;
int wrapped = 0;
int did_range_unmap = 0;
int wrapped = 0;
@@
-439,9
+439,13
@@
int invalidate_inode_pages2_range(struct address_space *mapping,
}
}
BUG_ON(page_mapped(page));
}
}
BUG_ON(page_mapped(page));
- ret = do_launder_page(mapping, page);
- if (ret == 0 && !invalidate_complete_page2(mapping, page))
- ret = -EIO;
+ ret2 = do_launder_page(mapping, page);
+ if (ret2 == 0) {
+ if (!invalidate_complete_page2(mapping, page))
+ ret2 = -EIO;
+ }
+ if (ret2 < 0)
+ ret = ret2;
unlock_page(page);
}
pagevec_release(&pvec);
unlock_page(page);
}
pagevec_release(&pvec);