diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 4073d531cd7b..334852131588 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -849,8 +849,10 @@ int write_cache_pages(struct address_space *mapping, ret = (*writepage)(page, wbc, data); - if (unlikely(ret == AOP_WRITEPAGE_ACTIVATE)) + if (unlikely(ret == AOP_WRITEPAGE_ACTIVATE)) { unlock_page(page); + ret = 0; + } if (ret || (--(wbc->nr_to_write) <= 0)) done = 1; if (wbc->nonblocking && bdi_write_congested(bdi)) {