Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dc440d1e authored by Milan Broz's avatar Milan Broz Committed by Alasdair G Kergon
Browse files

dm crypt: tidy crypt alloc



Factor out crypt io allocation code.
Later patches will call it from another place.

No functional change.

Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
parent 3e1a8bdd
Loading
Loading
Loading
Loading
+17 −7
Original line number Original line Diff line number Diff line
@@ -517,6 +517,22 @@ static void crypt_free_buffer_pages(struct crypt_config *cc, struct bio *clone)
	}
	}
}
}


static struct dm_crypt_io *crypt_io_alloc(struct dm_target *ti,
					  struct bio *bio, sector_t sector)
{
	struct crypt_config *cc = ti->private;
	struct dm_crypt_io *io;

	io = mempool_alloc(cc->io_pool, GFP_NOIO);
	io->target = ti;
	io->base_bio = bio;
	io->sector = sector;
	io->error = 0;
	atomic_set(&io->pending, 0);

	return io;
}

static void crypt_inc_pending(struct dm_crypt_io *io)
static void crypt_inc_pending(struct dm_crypt_io *io)
{
{
	atomic_inc(&io->pending);
	atomic_inc(&io->pending);
@@ -1113,15 +1129,9 @@ static void crypt_dtr(struct dm_target *ti)
static int crypt_map(struct dm_target *ti, struct bio *bio,
static int crypt_map(struct dm_target *ti, struct bio *bio,
		     union map_info *map_context)
		     union map_info *map_context)
{
{
	struct crypt_config *cc = ti->private;
	struct dm_crypt_io *io;
	struct dm_crypt_io *io;


	io = mempool_alloc(cc->io_pool, GFP_NOIO);
	io = crypt_io_alloc(ti, bio, bio->bi_sector - ti->begin);
	io->target = ti;
	io->base_bio = bio;
	io->sector = bio->bi_sector - ti->begin;
	io->error = 0;
	atomic_set(&io->pending, 0);


	if (bio_data_dir(io->base_bio) == READ)
	if (bio_data_dir(io->base_bio) == READ)
		kcryptd_queue_io(io);
		kcryptd_queue_io(io);