Btrfs: kfree()ing ERR_PTRs
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 4 Sep 2014 11:09:15 +0000 (14:09 +0300)
committerChris Mason <clm@fb.com>
Mon, 8 Sep 2014 20:56:42 +0000 (13:56 -0700)
commitc47ca32d3aadb234f73389a34c97574085bc9eda
treec53ea33e0067560a26f0122b0b606cc5743b8acc
parentdac5705cad20070a70bb028ca52e1f0bc157b42d
Btrfs: kfree()ing ERR_PTRs

The "inherit" in btrfs_ioctl_snap_create_v2() and "vol_args" in
btrfs_ioctl_rm_dev() are ERR_PTRs so we can't call kfree() on them.

These kind of bugs are "One Err Bugs" where there is just one error
label that does everything.  I could set the "inherit = NULL" and keep
the single out label but it ends up being more complicated that way.  It
makes the code simpler to re-order the unwind so it's in the mirror
order of the allocation and introduce some new error labels.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Chris Mason <clm@fb.com>
fs/btrfs/ioctl.c