kernel-hacking-2024-linux-s.../fs/btrfs
Josef Bacik 16d299ac74 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>
2011-04-08 13:00:41 -04:00
..
acl.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable 2011-02-07 14:06:18 -08:00
async-thread.c
async-thread.h
btrfs_inode.h Btrfs: change reserved_extents to an atomic_t 2011-03-17 14:21:18 -04:00
compat.h
compression.c Btrfs: check return value of btrfs_alloc_path() 2011-03-28 05:37:54 -04:00
compression.h
ctree.c Btrfs: check return value of read_tree_block() 2011-03-28 05:37:37 -04:00
ctree.h Btrfs: deal with the case that we run out of space in the cache 2011-04-08 13:00:27 -04:00
delayed-ref.c Btrfs: add initial tracepoint support for btrfs 2011-03-28 05:37:33 -04:00
delayed-ref.h
dir-item.c Btrfs: check return value of btrfs_alloc_path() 2011-03-28 05:37:54 -04:00
disk-io.c Btrfs: Fix uninitialized root flags for subvolumes 2011-04-05 01:20:24 -04:00
disk-io.h
export.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable 2011-02-07 14:06:18 -08:00
export.h
extent-tree.c Btrfs: fix OOPS of empty filesystem after balance 2011-03-28 05:37:53 -04:00
extent_io.c Btrfs: add initial tracepoint support for btrfs 2011-03-28 05:37:33 -04:00
extent_io.h Btrfs: check items for correctness as we search 2011-03-17 14:21:37 -04:00
extent_map.c Btrfs: check return value of alloc_extent_map() 2011-02-14 16:21:37 -05:00
extent_map.h
file-item.c Btrfs: check return value of btrfs_alloc_path() 2011-03-28 05:37:54 -04:00
file.c Btrfs: deal with the case that we run out of space in the cache 2011-04-08 13:00:27 -04:00
free-space-cache.c Btrfs: deal with the case that we run out of space in the cache 2011-04-08 13:00:27 -04:00
free-space-cache.h Btrfs: add btrfs_trim_fs() to handle FITRIM 2011-03-28 05:37:47 -04:00
hash.h
inode-item.c
inode-map.c Btrfs: cleanup some BUG_ON() 2011-03-28 05:37:35 -04:00
inode.c Btrfs: reuse the extent_map we found when calling btrfs_get_extent 2011-04-08 13:00:41 -04:00
ioctl.c Btrfs: Fix uninitialized root flags for subvolumes 2011-04-05 01:20:24 -04:00
ioctl.h
Kconfig
locking.c
locking.h
lzo.c Btrfs: Avoid accessing unmapped kernel address 2011-02-16 15:37:58 -05:00
Makefile
ordered-data.c Btrfs: add initial tracepoint support for btrfs 2011-03-28 05:37:33 -04:00
ordered-data.h
orphan.c
print-tree.c
print-tree.h
ref-cache.c
ref-cache.h
relocation.c Btrfs: check return value of read_tree_block() 2011-03-28 05:37:37 -04:00
root-tree.c Btrfs: Fix uninitialized root flags for subvolumes 2011-04-05 01:20:24 -04:00
struct-funcs.c
super.c Btrfs: fix /proc/mounts info. 2011-04-05 01:19:41 -04:00
sysfs.c
transaction.c Btrfs: only retry transaction reservation once 2011-04-08 13:00:32 -04:00
transaction.h
tree-defrag.c
tree-log.c btrfs: make inode ref log recovery faster 2011-03-28 05:37:48 -04:00
tree-log.h
version.h
version.sh
volumes.c Btrfs: fix __btrfs_map_block on 32 bit machines 2011-03-28 05:37:59 -04:00
volumes.h Btrfs: make btrfs_map_block() return entire free extent for each device of RAID0/1/10/DUP 2011-03-28 05:37:45 -04:00
xattr.c Btrfs: add checks to verify dir items are correct 2011-03-17 14:21:41 -04:00
xattr.h
zlib.c