mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 08:31:55 +00:00
Staging: DST: optimize bio allocation.
Use bio prepend feature as suggested by Jens Axboe. Signed-off-by: Evgeniy Polyakov <zbr@ioremap.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
cac22275ac
commit
3e5510ab0c
@ -33,7 +33,7 @@ int __init dst_export_init(void)
|
||||
{
|
||||
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;
|
||||
|
||||
@ -424,12 +424,8 @@ static void dst_bio_destructor(struct bio *bio)
|
||||
__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);
|
||||
}
|
||||
|
||||
@ -555,11 +551,8 @@ int dst_process_io(struct dst_state *st)
|
||||
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;
|
||||
|
Loading…
Reference in New Issue
Block a user