 fs/reiser4/plugin/item/extent_item_ops.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff -puN fs/reiser4/plugin/item/extent_item_ops.c~reiser4-kill_hook_extent-fix fs/reiser4/plugin/item/extent_item_ops.c
--- linux-2.6.12-rc3-mm3/fs/reiser4/plugin/item/extent_item_ops.c~reiser4-kill_hook_extent-fix	2005-05-12 17:44:28.211859850 +0400
+++ linux-2.6.12-rc3-mm3-vs/fs/reiser4/plugin/item/extent_item_ops.c	2005-05-12 17:46:10.117503150 +0400
@@ -349,10 +349,9 @@ kill_hook_extent(const coord_t *coord, p
 			 */
 			/* if neighbors of item being removed are znodes -
 			 * link them */
-			UNDER_RW_VOID(tree, tree,
-				      write, link_left_and_right(left, right));
-
+			WLOCK_TREE(tree);
 			WLOCK_DK(tree);
+			link_left_and_right(left, right);
 			if (left) {
 				/* update right delimiting key of left
 				 * neighbor of extent item */
@@ -368,6 +367,7 @@ kill_hook_extent(const coord_t *coord, p
 				znode_set_rd_key(left, &key);
 			}
  			WUNLOCK_DK(tree);
+			WUNLOCK_TREE(tree);
 
 			from_off = get_key_offset(&min_item_key) >> PAGE_CACHE_SHIFT;
 			to_off = (get_key_offset(&max_item_key) + 1) >> PAGE_CACHE_SHIFT;

_
