{
int err = -ENOMEM;
- dst_bio_set = bioset_create(32, 32);
+ dst_bio_set = bioset_create(32, sizeof(struct dst_export_priv));
if (!dst_bio_set)
goto err_out_exit;
__free_page(bv->bv_page);
}
- if (priv) {
- struct dst_node *n = priv->state->node;
-
+ if (priv)
dst_state_put(priv->state);
- mempool_free(priv, n->trans_pool);
- }
bio_free(bio, dst_bio_set);
}
dst_bio_set);
if (!bio)
goto err_out_exit;
- bio->bi_private = NULL;
- priv = mempool_alloc(st->node->trans_pool, GFP_KERNEL);
- if (!priv)
- goto err_out_free;
+ priv = (struct dst_export_priv *)(((void *)bio) - sizeof (struct dst_export_priv));
priv->state = dst_state_get(st);
priv->bio = bio;