diff options
author | Liu Bo <bo.li.liu@oracle.com> | 2013-05-13 22:12:15 -0400 |
---|---|---|
committer | Josef Bacik <jbacik@fusionio.com> | 2013-05-17 21:40:27 -0400 |
commit | b9aa55bed1c1a3a329da31884b643c62d57ebb21 (patch) | |
tree | 8a471df81a5c15b4750b64360f26681dfa3d7ec3 /fs/btrfs | |
parent | d88033dbf4c23279b012725876f1e164e09644ff (diff) |
Btrfs: return errno if possible when we fail to allocate memory
We need to set return value explicitly, otherwise we'll lose the error
value.
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r-- | fs/btrfs/inode.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 1669c3b4be2f..99a9c25d36a6 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -714,8 +714,10 @@ retry: | |||
714 | async_extent->ram_size - 1, 0); | 714 | async_extent->ram_size - 1, 0); |
715 | 715 | ||
716 | em = alloc_extent_map(); | 716 | em = alloc_extent_map(); |
717 | if (!em) | 717 | if (!em) { |
718 | ret = -ENOMEM; | ||
718 | goto out_free_reserve; | 719 | goto out_free_reserve; |
720 | } | ||
719 | em->start = async_extent->start; | 721 | em->start = async_extent->start; |
720 | em->len = async_extent->ram_size; | 722 | em->len = async_extent->ram_size; |
721 | em->orig_start = em->start; | 723 | em->orig_start = em->start; |
@@ -922,8 +924,10 @@ static noinline int __cow_file_range(struct btrfs_trans_handle *trans, | |||
922 | } | 924 | } |
923 | 925 | ||
924 | em = alloc_extent_map(); | 926 | em = alloc_extent_map(); |
925 | if (!em) | 927 | if (!em) { |
928 | ret = -ENOMEM; | ||
926 | goto out_reserve; | 929 | goto out_reserve; |
930 | } | ||
927 | em->start = start; | 931 | em->start = start; |
928 | em->orig_start = em->start; | 932 | em->orig_start = em->start; |
929 | ram_size = ins.offset; | 933 | ram_size = ins.offset; |