dm: fix dm_target_io leak if clone_bio() returns an error
authorMikulas Patocka <mpatocka@redhat.com>
Sat, 9 Apr 2016 16:48:18 +0000 (12:48 -0400)
committerMike Snitzer <snitzer@redhat.com>
Mon, 11 Apr 2016 15:49:09 +0000 (11:49 -0400)
commit072623de1f964c7ff01c46a9101af1c822fd2873
tree3ed2b05ecda7041e5225db0dd9ba83e555e0c54c
parentbf16200689118d19de1b8d2a3c314fc21f5dc7bb
dm: fix dm_target_io leak if clone_bio() returns an error

Commit c80914e81ec5b08 ("dm: return error if bio_integrity_clone() fails
in clone_bio()") changed clone_bio() such that if it does return error
then the alloc_tio() created resources (both the bio that was allocated
to be a clone and the containing dm_target_io struct) will leak.

Fix this by calling free_tio() in __clone_and_map_data_bio()'s
clone_bio() error path.

Fixes: c80914e81ec5b08 ("dm: return error if bio_integrity_clone() fails in clone_bio()")
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm.c