Skip to content

Commit

Permalink
Staging: DST: optimize bio allocation.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Evgeniy Polyakov authored and Greg Kroah-Hartman committed Apr 3, 2009
1 parent cac2227 commit 3e5510a
Showing 1 changed file with 3 additions and 10 deletions.
13 changes: 3 additions & 10 deletions drivers/staging/dst/export.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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);
}

Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 3e5510a

Please sign in to comment.