Lines Matching full:vi
181 struct fsverity_info *vi; in fsverity_create_info() local
184 vi = kmem_cache_zalloc(fsverity_info_cachep, GFP_KERNEL); in fsverity_create_info()
185 if (!vi) in fsverity_create_info()
187 vi->inode = inode; in fsverity_create_info()
189 err = fsverity_init_merkle_tree_params(&vi->tree_params, inode, in fsverity_create_info()
200 memcpy(vi->root_hash, desc->root_hash, vi->tree_params.digest_size); in fsverity_create_info()
202 compute_file_digest(vi->tree_params.hash_alg, desc, vi->file_digest); in fsverity_create_info()
204 err = fsverity_verify_signature(vi, desc->signature, in fsverity_create_info()
209 if (vi->tree_params.block_size != PAGE_SIZE) { in fsverity_create_info()
225 vi->tree_params.tree_pages << in fsverity_create_info()
226 vi->tree_params.log_blocks_per_page; in fsverity_create_info()
228 vi->hash_block_verified = kvcalloc(BITS_TO_LONGS(num_bits), in fsverity_create_info()
231 if (!vi->hash_block_verified) { in fsverity_create_info()
237 return vi; in fsverity_create_info()
240 fsverity_free_info(vi); in fsverity_create_info()
244 void fsverity_set_info(struct inode *inode, struct fsverity_info *vi) in fsverity_set_info() argument
252 if (cmpxchg_release(fsverity_info_addr(inode), NULL, vi) != NULL) { in fsverity_set_info()
254 fsverity_free_info(vi); in fsverity_set_info()
263 void fsverity_free_info(struct fsverity_info *vi) in fsverity_free_info() argument
265 if (!vi) in fsverity_free_info()
267 kfree(vi->tree_params.hashstate); in fsverity_free_info()
268 kvfree(vi->hash_block_verified); in fsverity_free_info()
269 kmem_cache_free(fsverity_info_cachep, vi); in fsverity_free_info()
355 struct fsverity_info *vi = fsverity_get_info(inode); in ensure_verity_info() local
359 if (vi) in ensure_verity_info()
366 vi = fsverity_create_info(inode, desc); in ensure_verity_info()
367 if (IS_ERR(vi)) { in ensure_verity_info()
368 err = PTR_ERR(vi); in ensure_verity_info()
372 fsverity_set_info(inode, vi); in ensure_verity_info()