Commit 3e5510ab authored by Evgeniy Polyakov's avatar Evgeniy Polyakov Committed by Greg Kroah-Hartman
Browse files

Staging: DST: optimize bio allocation.



Use bio prepend feature as suggested by Jens Axboe.

Signed-off-by: default avatarEvgeniy Polyakov <zbr@ioremap.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent cac22275
Loading
Loading
Loading
Loading
+3 −10
Original line number Diff line number Diff line
@@ -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;