@@ -3998,7 +3998,10 @@ static int extent_write_cache_pages(struct address_space *mapping,
*/
if (!trylock_page(page)) {
ret = flush_write_bio(epd);
- BUG_ON(ret < 0);
+ if (ret < 0) {
+ done = 1;
+ break;
+ }
lock_page(page);
}
@@ -4010,7 +4013,11 @@ static int extent_write_cache_pages(struct address_space *mapping,
if (wbc->sync_mode != WB_SYNC_NONE) {
if (PageWriteback(page)) {
ret = flush_write_bio(epd);
- BUG_ON(ret < 0);
+ if (ret < 0) {
+ unlock_page(page);
+ done = 1;
+ break;
+ }
}
wait_on_page_writeback(page);
}