]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Btrfs: remove some BUG_ONs() when walking backref tree
authorWang Shilong <wangsl-fnst@cn.fujitsu.com>
Wed, 10 Apr 2013 11:22:50 +0000 (11:22 +0000)
committerJosef Bacik <jbacik@fusionio.com>
Mon, 6 May 2013 19:54:42 +0000 (15:54 -0400)
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>
fs/btrfs/backref.c

index ba0fee7c3237d17c0e5b82df38bca06f04272445..66f44c7534d0e869efdf71d558d277be3a42d15e 100644 (file)
@@ -582,7 +582,8 @@ static int __add_delayed_refs(struct btrfs_delayed_ref_head *head, u64 seq,
                default:
                        WARN_ON(1);
                }
-               BUG_ON(ret);
+               if (ret)
+                       return ret;
        }
 
        return 0;
@@ -680,7 +681,8 @@ static int __add_inline_refs(struct btrfs_fs_info *fs_info,
                default:
                        WARN_ON(1);
                }
-               BUG_ON(ret);
+               if (ret)
+                       return ret;
                ptr += btrfs_extent_inline_ref_size(type);
        }
 
@@ -762,7 +764,9 @@ static int __add_keyed_refs(struct btrfs_fs_info *fs_info,
                default:
                        WARN_ON(1);
                }
-               BUG_ON(ret);
+               if (ret)
+                       return ret;
+
        }
 
        return ret;