|
@@ -51,7 +51,7 @@ struct bio_integrity_payload *bio_integrity_alloc(struct bio *bio,
|
|
|
unsigned long idx = BIO_POOL_NONE;
|
|
|
unsigned inline_vecs;
|
|
|
|
|
|
- if (!bs) {
|
|
|
+ if (!bs || !bs->bio_integrity_pool) {
|
|
|
bip = kmalloc(sizeof(struct bio_integrity_payload) +
|
|
|
sizeof(struct bio_vec) * nr_vecs, gfp_mask);
|
|
|
inline_vecs = nr_vecs;
|
|
@@ -104,7 +104,7 @@ void bio_integrity_free(struct bio *bio)
|
|
|
kfree(page_address(bip->bip_vec->bv_page) +
|
|
|
bip->bip_vec->bv_offset);
|
|
|
|
|
|
- if (bs) {
|
|
|
+ if (bs && bs->bio_integrity_pool) {
|
|
|
if (bip->bip_slab != BIO_POOL_NONE)
|
|
|
bvec_free(bs->bvec_integrity_pool, bip->bip_vec,
|
|
|
bip->bip_slab);
|