]> Pileus Git - ~andy/linux/blobdiff - fs/bio-integrity.c
Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[~andy/linux] / fs / bio-integrity.c
index 8fb42916d8a29812e349fdbfa980ef1c34056ce4..fc60b31453eefbbdcc234c7df78c5504da655980 100644 (file)
@@ -716,13 +716,14 @@ int bioset_integrity_create(struct bio_set *bs, int pool_size)
                return 0;
 
        bs->bio_integrity_pool = mempool_create_slab_pool(pool_size, bip_slab);
-
-       bs->bvec_integrity_pool = biovec_create_pool(bs, pool_size);
-       if (!bs->bvec_integrity_pool)
+       if (!bs->bio_integrity_pool)
                return -1;
 
-       if (!bs->bio_integrity_pool)
+       bs->bvec_integrity_pool = biovec_create_pool(bs, pool_size);
+       if (!bs->bvec_integrity_pool) {
+               mempool_destroy(bs->bio_integrity_pool);
                return -1;
+       }
 
        return 0;
 }
@@ -734,7 +735,7 @@ void bioset_integrity_free(struct bio_set *bs)
                mempool_destroy(bs->bio_integrity_pool);
 
        if (bs->bvec_integrity_pool)
-               mempool_destroy(bs->bio_integrity_pool);
+               mempool_destroy(bs->bvec_integrity_pool);
 }
 EXPORT_SYMBOL(bioset_integrity_free);