linux/fs/btrfs
From: Nick Piggin 03e860bd9f btrfs: fix inode rbtree corruption
Node may not be inserted over existing node. This causes inode tree
corruption and I was seeing crashes in inode_tree_del which I can not
reproduce after this patch.

The other way to fix this would be to tie inode lifetime in the rbtree
with inode while not in freeing state. I had a look at this but it is
not so trivial at this point. At least this patch gets things working again.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Cc: Chris Mason <chris.mason@oracle.com>
Acked-by: Yan Zheng <zheng.yan@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2009-08-21 10:09:44 +02:00
..
acl.c helpers for acl caching + switch to those 2009-06-24 08:17:07 -04:00
async-thread.c Btrfs: convert nested spin_lock_irqsave to spin_lock 2009-07-22 16:49:00 -04:00
async-thread.h
btrfs_inode.h switch btrfs to inode->i_acl 2009-06-24 08:17:05 -04:00
compat.h
compression.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
compression.h
ctree.c Btrfs: Avoid delayed reference update looping 2009-07-24 12:42:46 -04:00
ctree.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable 2009-07-30 16:46:48 -07:00
delayed-ref.c Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
delayed-ref.h Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
dir-item.c
disk-io.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable 2009-07-30 16:46:48 -07:00
disk-io.h
export.c Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
export.h
extent_io.c btrfs: Fix set/clear_extent_bit for 'end == (u64)-1' 2009-06-10 11:29:46 -04:00
extent_io.h
extent_map.c Btrfs: kill btrfs_cache_create 2009-04-24 15:46:04 -04:00
extent_map.h
extent-tree.c Btrfs: make sure the async caching thread advances the key 2009-07-31 14:57:55 -04:00
file-item.c
file.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
free-space-cache.c Btrfs: fix btrfs_remove_from_free_space corner case 2009-07-31 11:03:58 -04:00
free-space-cache.h Btrfs: use hybrid extents+bitmap rb tree for free space 2009-07-24 09:23:30 -04:00
hash.h Btrfs: remove crc32c.h and use libcrc32c directly. 2009-06-10 11:29:53 -04:00
inode-item.c
inode-map.c Btrfs: Fix a trivial warning using max() of u64 vs ULL. 2009-04-27 08:37:49 -04:00
inode.c btrfs: fix inode rbtree corruption 2009-08-21 10:09:44 +02:00
ioctl.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
ioctl.h
Kconfig
locking.c
locking.h
Makefile Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
ordered-data.c
ordered-data.h
orphan.c
print-tree.c Btrfs: remove of redundant btrfs_header_level 2009-07-22 16:52:13 -04:00
print-tree.h
ref-cache.c
ref-cache.h
relocation.c Btrfs: fix balancing oops when invalidate_inode_pages2 returns EBUSY 2009-08-07 13:51:33 -04:00
root-tree.c Btrfs: Mixed back reference (FORWARD ROLLING FORMAT CHANGE) 2009-06-10 11:29:46 -04:00
struct-funcs.c
super.c headers: smp_lock.h redux 2009-07-12 12:22:34 -07:00
sysfs.c
transaction.c Btrfs: be more polite in the async caching threads 2009-07-30 10:14:46 -04:00
transaction.h Btrfs: be more polite in the async caching threads 2009-07-30 10:14:46 -04:00
tree-defrag.c
tree-log.c Btrfs: change how we unpin extents 2009-07-27 13:57:01 -04:00
tree-log.h
version.h
version.sh
volumes.c Btrfs: find smallest available device extent during chunk allocation 2009-07-24 16:41:41 -04:00
volumes.h Btrfs: avoid races between super writeout and device list updates 2009-06-10 15:17:02 -04:00
xattr.c
xattr.h
zlib.c Btrfs: correct error-handling zlib error handling 2009-08-07 13:51:33 -04:00