diff options
author | Josef Bacik <josef@redhat.com> | 2011-04-06 14:53:07 -0400 |
---|---|---|
committer | Josef Bacik <josef@redhat.com> | 2011-04-08 13:00:41 -0400 |
commit | 16d299ac7446b5a75c5683a9ae11d7907d444c86 (patch) | |
tree | 95358c2fdd7af672ec68c18fb43e2e90a7cd4551 /crypto | |
parent | 1ae399382512b3e4d6c923e53da9e45935577040 (diff) | |
download | op-kernel-dev-16d299ac7446b5a75c5683a9ae11d7907d444c86.zip op-kernel-dev-16d299ac7446b5a75c5683a9ae11d7907d444c86.tar.gz |
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 <josef@redhat.com>
Diffstat (limited to 'crypto')
0 files changed, 0 insertions, 0 deletions