From 2d2cb285af8f8c622d40a9f1d0dda6d0bbab1f90 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Fri, 1 May 2009 01:10:52 +0200 Subject: [PATCH] --- yaml --- r: 173163 b: refs/heads/master c: 148d3504c1d9f964cf14fafc46d2b7d1f0bed2b1 h: refs/heads/master i: 173161: dcfe18ff9627738383ea7a4f6d9e01116ae16656 173159: 26e46dc84923b60d047495a03a754530227f24fd v: v3 --- [refs] | 2 +- trunk/fs/reiserfs/fix_node.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 46341f43d45d..850333183d28 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5e69e3a4492ea5abfd2e8ddc575448becf28e4d9 +refs/heads/master: 148d3504c1d9f964cf14fafc46d2b7d1f0bed2b1 diff --git a/trunk/fs/reiserfs/fix_node.c b/trunk/fs/reiserfs/fix_node.c index bf5f2cbdb063..3a685e3f754f 100644 --- a/trunk/fs/reiserfs/fix_node.c +++ b/trunk/fs/reiserfs/fix_node.c @@ -1971,7 +1971,9 @@ static int get_neighbors(struct tree_balance *tb, int h) tb->FL[h]) ? tb->lkey[h] : B_NR_ITEMS(tb-> FL[h]); son_number = B_N_CHILD_NUM(tb->FL[h], child_position); + reiserfs_write_unlock(sb); bh = sb_bread(sb, son_number); + reiserfs_write_lock(sb); if (!bh) return IO_ERROR; if (FILESYSTEM_CHANGED_TB(tb)) { @@ -2009,7 +2011,9 @@ static int get_neighbors(struct tree_balance *tb, int h) child_position = (bh == tb->FR[h]) ? tb->rkey[h] + 1 : 0; son_number = B_N_CHILD_NUM(tb->FR[h], child_position); + reiserfs_write_unlock(sb); bh = sb_bread(sb, son_number); + reiserfs_write_lock(sb); if (!bh) return IO_ERROR; if (FILESYSTEM_CHANGED_TB(tb)) {