Lines Matching refs:vi
156 struct fsverity_info *vi;
196 vi = kmem_cache_zalloc(fsverity_info_cachep, GFP_KERNEL);
197 if (!vi)
199 vi->inode = inode;
202 vi->verified_data_size = le64_to_cpu(desc->data_size);
205 err = fsverity_init_merkle_tree_params(&vi->tree_params, inode,
217 memcpy(vi->root_hash, desc->root_hash, vi->tree_params.digest_size);
219 err = compute_file_measurement(vi->tree_params.hash_alg, desc,
220 vi->measurement);
226 vi->tree_params.hash_alg->name,
227 vi->tree_params.digest_size, vi->measurement);
229 err = fsverity_verify_signature(vi, desc, desc_size);
232 fsverity_free_info(vi);
233 vi = ERR_PTR(err);
235 return vi;
238 void fsverity_set_info(struct inode *inode, struct fsverity_info *vi)
246 if (cmpxchg_release(&inode->i_verity_info, NULL, vi) != NULL) {
248 fsverity_free_info(vi);
257 void fsverity_free_info(struct fsverity_info *vi)
259 if (!vi)
261 kfree(vi->tree_params.hashstate);
262 kmem_cache_free(fsverity_info_cachep, vi);
268 struct fsverity_info *vi = fsverity_get_info(inode);
272 if (vi)
295 vi = fsverity_create_info(inode, desc, res);
296 if (IS_ERR(vi)) {
297 res = PTR_ERR(vi);
301 fsverity_set_info(inode, vi);