btrfs: fix inode rbtree corruption
authorFrom: Nick Piggin <npiggin@suse.de>
Fri, 21 Aug 2009 08:09:44 +0000 (10:09 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Fri, 21 Aug 2009 08:09:44 +0000 (10:09 +0200)
commit03e860bd9f6a3cca747b0795bed26279a8b420a0
tree9a6e6fe663bfc5f01edac558433f314657c2eb67
parentdf4ecf1524c7793de3121b2d4e5fc6bcc0da3bfb
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>
fs/btrfs/inode.c