Btrfs: fix double free in the btrfs_qgroup_account_ref()
authorWang Shilong <wangsl-fnst@cn.fujitsu.com>
Mon, 25 Mar 2013 11:08:23 +0000 (11:08 +0000)
committerJosef Bacik <jbacik@fusionio.com>
Thu, 28 Mar 2013 13:51:29 +0000 (09:51 -0400)
commita7975026ff9ddf91ba190ae2b71699dd156395e3
tree6161c6ac3b7a0b2cbcc40b0126c69a261768b4ed
parentfdf30d1c1b386e1b73116cc7e0fb14e962b763b0
Btrfs: fix double free in the btrfs_qgroup_account_ref()

The function btrfs_find_all_roots is responsible to allocate
memory for 'roots' and free it if errors happen,so the caller should not
free it again since the work has been done.

Besides,'tmp' is allocated after the function btrfs_find_all_roots,
so we can return directly if btrfs_find_all_roots() fails.

Signed-off-by: Wang Shilong <wangsl-fnst@cn.fujitsu.com>
Reviewed-by: Miao Xie <miaox@cn.fujitsu.com>
Reviewed-by: Jan Schmidt <list.btrfs@jan-o-sch.net>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
fs/btrfs/qgroup.c