From 68e4eab191b7778a410c5ade2319ca9f4ee7442d Mon Sep 17 00:00:00 2001 From: Wang Shilong Date: Fri, 29 Mar 2013 23:03:21 +0000 Subject: [PATCH] --- yaml --- r: 374845 b: refs/heads/master c: f172393952a8771ca8970b8fcdd332a5a6ea0f56 h: refs/heads/master i: 374843: fdbd66f4dfda2af3739b85185faee8974814b4a9 v: v3 --- [refs] | 2 +- trunk/fs/btrfs/backref.c | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 81e1fb054fb0..6ce5aac88592 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 41b0fc42800569f63e029549b75c4c9cb63f2dfd +refs/heads/master: f172393952a8771ca8970b8fcdd332a5a6ea0f56 diff --git a/trunk/fs/btrfs/backref.c b/trunk/fs/btrfs/backref.c index bd605c87adfd..3dd0693bad78 100644 --- a/trunk/fs/btrfs/backref.c +++ b/trunk/fs/btrfs/backref.c @@ -900,7 +900,8 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans, if (ref->count && ref->root_id && ref->parent == 0) { /* no parent == root of tree */ ret = ulist_add(roots, ref->root_id, 0, GFP_NOFS); - BUG_ON(ret < 0); + if (ret < 0) + goto out; } if (ref->count && ref->parent) { struct extent_inode_elem *eie = NULL; @@ -920,6 +921,8 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans, ret = ulist_add_merge(refs, ref->parent, (uintptr_t)ref->inode_list, (u64 *)&eie, GFP_NOFS); + if (ret < 0) + goto out; if (!ret && extent_item_pos) { /* * we've recorded that parent, so we must extend @@ -930,7 +933,6 @@ static int find_parent_nodes(struct btrfs_trans_handle *trans, eie = eie->next; eie->next = ref->inode_list; } - BUG_ON(ret < 0); } kfree(ref); }