Commit 2f4cbe64 authored by Wyatt Banks's avatar Wyatt Banks Committed by Chris Mason
Browse files

Btrfs: Return value checking in module init

parent 3acd7ee8
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -42,18 +42,30 @@ struct extent_page_data {
	struct extent_map_tree *tree;
	get_extent_t *get_extent;
};

void __init extent_map_init(void)
int __init extent_map_init(void)
{
	extent_map_cache = btrfs_cache_create("extent_map",
					    sizeof(struct extent_map), 0,
					    NULL);
	if (!extent_map_cache)
		return -ENOMEM;
	extent_state_cache = btrfs_cache_create("extent_state",
					    sizeof(struct extent_state), 0,
					    NULL);
	if (!extent_state_cache)
		goto free_map_cache;
	extent_buffer_cache = btrfs_cache_create("extent_buffers",
					    sizeof(struct extent_buffer), 0,
					    NULL);
	if (!extent_buffer_cache)
		goto free_state_cache;
	return 0;

free_state_cache:
	kmem_cache_destroy(extent_state_cache);
free_map_cache:
	kmem_cache_destroy(extent_map_cache);
	return -ENOMEM;
}

void __exit extent_map_exit(void)
+1 −1
Original line number Diff line number Diff line
@@ -110,7 +110,7 @@ struct extent_map *alloc_extent_map(gfp_t mask);
void free_extent_map(struct extent_map *em);
int extent_read_full_page(struct extent_map_tree *tree, struct page *page,
			  get_extent_t *get_extent);
void __init extent_map_init(void);
int __init extent_map_init(void);
void __exit extent_map_exit(void);

int test_range_bit(struct extent_map_tree *tree, u64 start, u64 end,
+18 −3
Original line number Diff line number Diff line
@@ -347,9 +347,24 @@ static int __init init_btrfs_fs(void)
	btrfs_init_transaction_sys();
	err = btrfs_init_cachep();
	if (err)
		goto free_transaction_sys;
	err = extent_map_init();
	if (err)
		goto free_cachep;

	err = register_filesystem(&btrfs_fs_type);
	if (err)
		goto free_extent_map;
	return 0;

free_extent_map:
	extent_map_exit();
free_cachep:
	btrfs_destroy_cachep();
free_transaction_sys:
	btrfs_exit_transaction_sys();
	btrfs_exit_sysfs();
	return err;
	extent_map_init();
	return register_filesystem(&btrfs_fs_type);
}

static void __exit exit_btrfs_fs(void)