Signed-off-by: Qu Wenruo <w...@suse.com>
---
 fs/btrfs/extent_io.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 52c1b0ce6bfd..0d1f09b41421 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -3980,7 +3980,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);
                        }
 
@@ -3992,7 +3995,10 @@ 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) {
+                                               done = 1;
+                                               break;
+                                       }
                                }
                                wait_on_page_writeback(page);
                        }
-- 
2.20.1

Reply via email to