Lines Matching refs:vi
187 struct fsverity_info *vi;
198 vi = kmem_cache_zalloc(fsverity_info_cachep, GFP_KERNEL);
199 if (!vi)
201 vi->inode = inode;
203 err = fsverity_init_merkle_tree_params(&vi->tree_params, inode,
215 memcpy(vi->root_hash, desc->root_hash, vi->tree_params.digest_size);
217 err = compute_file_digest(vi->tree_params.hash_alg, desc,
218 vi->file_digest);
225 vi->verified_data_size = le64_to_cpu(desc->data_size);
227 err = fsverity_verify_signature(vi, desc->signature,
232 if (vi->tree_params.block_size != PAGE_SIZE) {
248 vi->tree_params.tree_pages <<
249 vi->tree_params.log_blocks_per_page;
251 vi->hash_block_verified = kvcalloc(BITS_TO_LONGS(num_bits),
254 if (!vi->hash_block_verified) {
258 spin_lock_init(&vi->hash_page_init_lock);
261 return vi;
264 fsverity_free_info(vi);
268 void fsverity_set_info(struct inode *inode, struct fsverity_info *vi)
276 if (cmpxchg_release(&inode->i_verity_info, NULL, vi) != NULL) {
278 fsverity_free_info(vi);
287 void fsverity_free_info(struct fsverity_info *vi)
289 if (!vi)
291 kfree(vi->tree_params.hashstate);
292 kvfree(vi->hash_block_verified);
293 kmem_cache_free(fsverity_info_cachep, vi);
380 struct fsverity_info *vi = fsverity_get_info(inode);
384 if (vi)
391 vi = fsverity_create_info(inode, desc);
392 if (IS_ERR(vi)) {
393 err = PTR_ERR(vi);
397 fsverity_set_info(inode, vi);