diff options
author | Tsutomu Itoh <t-itoh@jp.fujitsu.com> | 2012-09-06 02:18:10 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@fusionio.com> | 2012-10-01 15:19:14 -0400 |
commit | 3d6b5c3b5c0b970ce8a9d3bac6854f5c0ce0295a (patch) | |
tree | aadfc9ad81660e5ef11121a4529213e8cd1062de | |
parent | f54fb859da53f04a443c5e3f4cb9b936ed42d227 (diff) |
Btrfs: check return value of ulist_alloc() properly
ulist_alloc() has the possibility of returning NULL.
So, it is necessary to check the return value.
Signed-off-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
-rw-r--r-- | fs/btrfs/qgroup.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c index 9b707ba5c6c4..5039686df6ae 100644 --- a/fs/btrfs/qgroup.c +++ b/fs/btrfs/qgroup.c | |||
@@ -1469,6 +1469,10 @@ int btrfs_qgroup_reserve(struct btrfs_root *root, u64 num_bytes) | |||
1469 | * be exceeded | 1469 | * be exceeded |
1470 | */ | 1470 | */ |
1471 | ulist = ulist_alloc(GFP_ATOMIC); | 1471 | ulist = ulist_alloc(GFP_ATOMIC); |
1472 | if (!ulist) { | ||
1473 | ret = -ENOMEM; | ||
1474 | goto out; | ||
1475 | } | ||
1472 | ulist_add(ulist, qgroup->qgroupid, (uintptr_t)qgroup, GFP_ATOMIC); | 1476 | ulist_add(ulist, qgroup->qgroupid, (uintptr_t)qgroup, GFP_ATOMIC); |
1473 | ULIST_ITER_INIT(&uiter); | 1477 | ULIST_ITER_INIT(&uiter); |
1474 | while ((unode = ulist_next(ulist, &uiter))) { | 1478 | while ((unode = ulist_next(ulist, &uiter))) { |
@@ -1541,6 +1545,10 @@ void btrfs_qgroup_free(struct btrfs_root *root, u64 num_bytes) | |||
1541 | goto out; | 1545 | goto out; |
1542 | 1546 | ||
1543 | ulist = ulist_alloc(GFP_ATOMIC); | 1547 | ulist = ulist_alloc(GFP_ATOMIC); |
1548 | if (!ulist) { | ||
1549 | btrfs_std_error(fs_info, -ENOMEM); | ||
1550 | goto out; | ||
1551 | } | ||
1544 | ulist_add(ulist, qgroup->qgroupid, (uintptr_t)qgroup, GFP_ATOMIC); | 1552 | ulist_add(ulist, qgroup->qgroupid, (uintptr_t)qgroup, GFP_ATOMIC); |
1545 | ULIST_ITER_INIT(&uiter); | 1553 | ULIST_ITER_INIT(&uiter); |
1546 | while ((unode = ulist_next(ulist, &uiter))) { | 1554 | while ((unode = ulist_next(ulist, &uiter))) { |