Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 128442
b: refs/heads/master
c: 252c38f
h: refs/heads/master
v: v3
  • Loading branch information
Yan authored and David Woodhouse committed Aug 29, 2007
1 parent 1b4b7e1 commit b252438
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 58176a9604c5db1784d2c979aea472b3be40b6f0
refs/heads/master: 252c38f0697b6889c03542fa3c96143d3db4d9d8
14 changes: 8 additions & 6 deletions trunk/fs/btrfs/ctree.c
Original file line number Diff line number Diff line change
Expand Up @@ -266,8 +266,10 @@ int btrfs_realloc_node(struct btrfs_trans_handle *trans,
err = __btrfs_cow_block(trans, root, cur_bh, parent, i,
&tmp_bh, search_start,
min(8, end_slot - i));
if (err)
if (err) {
brelse(cur_bh);
break;
}
search_start = bh_blocknr(tmp_bh);
*last_ret = search_start;
if (parent_level == 1)
Expand Down Expand Up @@ -881,7 +883,6 @@ int btrfs_search_slot(struct btrfs_trans_handle *trans, struct btrfs_root
ins_len, int cow)
{
struct buffer_head *b;
struct buffer_head *cow_buf;
struct btrfs_node *c;
u64 blocknr;
int slot;
Expand All @@ -905,12 +906,11 @@ int btrfs_search_slot(struct btrfs_trans_handle *trans, struct btrfs_root
wret = btrfs_cow_block(trans, root, b,
p->nodes[level + 1],
p->slots[level + 1],
&cow_buf);
&b);
if (wret) {
btrfs_block_release(root, cow_buf);
btrfs_block_release(root, b);
return wret;
}
b = cow_buf;
c = btrfs_buffer_node(b);
}
BUG_ON(!cow && ins_len);
Expand Down Expand Up @@ -1075,8 +1075,9 @@ static int balance_node_right(struct btrfs_trans_handle *trans, struct

max_push = src_nritems / 2 + 1;
/* don't try to empty the node */
if (max_push > src_nritems)
if (max_push >= src_nritems)
return 1;

if (max_push < push_items)
push_items = max_push;

Expand Down Expand Up @@ -1465,6 +1466,7 @@ static int push_leaf_left(struct btrfs_trans_handle *trans, struct btrfs_root
ret = btrfs_cow_block(trans, root, t, path->nodes[1], slot - 1, &t);
if (ret) {
/* we hit -ENOSPC, but it isn't fatal here */
btrfs_block_release(root, t);
return 1;
}
left = btrfs_buffer_leaf(t);
Expand Down

0 comments on commit b252438

Please sign in to comment.