From: Josef Bacik Date: Wed, 6 Apr 2011 18:53:07 +0000 (-0400) Subject: Btrfs: reuse the extent_map we found when calling btrfs_get_extent X-Git-Tag: v2.6.39-rc4~5^2~9^2~2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=16d299ac7446b5a75c5683a9ae11d7907d444c86;p=pandora-kernel.git Btrfs: reuse the extent_map we found when calling btrfs_get_extent In btrfs_get_block_direct we call btrfs_get_extent to lookup the extent for the range that we are looking for. If we don't find an extent, btrfs_get_extent will insert a extent_map for that area and mark it as a hole. So it does the job of allocating a new extent map and inserting it into the io tree. But if we're creating a new extent we free it up and redo all of that work. So instead pass the em to btrfs_new_extent_direct(), and if it will work just allocate the disk space and set it up properly and bypass the freeing/allocating of a new extent map and the expensive operation of inserting the thing into the io_tree. Thanks, Signed-off-by: Josef Bacik --- Reading git-diff-tree failed