Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e5fffbac authored by chandan's avatar chandan Committed by Chris Mason
Browse files

Btrfs: open_ctree: Fix possible memory leak



After reading one of chunk or tree root tree's root node from disk, if the
root node does not have EXTENT_BUFFER_UPTODATE flag set, we fail to release
the memory used by the root node. Fix this.

Signed-off-by: default avatarChandan Rajendra <chandan@linux.vnet.ibm.com>
parent d9a0540a
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -2842,6 +2842,8 @@ int open_ctree(struct super_block *sb,
	    !extent_buffer_uptodate(chunk_root->node)) {
		printk(KERN_ERR "BTRFS: failed to read chunk root on %s\n",
		       sb->s_id);
		if (!IS_ERR(chunk_root->node))
			free_extent_buffer(chunk_root->node);
		chunk_root->node = NULL;
		goto fail_tree_roots;
	}
@@ -2880,6 +2882,8 @@ retry_root_backup:
	    !extent_buffer_uptodate(tree_root->node)) {
		printk(KERN_WARNING "BTRFS: failed to read tree root on %s\n",
		       sb->s_id);
		if (!IS_ERR(tree_root->node))
			free_extent_buffer(tree_root->node);
		tree_root->node = NULL;
		goto recovery_tree_root;
	}