aboutsummaryrefslogtreecommitdiffstats
path: root/mm/page_io.c
diff options
context:
space:
mode:
Diffstat (limited to 'mm/page_io.c')
-rw-r--r--mm/page_io.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/mm/page_io.c b/mm/page_io.c
index 78eee32ee486..8e6bcf176cfb 100644
--- a/mm/page_io.c
+++ b/mm/page_io.c
@@ -185,9 +185,7 @@ bad_bmap:
185 */ 185 */
186int swap_writepage(struct page *page, struct writeback_control *wbc) 186int swap_writepage(struct page *page, struct writeback_control *wbc)
187{ 187{
188 struct bio *bio; 188 int ret = 0;
189 int ret = 0, rw = WRITE;
190 struct swap_info_struct *sis = page_swap_info(page);
191 189
192 if (try_to_free_swap(page)) { 190 if (try_to_free_swap(page)) {
193 unlock_page(page); 191 unlock_page(page);
@@ -199,6 +197,16 @@ int swap_writepage(struct page *page, struct writeback_control *wbc)
199 end_page_writeback(page); 197 end_page_writeback(page);
200 goto out; 198 goto out;
201 } 199 }
200 ret = __swap_writepage(page, wbc);
201out:
202 return ret;
203}
204
205int __swap_writepage(struct page *page, struct writeback_control *wbc)
206{
207 struct bio *bio;
208 int ret = 0, rw = WRITE;
209 struct swap_info_struct *sis = page_swap_info(page);
202 210
203 if (sis->flags & SWP_FILE) { 211 if (sis->flags & SWP_FILE) {
204 struct kiocb kiocb; 212 struct kiocb kiocb;