Lines Matching refs:f

488 	struct dm_verity_fec *f = io->v->fec;  in verity_fec_finish_io()  local
494 mempool_free(fio->rs, &f->rs_pool); in verity_fec_finish_io()
497 mempool_free(fio->bufs[n], &f->prealloc_pool); in verity_fec_finish_io()
500 mempool_free(fio->bufs[n], &f->extra_pool); in verity_fec_finish_io()
502 mempool_free(fio->output, &f->output_pool); in verity_fec_finish_io()
545 struct dm_verity_fec *f = v->fec; in verity_fec_dtr() local
550 mempool_exit(&f->rs_pool); in verity_fec_dtr()
551 mempool_exit(&f->prealloc_pool); in verity_fec_dtr()
552 mempool_exit(&f->extra_pool); in verity_fec_dtr()
553 mempool_exit(&f->output_pool); in verity_fec_dtr()
554 kmem_cache_destroy(f->cache); in verity_fec_dtr()
556 if (f->data_bufio) in verity_fec_dtr()
557 dm_bufio_client_destroy(f->data_bufio); in verity_fec_dtr()
558 if (f->bufio) in verity_fec_dtr()
559 dm_bufio_client_destroy(f->bufio); in verity_fec_dtr()
561 if (f->dev) in verity_fec_dtr()
562 dm_put_device(v->ti, f->dev); in verity_fec_dtr()
564 kfree(f); in verity_fec_dtr()
656 struct dm_verity_fec *f; in verity_fec_ctr_alloc() local
658 f = kzalloc(sizeof(struct dm_verity_fec), GFP_KERNEL); in verity_fec_ctr_alloc()
659 if (!f) { in verity_fec_ctr_alloc()
663 v->fec = f; in verity_fec_ctr_alloc()
674 struct dm_verity_fec *f = v->fec; in verity_fec_ctr() local
710 if (!f->roots) { in verity_fec_ctr()
714 f->rsn = DM_VERITY_FEC_RSM - f->roots; in verity_fec_ctr()
716 if (!f->blocks) { in verity_fec_ctr()
721 f->rounds = f->blocks; in verity_fec_ctr()
722 if (sector_div(f->rounds, f->rsn)) in verity_fec_ctr()
723 f->rounds++; in verity_fec_ctr()
729 if (f->blocks < v->data_blocks + hash_blocks || !f->rounds) { in verity_fec_ctr()
738 f->hash_blocks = f->blocks - v->data_blocks; in verity_fec_ctr()
739 if (dm_bufio_get_device_size(v->bufio) < f->hash_blocks) { in verity_fec_ctr()
745 if ((f->roots << SECTOR_SHIFT) & ((1 << v->data_dev_block_bits) - 1)) in verity_fec_ctr()
746 f->io_size = 1 << v->data_dev_block_bits; in verity_fec_ctr()
748 f->io_size = v->fec->roots << SECTOR_SHIFT; in verity_fec_ctr()
750 f->bufio = dm_bufio_client_create(f->dev->bdev, in verity_fec_ctr()
751 f->io_size, in verity_fec_ctr()
753 if (IS_ERR(f->bufio)) { in verity_fec_ctr()
755 return PTR_ERR(f->bufio); in verity_fec_ctr()
758 dm_bufio_set_sector_offset(f->bufio, f->start << (v->data_dev_block_bits - SECTOR_SHIFT)); in verity_fec_ctr()
760 fec_blocks = div64_u64(f->rounds * f->roots, v->fec->roots << SECTOR_SHIFT); in verity_fec_ctr()
761 if (dm_bufio_get_device_size(f->bufio) < fec_blocks) { in verity_fec_ctr()
766 f->data_bufio = dm_bufio_client_create(v->data_dev->bdev, in verity_fec_ctr()
769 if (IS_ERR(f->data_bufio)) { in verity_fec_ctr()
771 return PTR_ERR(f->data_bufio); in verity_fec_ctr()
774 if (dm_bufio_get_device_size(f->data_bufio) < v->data_blocks) { in verity_fec_ctr()
780 ret = mempool_init(&f->rs_pool, num_online_cpus(), fec_rs_alloc, in verity_fec_ctr()
787 f->cache = kmem_cache_create("dm_verity_fec_buffers", in verity_fec_ctr()
788 f->rsn << DM_VERITY_FEC_BUF_RS_BITS, in verity_fec_ctr()
790 if (!f->cache) { in verity_fec_ctr()
796 ret = mempool_init_slab_pool(&f->prealloc_pool, num_online_cpus() * in verity_fec_ctr()
798 f->cache); in verity_fec_ctr()
804 ret = mempool_init_slab_pool(&f->extra_pool, 0, f->cache); in verity_fec_ctr()
811 ret = mempool_init_kmalloc_pool(&f->output_pool, num_online_cpus(), in verity_fec_ctr()