diff options
author | Wang Shilong <wangsl-fnst@cn.fujitsu.com> | 2013-04-10 07:22:50 -0400 |
---|---|---|
committer | Josef Bacik <jbacik@fusionio.com> | 2013-05-06 15:54:42 -0400 |
commit | 1149ab6bd48cf3b00c59e4f8ff79fbb1cf15b94b (patch) | |
tree | 883d8d57be3167e665e8188822002c54aa392389 | |
parent | 92f183aa5b8a8655431583e4c53e80fa3e0070e5 (diff) |
Btrfs: remove some BUG_ONs() when walking backref tree
The only error return value of __add_prelim_ref() is -ENOMEM,
just return errors rather than trigger BUG_ON().
Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com>
Reviewed-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
-rw-r--r-- | fs/btrfs/backref.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c index ba0fee7c3237..66f44c7534d0 100644 --- a/fs/btrfs/backref.c +++ b/fs/btrfs/backref.c | |||
@@ -582,7 +582,8 @@ static int __add_delayed_refs(struct btrfs_delayed_ref_head *head, u64 seq, | |||
582 | default: | 582 | default: |
583 | WARN_ON(1); | 583 | WARN_ON(1); |
584 | } | 584 | } |
585 | BUG_ON(ret); | 585 | if (ret) |
586 | return ret; | ||
586 | } | 587 | } |
587 | 588 | ||
588 | return 0; | 589 | return 0; |
@@ -680,7 +681,8 @@ static int __add_inline_refs(struct btrfs_fs_info *fs_info, | |||
680 | default: | 681 | default: |
681 | WARN_ON(1); | 682 | WARN_ON(1); |
682 | } | 683 | } |
683 | BUG_ON(ret); | 684 | if (ret) |
685 | return ret; | ||
684 | ptr += btrfs_extent_inline_ref_size(type); | 686 | ptr += btrfs_extent_inline_ref_size(type); |
685 | } | 687 | } |
686 | 688 | ||
@@ -762,7 +764,9 @@ static int __add_keyed_refs(struct btrfs_fs_info *fs_info, | |||
762 | default: | 764 | default: |
763 | WARN_ON(1); | 765 | WARN_ON(1); |
764 | } | 766 | } |
765 | BUG_ON(ret); | 767 | if (ret) |
768 | return ret; | ||
769 | |||
766 | } | 770 | } |
767 | 771 | ||
768 | return ret; | 772 | return ret; |