diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index db814f555b26..385127ab0841 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -622,7 +622,14 @@ cont: PAGE_SET_WRITEBACK | page_error_op | PAGE_END_WRITEBACK); - goto free_pages_out; + + for (i = 0; i < nr_pages; i++) { + WARN_ON(pages[i]->mapping); + put_page(pages[i]); + } + kfree(pages); + + return 0; } } @@ -700,15 +707,6 @@ cleanup_and_bail_uncompressed: compressed_extents++; return compressed_extents; - -free_pages_out: - for (i = 0; i < nr_pages; i++) { - WARN_ON(pages[i]->mapping); - put_page(pages[i]); - } - kfree(pages); - - return 0; } static void free_async_extent_pages(struct async_extent *async_extent)