Btrfs: check return value of kmalloc()

The check on the return value of kmalloc() is added to some places.

Signed-off-by: Tsutomu Itoh <t-itoh@jp.fujitsu.com>
Signed-off-by: Chris Mason <chris.mason@oracle.com>

authored by Tsutomu Itoh and committed by Chris Mason 8d413713 43e817a1

+7
+4
fs/btrfs/extent-tree.c
··· 8059 u64 group_start = group->key.objectid; 8060 new_extents = kmalloc(sizeof(*new_extents), 8061 GFP_NOFS); 8062 nr_extents = 1; 8063 ret = get_new_locations(reloc_inode, 8064 extent_key,
··· 8059 u64 group_start = group->key.objectid; 8060 new_extents = kmalloc(sizeof(*new_extents), 8061 GFP_NOFS); 8062 + if (!new_extents) { 8063 + ret = -ENOMEM; 8064 + goto out; 8065 + } 8066 nr_extents = 1; 8067 ret = get_new_locations(reloc_inode, 8068 extent_key,
+3
fs/btrfs/inode.c
··· 953 1, 0, NULL, GFP_NOFS); 954 while (start < end) { 955 async_cow = kmalloc(sizeof(*async_cow), GFP_NOFS); 956 async_cow->inode = inode; 957 async_cow->root = root; 958 async_cow->locked_page = locked_page; ··· 5002 inline_size = btrfs_file_extent_inline_item_len(leaf, 5003 btrfs_item_nr(leaf, path->slots[0])); 5004 tmp = kmalloc(inline_size, GFP_NOFS); 5005 ptr = btrfs_file_extent_inline_start(item); 5006 5007 read_extent_buffer(leaf, tmp, ptr, inline_size);
··· 953 1, 0, NULL, GFP_NOFS); 954 while (start < end) { 955 async_cow = kmalloc(sizeof(*async_cow), GFP_NOFS); 956 + BUG_ON(!async_cow); 957 async_cow->inode = inode; 958 async_cow->root = root; 959 async_cow->locked_page = locked_page; ··· 5001 inline_size = btrfs_file_extent_inline_item_len(leaf, 5002 btrfs_item_nr(leaf, path->slots[0])); 5003 tmp = kmalloc(inline_size, GFP_NOFS); 5004 + if (!tmp) 5005 + return -ENOMEM; 5006 ptr = btrfs_file_extent_inline_start(item); 5007 5008 read_extent_buffer(leaf, tmp, ptr, inline_size);