Skip to content

Commit

Permalink
dm: initialise tio in alloc_tio
Browse files Browse the repository at this point in the history
Move repeated dm_target_io initialisation inside alloc_tio().

Signed-off-by: Alasdair G Kergon <agk@redhat.com>
  • Loading branch information
Alasdair G Kergon committed Jun 22, 2009
1 parent f9ab94c commit 9015df2
Showing 1 changed file with 15 additions and 18 deletions.
33 changes: 15 additions & 18 deletions drivers/md/dm.c
Original file line number Diff line number Diff line change
Expand Up @@ -391,11 +391,6 @@ static void free_io(struct mapped_device *md, struct dm_io *io)
mempool_free(io, md->io_pool);
}

static struct dm_target_io *alloc_tio(struct mapped_device *md)
{
return mempool_alloc(md->tio_pool, GFP_NOIO);
}

static void free_tio(struct mapped_device *md, struct dm_target_io *tio)
{
mempool_free(tio, md->tio_pool);
Expand Down Expand Up @@ -750,16 +745,24 @@ static struct bio *clone_bio(struct bio *bio, sector_t sector,
return clone;
}

static void __flush_target(struct clone_info *ci, struct dm_target *ti,
unsigned flush_nr)
static struct dm_target_io *alloc_tio(struct clone_info *ci,
struct dm_target *ti)
{
struct dm_target_io *tio = alloc_tio(ci->md);
struct bio *clone;
struct dm_target_io *tio = mempool_alloc(ci->md->tio_pool, GFP_NOIO);

tio->io = ci->io;
tio->ti = ti;

memset(&tio->info, 0, sizeof(tio->info));

return tio;
}

static void __flush_target(struct clone_info *ci, struct dm_target *ti,
unsigned flush_nr)
{
struct dm_target_io *tio = alloc_tio(ci, ti);
struct bio *clone;

tio->info.flush_request = flush_nr;

clone = bio_alloc_bioset(GFP_NOIO, 0, ci->md->bs);
Expand Down Expand Up @@ -803,10 +806,7 @@ static int __clone_and_map(struct clone_info *ci)
/*
* Allocate a target io object.
*/
tio = alloc_tio(ci->md);
tio->io = ci->io;
tio->ti = ti;
memset(&tio->info, 0, sizeof(tio->info));
tio = alloc_tio(ci, ti);

if (ci->sector_count <= max) {
/*
Expand Down Expand Up @@ -862,10 +862,7 @@ static int __clone_and_map(struct clone_info *ci)

max = max_io_len(ci->md, ci->sector, ti);

tio = alloc_tio(ci->md);
tio->io = ci->io;
tio->ti = ti;
memset(&tio->info, 0, sizeof(tio->info));
tio = alloc_tio(ci, ti);
}

len = min(remaining, max);
Expand Down

0 comments on commit 9015df2

Please sign in to comment.