mempool_free(io, md->io_pool);
 }
 
-static void free_tio(struct mapped_device *md, struct dm_target_io *tio)
+static void free_tio(struct dm_target_io *tio)
 {
        bio_put(&tio->clone);
 }
                     !bdev_get_queue(bio->bi_bdev)->limits.max_write_same_sectors))
                disable_write_same(md);
 
-       free_tio(md, tio);
+       free_tio(tio);
        dec_pending(io, error);
 }
 
 {
        int r;
        sector_t sector;
-       struct mapped_device *md;
        struct bio *clone = &tio->clone;
        struct dm_target *ti = tio->ti;
 
                generic_make_request(clone);
        } else if (r < 0 || r == DM_MAPIO_REQUEUE) {
                /* error the io and bail out, or requeue it if needed */
-               md = tio->io->md;
                dec_pending(tio->io, r);
-               free_tio(md, tio);
+               free_tio(tio);
        } else if (r != DM_MAPIO_SUBMITTED) {
                DMWARN("unimplemented target map return value: %d", r);
                BUG();
                tio->len_ptr = len;
                r = clone_bio(tio, bio, sector, *len);
                if (r < 0) {
-                       free_tio(ci->md, tio);
+                       free_tio(tio);
                        break;
                }
                __map_bio(tio);