diff options
Diffstat (limited to 'mm/page_io.c')
-rw-r--r-- | mm/page_io.c | 14 |
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 | */ |
186 | int swap_writepage(struct page *page, struct writeback_control *wbc) | 186 | int 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); | ||
201 | out: | ||
202 | return ret; | ||
203 | } | ||
204 | |||
205 | int __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; |