diff options
| author | Wang Shilong <wangsl-fnst@cn.fujitsu.com> | 2013-02-27 06:20:56 -0500 |
|---|---|---|
| committer | Josef Bacik <jbacik@fusionio.com> | 2013-03-01 10:13:04 -0500 |
| commit | 84cbe2f725f59b72fffb48ab7161e771eeee5103 (patch) | |
| tree | 5014eb497d28c75cbeb2784f7078a4bde5cb7008 | |
| parent | 06b3a860dcf596bdc2bb1cca3252d3907b581938 (diff) | |
Btrfs: return ENOMEM rather than use BUG_ON when btrfs_alloc_path fails
Return ENOMEM rather trigger BUG_ON, fix it.
Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com>
Reviewed-by: Miao Xie <miaox@cn.fujitsu.com>
Reviewed-by: Zach Brown <zab@redhat.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
| -rw-r--r-- | fs/btrfs/qgroup.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index f011d9b8ffb1..69fa487e29ce 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c | |||
| @@ -620,7 +620,9 @@ static int update_qgroup_limit_item(struct btrfs_trans_handle *trans, | |||
| 620 | key.offset = qgroupid; | 620 | key.offset = qgroupid; |
| 621 | 621 | ||
| 622 | path = btrfs_alloc_path(); | 622 | path = btrfs_alloc_path(); |
| 623 | BUG_ON(!path); | 623 | if (!path) |
| 624 | return -ENOMEM; | ||
| 625 | |||
| 624 | ret = btrfs_search_slot(trans, root, &key, path, 0, 1); | 626 | ret = btrfs_search_slot(trans, root, &key, path, 0, 1); |
| 625 | if (ret > 0) | 627 | if (ret > 0) |
| 626 | ret = -ENOENT; | 628 | ret = -ENOENT; |
| @@ -661,7 +663,9 @@ static int update_qgroup_info_item(struct btrfs_trans_handle *trans, | |||
| 661 | key.offset = qgroup->qgroupid; | 663 | key.offset = qgroup->qgroupid; |
| 662 | 664 | ||
| 663 | path = btrfs_alloc_path(); | 665 | path = btrfs_alloc_path(); |
| 664 | BUG_ON(!path); | 666 | if (!path) |
| 667 | return -ENOMEM; | ||
| 668 | |||
| 665 | ret = btrfs_search_slot(trans, root, &key, path, 0, 1); | 669 | ret = btrfs_search_slot(trans, root, &key, path, 0, 1); |
| 666 | if (ret > 0) | 670 | if (ret > 0) |
| 667 | ret = -ENOENT; | 671 | ret = -ENOENT; |
| @@ -702,7 +706,9 @@ static int update_qgroup_status_item(struct btrfs_trans_handle *trans, | |||
| 702 | key.offset = 0; | 706 | key.offset = 0; |
| 703 | 707 | ||
| 704 | path = btrfs_alloc_path(); | 708 | path = btrfs_alloc_path(); |
| 705 | BUG_ON(!path); | 709 | if (!path) |
| 710 | return -ENOMEM; | ||
| 711 | |||
| 706 | ret = btrfs_search_slot(trans, root, &key, path, 0, 1); | 712 | ret = btrfs_search_slot(trans, root, &key, path, 0, 1); |
| 707 | if (ret > 0) | 713 | if (ret > 0) |
| 708 | ret = -ENOENT; | 714 | ret = -ENOENT; |
