summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Carpenter <error27@gmail.com>2010-05-29 09:43:07 +0000
committerChris Mason <chris.mason@oracle.com>2010-06-11 15:57:34 -0400
commit676e4c86391936795c82ccd11ca9671ee6307936 (patch)
treeb39173542a91c008d54d1acf6463b874793accee
parentfb4f6f910ca6f58564c31a680ef88940d8192713 (diff)
downloadlinux-stable-676e4c86391936795c82ccd11ca9671ee6307936.tar.gz
linux-stable-676e4c86391936795c82ccd11ca9671ee6307936.tar.bz2
linux-stable-676e4c86391936795c82ccd11ca9671ee6307936.zip
Btrfs: handle kzalloc() failure in open_ctree()
Unwind and return -ENOMEM if the allocation fails here. Signed-off-by: Dan Carpenter <error27@gmail.com> Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r--fs/btrfs/disk-io.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index f3b287c22caf..73895baf6e07 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -1941,8 +1941,11 @@ struct btrfs_root *open_ctree(struct super_block *sb,
btrfs_level_size(tree_root,
btrfs_super_log_root_level(disk_super));
- log_tree_root = kzalloc(sizeof(struct btrfs_root),
- GFP_NOFS);
+ log_tree_root = kzalloc(sizeof(struct btrfs_root), GFP_NOFS);
+ if (!log_tree_root) {
+ err = -ENOMEM;
+ goto fail_trans_kthread;
+ }
__setup_root(nodesize, leafsize, sectorsize, stripesize,
log_tree_root, fs_info, BTRFS_TREE_LOG_OBJECTID);