diff options
Diffstat (limited to 'fs/btrfs/disk-io.c')
| -rw-r--r-- | fs/btrfs/disk-io.c | 11 | 
1 files changed, 9 insertions, 2 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index f3b287c22ca..34f7c375567 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); @@ -1982,6 +1985,10 @@ struct btrfs_root *open_ctree(struct super_block *sb,  	fs_info->fs_root = btrfs_read_fs_root_no_name(fs_info, &location);  	if (!fs_info->fs_root)  		goto fail_trans_kthread; +	if (IS_ERR(fs_info->fs_root)) { +		err = PTR_ERR(fs_info->fs_root); +		goto fail_trans_kthread; +	}  	if (!(sb->s_flags & MS_RDONLY)) {  		down_read(&fs_info->cleanup_work_sem);  |