struct btrfs_trans_handle *trans = NULL;
        const bool new_inline = !page || create;
 
-again:
        read_lock(&em_tree->lock);
        em = lookup_extent_mapping(em_tree, start, len);
        if (em)
                em->orig_block_len = em->len;
                em->orig_start = em->start;
                ptr = btrfs_file_extent_inline_start(item) + extent_offset;
-               if (create == 0 && !PageUptodate(page)) {
+               if (!PageUptodate(page)) {
                        if (btrfs_file_extent_compression(leaf, item) !=
                            BTRFS_COMPRESS_NONE) {
                                ret = uncompress_inline(path, page, pg_offset,
                                kunmap(page);
                        }
                        flush_dcache_page(page);
-               } else if (create && PageUptodate(page)) {
-                       BUG();
-                       if (!trans) {
-                               kunmap(page);
-                               free_extent_map(em);
-                               em = NULL;
-
-                               btrfs_release_path(path);
-                               trans = btrfs_join_transaction(root);
-
-                               if (IS_ERR(trans))
-                                       return ERR_CAST(trans);
-                               goto again;
-                       }
-                       map = kmap(page);
-                       write_extent_buffer(leaf, map + pg_offset, ptr,
-                                           copy_size);
-                       kunmap(page);
-                       btrfs_mark_buffer_dirty(leaf);
                }
                set_extent_uptodate(io_tree, em->start,
                                    extent_map_end(em) - 1, NULL, GFP_NOFS);