aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorGu Zheng <guz.fnst@cn.fujitsu.com>2013-09-11 17:23:21 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-11 18:58:21 -0400
commitbc5c8f0783a4a2b43d05155782e71a22a91b26a5 (patch)
treecd972f6507e537ef5eec06cd522b5a2bfa27535d /fs
parenta6b088875b5cfc2be95242826f31523214c083a7 (diff)
fs/bio-integrity: fix a potential mem leak
Free the bio_integrity_pool in the fail path of biovec_create_pool in function bioset_integrity_create(). Signed-off-by: Gu Zheng <guz.fnst@cn.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/bio-integrity.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/bio-integrity.c b/fs/bio-integrity.c
index 8fb42916d8a2..60250847929f 100644
--- a/fs/bio-integrity.c
+++ b/fs/bio-integrity.c
@@ -716,13 +716,14 @@ int bioset_integrity_create(struct bio_set *bs, int pool_size)
716 return 0; 716 return 0;
717 717
718 bs->bio_integrity_pool = mempool_create_slab_pool(pool_size, bip_slab); 718 bs->bio_integrity_pool = mempool_create_slab_pool(pool_size, bip_slab);
719 719 if (!bs->bio_integrity_pool)
720 bs->bvec_integrity_pool = biovec_create_pool(bs, pool_size);
721 if (!bs->bvec_integrity_pool)
722 return -1; 720 return -1;
723 721
724 if (!bs->bio_integrity_pool) 722 bs->bvec_integrity_pool = biovec_create_pool(bs, pool_size);
723 if (!bs->bvec_integrity_pool) {
724 mempool_destroy(bs->bio_integrity_pool);
725 return -1; 725 return -1;
726 }
726 727
727 return 0; 728 return 0;
728} 729}