linux/fs/btrfs
Josef Bacik df98b6e2c5 Btrfs: fix how we merge extent states and deal with cached states
First, we can sometimes free the state we're merging, which means anybody who
calls merge_state() may have the state it passed in free'ed.  This is
problematic because we could end up caching the state, which makes caching
useless as the state will no longer be part of the tree.  So instead of free'ing
the state we passed into merge_state(), set it's end to the other->end and free
the other state.  This way we are sure to cache the correct state.  Also because
we can merge states together, instead of only using the cache'd state if it's
start == the start we are looking for, go ahead and use it if the start we are
looking for is within the range of the cached state.  Thanks,

Signed-off-by: Josef Bacik <josef@redhat.com>
2011-07-11 10:00:48 -04:00
..
acl.c Merge branch 'cleanups' of git://repo.or.cz/linux-2.6/btrfs-unstable into inode_numbers 2011-05-22 12:33:42 -04:00
async-thread.c Btrfs: don't walk around with task->state != TASK_RUNNING 2010-05-25 10:34:58 -04:00
async-thread.h Btrfs: fix deadlock on async thread startup 2009-10-05 09:44:45 -04:00
btrfs_inode.h Merge branch 'for-chris' of 2011-05-28 07:00:39 -04:00
compat.h Btrfs: drop remaining LINUX_KERNEL_VERSION checks and compat code 2009-01-06 09:38:55 -05:00
compression.c Merge branch 'cleanups' of git://repo.or.cz/linux-2.6/btrfs-unstable into inode_numbers 2011-05-22 12:33:42 -04:00
compression.h btrfs: rename variables clashing with global function names 2011-05-02 13:57:19 +02:00
ctree.c Btrfs: don't map extent buffer if path->skip_locking is set 2011-06-10 12:14:12 +02:00
ctree.h Btrfs: serialize flushers in reserve_metadata_bytes 2011-07-11 09:58:48 -04:00
delayed-inode.c btrfs: fix inconsonant inode information 2011-06-27 11:34:27 -04:00
delayed-inode.h btrfs: fix inconsonant inode information 2011-06-27 11:34:27 -04:00
delayed-ref.c btrfs: remove old unused commented out code 2011-05-06 12:34:10 +02:00
delayed-ref.h btrfs: remove all unused functions 2011-05-06 12:34:03 +02:00
dir-item.c Btrfs: try to only do one btrfs_search_slot in do_setxattr 2011-07-11 09:58:45 -04:00
disk-io.c btrfs: fix uninitialized return value 2011-06-17 14:54:18 -04:00
disk-io.h Merge branch 'cleanups' of git://repo.or.cz/linux-2.6/btrfs-unstable into inode_numbers 2011-05-22 12:33:42 -04:00
export.c Merge branch 'ino-alloc' of git://repo.or.cz/linux-btrfs-devel into inode_numbers 2011-05-21 09:27:38 -04:00
export.h NFS support for btrfs - v3 2008-09-25 11:04:06 -04:00
extent_io.c Btrfs: fix how we merge extent states and deal with cached states 2011-07-11 10:00:48 -04:00
extent_io.h btrfs: remove 64bit alignment padding to allow extent_buffer to fit into one fewer cacheline 2011-06-10 18:57:10 -04:00
extent_map.c btrfs: drop gfp parameter from alloc_extent_map 2011-05-02 13:57:21 +02:00
extent_map.h btrfs: drop gfp parameter from alloc_extent_map 2011-05-02 13:57:21 +02:00
extent-tree.c Btrfs: serialize flushers in reserve_metadata_bytes 2011-07-11 09:58:48 -04:00
file-item.c Merge branch 'cleanups_and_fixes' into inode_numbers 2011-05-23 14:37:47 -04:00
file.c btrfs: add helper for fs_info->closing 2011-06-04 08:11:22 -04:00
free-space-cache.c Btrfs: use the normal checksumming infrastructure for free space cache 2011-07-11 09:58:49 -04:00
free-space-cache.h btrfs: remove all unused functions 2011-05-06 12:34:03 +02:00
hash.h Btrfs: remove crc32c.h and use libcrc32c directly. 2009-06-10 11:29:53 -04:00
inode-item.c Btrfs: BUG_ON is deleted from the caller of btrfs_truncate_item & btrfs_extend_item 2011-05-23 13:24:39 -04:00
inode-map.c btrfs: add helper for fs_info->closing 2011-06-04 08:11:22 -04:00
inode-map.h Btrfs: Support reading/writing on disk free ino cache 2011-04-25 16:46:11 +08:00
inode.c btrfs: fix oops when doing space balance 2011-07-06 18:51:53 -04:00
ioctl.c Btrfs: protect the pending_snapshots list with trans_lock 2011-06-15 13:24:46 -04:00
ioctl.h Btrfs: add mount -o auto_defrag 2011-05-26 17:52:15 -04:00
Kconfig btrfs: Add lzo compression support 2010-12-22 23:15:47 +08:00
locking.c btrfs: remove all unused functions 2011-05-06 12:34:03 +02:00
locking.h btrfs: remove all unused functions 2011-05-06 12:34:03 +02:00
lzo.c Btrfs: Avoid accessing unmapped kernel address 2011-02-16 15:37:58 -05:00
Makefile Merge branch 'for-chris' of git://git.kernel.org/pub/scm/linux/kernel/git/arne/btrfs-unstable-arne into inode_numbers 2011-05-23 06:30:52 -04:00
ordered-data.c Btrfs: add initial tracepoint support for btrfs 2011-03-28 05:37:33 -04:00
ordered-data.h btrfs: Allow to add new compression algorithm 2010-12-22 23:15:45 +08:00
orphan.c Btrfs: fixup return code for btrfs_del_orphan_item 2010-12-09 13:57:15 -05:00
print-tree.c btrfs: fix missing break in switch phrase 2011-01-28 16:40:37 -05:00
print-tree.h
ref-cache.c btrfs: remove all unused functions 2011-05-06 12:34:03 +02:00
ref-cache.h btrfs: remove all unused functions 2011-05-06 12:34:03 +02:00
relocation.c Btrfs: fix relocation races 2011-06-17 13:36:58 -04:00
root-tree.c Merge branch 'cleanups_and_fixes' into inode_numbers 2011-05-23 14:37:47 -04:00
scrub.c btrfs: remove unneeded includes from scrub.c 2011-06-10 14:59:52 +02:00
struct-funcs.c Btrfs: Fix checkpatch.pl warnings 2009-01-05 21:25:51 -05:00
super.c btrfs: add missing options displayed in mount output 2011-07-06 18:46:43 -04:00
sysfs.c btrfs: Remove unused sysfs code 2011-06-17 14:54:18 -04:00
transaction.c Btrfs: do transaction space reservation before joining the transaction 2011-07-11 09:58:47 -04:00
transaction.h Merge branch 'for-chris' of 2011-05-28 07:00:39 -04:00
tree-defrag.c btrfs: drop unused parameter from btrfs_release_path 2011-05-02 13:57:22 +02:00
tree-log.c btrfs: fix dereference of ERR_PTR value 2011-06-17 14:54:17 -04:00
tree-log.h btrfs: remove unused function prototypes 2011-05-04 14:01:26 +02:00
version.h Update Btrfs files for in-kernel usage 2008-09-25 15:41:59 -04:00
volumes.c Btrfs: don't panic if we get an error while balancing V2 2011-07-06 18:46:43 -04:00
volumes.h Merge branch 'cleanups_and_fixes' into inode_numbers 2011-05-23 14:37:47 -04:00
xattr.c Btrfs: try to only do one btrfs_search_slot in do_setxattr 2011-07-11 09:58:45 -04:00
xattr.h fs/vfs/security: pass last path component to LSM on inode creation 2011-02-01 11:12:29 -05:00
zlib.c zlib: slim down zlib_deflate() workspace when possible 2011-03-22 17:44:17 -07:00